Перейти к содержанию

STM32 для чайника


ART_ME

Рекомендуемые сообщения

В 19.10.2018 в 18:32, mail_robot сказал:

Так что работа на серьезных проектах с серьезными камнями

В 19.10.2018 в 18:32, mail_robot сказал:

Без HAL работа к примеру с USB это чистейшей воды мазохизм.

о есть еще одна тема с тем же холиваром :D а я думал я первый породил этот холивар. конечно крутой камень надо убить крутыми либами для школьников)

47 минут назад, Taicho сказал:

Какую плату взять для начала? Дискавери или Нуклео? Какую из серий?

Честно говоря никогда не понимал нужды в плате. Может потому что я люблю паять) для авр я вообще не брал, там можно на салфетки код написать, и будет работать)

Для стм взял такую, что бы удобно было подключить dht11, nrf24l01, lcd или дисплей 1602a

с головой хватает оттестить, стоит копейки.

а зачем отдавать 100500 рублей за всякие крутые платы? если делать потом девайс то я предпочитаю голый мк впаять. я не представляю девайса в который нужно было бы всунуть огромную плату отладочную.

Но это только мое скромное мнение.

stm32f103c8t6-board.jpg

А, стоп, я немного не уточнил что у меня еще есть макетная плата с дырочками куда я все это втыкиваю. Ну она уже была) Удобно тем что можно еще и микросхемы каки нить воткнуть)

 

 

Вот как раз вчера делал набросок кода для будущего инкубатора) но в инкубатор я плату сувать не буду)

UMh0lUeDSik.jpg

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

2 часа назад, DrobyshevAlex сказал:

Честно говоря никогда не понимал нужды в плате.

Ключевые слова в моем сообщении -"для начала"

Разобраться хочу что к чему. Потому что уже голова кругом идет. 

А Ардуино - грубо говоря 3 платы, Уно, Мега и Микро. Все. Выбирай из трех. Есть блокнотик для написания скетчей и прошивки, инфы в нете море, примеров, книг, и тд и тп. Наигрался с ардуино? - стер и пиши на голую Атмегу.

У ST - куча чипов, 100500 плат, 100500 IDE, Cube, RTOS, HAL, CMSIS - че к чему вообще? Инфы толковой нет, все собирается по крупицам из 100500 всяких референс мануалов.

 

Изменено пользователем Taicho
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Это и было для начало, я сам только неделю как начал рыть стм. Я не понимаю нужды в разных мк, код может быть переносимым, а регистры подправите.

19 минут назад, Taicho сказал:

У ST - куча чипов, 100500 плат, 100500 IDE, Cube, RTOS, HAL, CMSIS - че к чему вообще?

А Вы собираетесь на всех чипах платы купить?

Про IDE и HAL можно почитать тут :D

 

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

16 минут назад, Taicho сказал:

Все в духе российских форумов.

Сам ничего пока еще не знаю но совет дам.

я так то году в 1991 примерно первую схему спаял, тогда же занялся и программированием. и сейчас работаю программистом.

Деньги Ваши, мне не жалко, по этому купите всех плат по одной если вы такого совета ждали.

 

то что я не работаю по пайке и программированию микросхем, так это потому что программистом обычным проще) я работаю не только на россиян) сидя дома

3 минуты назад, DrobyshevAlex сказал:

я так то году в 1991 примерно первую схему спаял, тогда же занялся и программированием. и сейчас работаю программистом.

хотя это ни о чем не говорит :D может я тогда и бросил паять :)

 

Изменено пользователем DrobyshevAlex
Ссылка на комментарий
Поделиться на другие сайты

1 hour ago, Taicho said:

Сам ничего пока еще не знаю но совет дам.

таких тут хватает. С вашей стороны надо просто задать правильные вопросы, и внимательно выслушать ответы

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

54 минуты назад, mail_robot сказал:

С вашей стороны надо просто задать правильные вопросы, и внимательно выслушать ответы

полностью согласен) а тот тут хватает еще тех кто на оборот очень много знает :D

 

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, Taicho сказал:

У ST - куча чипов, 100500 плат, 100500 IDE, Cube, RTOS, HAL, CMSIS - че к чему вообще? Инфы толковой нет, все собирается по крупицам из 100500 всяких референс мануалов.

Референс мануал для семейства ТОЛЬКО ОДИН.

То есть для работы с выбранным МК, строго говоря, необходимо и достаточно всего ТРЕХ документов - даташита, референсного мануала на семейство и эрраты на этот МК.

Поскольку ARM по архитектуре и возможностям много богаче АВР, то и количество инструментов для написания кода так же гораздо больше.  Ну а среду разработки так же не запрещено создавать разным компаниям,  поскольку ядро ARM собственно к ST имеет косвенное отношение.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Изучаю сейчас STM32F769NI(discovery), появилось много проблем, самая непонятная проблема это работа АЦП, пытаюсь PA6 использовать как АЦП, без прерываний, без ДМА,  без континиуса, без FREERTOS, запуск по софтстарту, вот инициализация, как для регулярного, так и для инжекторного канала, но не так не так не работает, точнее как, показания 15-20мВ, пробовал HALом там значения наоборот -19000-60000тыс. показания, тоже странно. Так же вопрос как использовать прерывания в FREERTOS, использую прерывание на прием по ЮАРТ, делал просто прием данных во вторую задачу, а в первой обрабатывал tcp, но думаю что это не правильно, а использование стандартной NVIC_EnableIRQ(USART6_IRQn); USART6_IRQHandler нее работает. Так же интересует дисплей который идет с этой платой, из примеров на freertos работает, а вот кто-то пробовал использовать его без freertos? И есть ли смысл настроить FREERTOS регистрами, или FREERTOS, это ж я как понимаю ОС, и ее только кубом и заливают, или файлы подкидывают? И есть ли какое-то описание freertos попроще, а то не совсем все понятно?

Скрытый текст

void ADC_Init_inject()
{ 
RCC->AHB1ENR |=RCC_AHB1ENR_GPIOAEN; //GPIOA clock 
// тактирование ног порта А

GPIOA->MODER |=  GPIO_MODER_MODER6_1|GPIO_MODER_MODER6_0;//PA6 аналоговая функция

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;// тактированиеАЦП
ADC1->SMPR2 &=~ADC_SMPR2_SMP6_0|ADC_SMPR2_SMP6_1|ADC_SMPR2_SMP6_2;//время преобразования 1-го канал 3
ADC1->JSQR|=ADC_JSQR_JSQ2_1;//номера каналов

ADC1->CR1 = 0;// обнуление флага


ADC1->CR2 |= ADC_CR2_JEXTSEL_3|ADC_CR2_JEXTSEL_2|ADC_CR2_JEXTSEL_1|ADC_CR2_JEXTSEL_0;//|ADC_CR2_DMA;//EXTSEL - перезапуск по soft SWSTART,EXTTRIG без этого не работает

ADC1->CR2 |= ADC_CR2_ADON;// вкл. АЦП 
}




void ADC_Init_regular1()
{ 
RCC->AHB1ENR |=RCC_AHB1ENR_GPIOAEN; //GPIOA clock 
// тактирование ног порта А

GPIOA->MODER |=  GPIO_MODER_MODER6_1|GPIO_MODER_MODER6_0;//PA6 аналоговая функция

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;// тактированиеАЦП
ADC1->SMPR2 &=~ADC_SMPR2_SMP6_0|ADC_SMPR2_SMP6_1|ADC_SMPR2_SMP6_2;//время преобразования 1-го канал 3
//ADC1->SMPR2 &=~ADC_SMPR2_SMP2_0|ADC_SMPR2_SMP2_1|ADC_SMPR2_SMP2_2;//время преобразования 2-го канал 3

ADC1->SQR3 |=ADC_SQR3_SQ2_1;// номера каналов регулярной группы PA6


ADC1->CR1 = 0;// обнуление флага

ADC1->CR2 |= ADC_CR2_JEXTSEL_3|ADC_CR2_JEXTSEL_2|ADC_CR2_JEXTSEL_1|ADC_CR2_JEXTSEL_0;//|ADC_CR2_DMA;//EXTSEL - перезапуск по soft SWSTART,EXTTRIG без этого не работает

ADC1->CR2 |= ADC_CR2_ADON;// вкл. АЦП
 
}

 uint16_t datavolt=0;

ADC1->CR2 |= ADC_CR2_JSWSTART;
while(!(ADC1->SR & ADC_SR_JEOC)); 
datavolt = ADC1->JDR1/1.26;   

 

ADC1->CR2 |= ADC_CR2_SWSTART;
while(!(ADC1->SR & ADC_SR_EOC)); 
datavolt = ADC1->DR/1.26;   

 

 

Изменено пользователем Электронщик
Ссылка на комментарий
Поделиться на другие сайты

И вы решили сейчас на форуме мне решат все мои проблемы? STM32F769 это уже не для начинающих. Начинать обучение надо с F030 или F103

Совет вместо кучи писанины, опишите конкретную ОДНУ проблему и ее решайте.

Потому что для людей проверка вашего кода занимает время. И если каждый будет такие куски просить проверить мы утонем в этих проверках. А опытные люди только и будут заниматься тем что проверять код начинающих.

Если бы вы были на моем канале я там подробно разложил работу ADC и ее настройка на CMSIS. Вам нужно обучение и тренинги это все занимает время. Ищите обучающие материалы.

 

 

ADC1->SMPR2 &=~ADC_SMPR2_SMP6_0|ADC_SMPR2_SMP6_1|ADC_SMPR2_SMP6_2;//время преобразования 1-го канал 3

Вот это что программирует строка? 3 цикла семплирования для 6 канала? Регистр по умолчанию 0 и для всех каналов настроено 3 цикла. Для увеличения точности нужно увеличивать количество циклов семплирования и программировать так

ADC1->SMPR2  |= ADC_SMPR2_SMP6_0 | ADC_SMPR2_SMP6_1 | ADC_SMPR2_SMP6_2; //480 cycles

ADC1->JSQR |= ADC_JSQR_JSQ2_1; //программирует 16 канал во 2 конверсии. При этом задана 1 конверсия и в первой конверсии запрограммирован 0 канал.

Изучайте ADC с начало полное незнание работы периферии.

 

 

 

 

Изменено пользователем Oxford
Ссылка на комментарий
Поделиться на другие сайты

10 часов назад, Электронщик сказал:

Изучаю сейчас STM32F769NI(discovery), появилось много проблем,

Кхе... странно. У меня первой задачей было подключить по интерфейсу dsi экран от нетбука, которых у меня много и даже один целый. Получилось коряво и нежизнеспособно, ширина памяти имеет значение в таких вопросах.

Использование прибываний без ос - оно должно быть в зоне видимости майна. С ос - нужно прочитать соответствующий раздел доков выбранной ос. Там много нюансов, не вижу смысла перепечатывать. С ADC всё намного проще, прерывания от него есть - но использовать нет смысла. Зато у ADC море вариантов запуска, прямо-таки на все случаи жизни. Само ADC прекрасно умеет дёргать dma. А вот у dma уже есть нормальное прерывание - когда всё что требуется уже в памяти.   

Ссылка на комментарий
Поделиться на другие сайты

Ну я все МК вначале стараюсь по регистрам настроить перефирию, и какие-то маленькие задания сделать для себя, так как начал с АВР, потом СТМ, на СТМ цеплял 1602 по 4 битам, и по I2C, датчики токовый ACS712, DHT11 - 1WIRe дисплей Nokia, дисплей 128*64, дисплей ILI9341(по SPI), радиомодули NRF24, так же подкидывал ESP8266 Q12( на нем веб-сервер) по SPI и UART(+ написал прогу для андроида голосовое управление без нажатия чисто по ключевой фразе), энкодер, ну и соотвественно порты ввода-вывода и внешние прерывания, ну и АЦП, так же по I2C FLASH- память подкидывал, и часы 1307 и 3221, и этого хватает в основном для проектов которые я делал для себя. в принципе 4 серия и 7 похожи, 769 пока что АЦП инжекторные и регулярные каналы настроил(спасибо Oxford направил, так как каждый раз забываю записать как я АЦП настраивал), запустил дисплей на библиотеке BSP из примера, UART на прием по прерыванию и передача, тактирование камня, порты ввода-вывода, LWIP tcp server и к нему на комп написал прогу по приему и сохранению данных в текстовый документ по времени и дате, прощупаю еще SPI и I2C, и займусь более детальным изучением FREERTOS и хочу развернуть свой веб-сервер на 769 попробовать. Смысла  цеплять большие дисплеи, или использовать HDMI с переходником за кучу денег, да и еще использовать сторонний софт для написания изображения, не вижу смысла, с этим камнем, как по мне лучше перефирию обработать СТМкой, а графику и систему на Распберри повесить, ну и связать их к примеру по SPI LAN UART.

Ссылка на комментарий
Поделиться на другие сайты

  • 5 недель спустя...

подскажите есть плата на STM32F103CBT6 самодельная не покупная с программатором, не могу  подключить, и так и этак -  пишет connect under reset, обновил прошивку ,все равно не могу подключиться,  не  получается нужно замкнуть что-то, читал по нету , все равно не врублюсь...

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Darth_Vader сказал:

boot0 и boot1 как сейчас подключены?

я не знаю про boot0 и boot1, у меня программатор st linkv2  подключение через порт swd  на плате у которого +3.3в, gnd  и 3 вход на 34 ногу и 4 на 37 ногу контроллера

1 минуту назад, r14doc сказал:

я не знаю про boot0 и boot1, у меня программатор st linkv2  подключение через порт swd  на плате у которого +3.3в, gnd  и 3 вход на 34 ногу и 4 на 37 ногу контроллера

прога stm32  stlink utility v 4.30

Ссылка на комментарий
Поделиться на другие сайты

но уровни на ногах boot0 и boot1 все равно должны быть правильными. Иначе ничего с ст-линка не польется

в доке на проц все есть

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

14 часа назад, r14doc сказал:

пишет connect under reset,

Полное сообщение какое? По дефолту он не настроен к подключению под сбросом, и полное сообщение может быть что то вроде "не удалось определить девайс, попробуйте в настройках включить опцию конекшин андер ресет"

Вот тогда вначале нужно в настройках выбрать ее из выпадающего списка, а потом держа ресет подключатся.

У меня было такое, сделал как написано, нажал стереть, настроил опять дефолтные значения и опять без ресет стало шиться)

 

Изменено пользователем DrobyshevAlex
Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, DrobyshevAlex сказал:

Полное сообщение какое? По дефолту он не настроен к подключению под сбросом, и полное сообщение может быть что то вроде "не удалось определить девайс, попробуйте в настройках включить опцию конекшин андер ресет"

Вот тогда вначале нужно в настройках выбрать ее из выпадающего списка, а потом держа ресет подключатся.

У меня было такое, сделал как написано, нажал стереть, настроил опять дефолтные значения и опять без ресет стало шиться)

 

вроде получилось, я не питал саму схему отдельно то есть - программатор четыре провода на swd , st linkv2  определялась но начинала подключатся и бах  требует подкл с помощью  конекшин андер ресет, делаю так пишет  подключите с помощью хот, или в нормальном режиме короче не проходило, подключил к схеме платы отдельно питаение. А про ресет этой кнопки в схеме нет поэтому и парился....

Ссылка на комментарий
Поделиться на другие сайты

Подскажите пожалуйста как подключить питание к STM32F030C8T6.

Все VDD на +3.3 а все VSS на 0 и все?

есть еще VSSA и VDDA это нужно? Или это АЦП какой нить и мне он не нужен? Ну то есть мне не нужен АЦП)

 

1-61d6ad8c-9d33-4c57-a9ac-0bc7ae49785a.png

Ну и нужно ил как на атмеле подтягивтаь ресет к +питанию? Или еще что то? Я в первый раз делаю плату под стм) 

я нашел в дш, я так понял что 24, 48 на +, 47, 23 на 0. А 1 не понял надо или нет)

7 к конденсатору это ресет но с подтяжкой внутри, стоит ли ей доверять? у атмела не стоит) Может внешнюю поставить?

Снимок экрана 2019-02-14 в 14.13.43.png

Снимок экрана 2019-02-14 в 14.14.23.png

Ссылка на комментарий
Поделиться на другие сайты

Vssa Vdda обязательно, все как рекомендовано. На ресет резистор не нужен. 44 boot0 подтяни к питанию и предусмотри джампер на землю (должен быть потом установлен). На картинках четко видно какие блоки что питает без Vdda МК не стартанет даже.

Ссылка на комментарий
Поделиться на другие сайты

Да уж, с разводкой платы под атмегу 8 не сталкивался с проблемами)) А тут прям голову сломать можно) Мне кажется на односторонней плате вариантов просто нет))

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Все предложенные к рассмотрению источники питания работают примерно по одному принципу: сетевое напряжение выпрямляется, фильтруется (получаем чуть больше 300 вольт постоянного), затем преобразуется снова в переменное, но уже на частотах в несколько десятков килогерц, понижается на трансформаторе и снова выпрямляется. За счёт высокой частоты преобразования используется трансформатор на ферритовом, а не на стальном, сердечнике, гораздо меньших габаритов и стоимости. Минусы: значительное усложнение схемы блока и вероятность возникновения различных помех от него. Модули управления (кроме первого) также являются импульными преобразователями, с теми же достоинствами и недостатками. Если нужно по быстрому собрать некое подобие ЛБП, то уж лучше брать модуль вроде этого. Ну и блок питания к нему соответствующий. Но не очень понятно, какой практический опыт можно получить от соединения готовых модулей парой проводов.  
    • У меня больше всего вопросов вызвала необычная схема обеспечения отрицательного питания. Автор этой обстоятельной заметки пишет: For this supply to work correctly, the transformer must have a secondary voltage of at least 18V RMS.  Почему? Что будет не так с отрицательным питанием, если напряжение на трансформаторе будет меньше 18В?   https://tinyurl.com/23mlwxtt - я в простейшей эмуляции ставлю 12В пикового напряжения для трансформатора и на стабилитроне все как положено: -5.6В.
    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
×
×
  • Создать...