STM32 новичку в ARM что к чему
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993069#p3993069"]Зачем выдумывать на свою задницу приключения, если конкретно расписать, какая в данном МК есть периферия, можно в даташите?[/uquote]
Ну у него мысль - или перечисляйте все, или не пишите ничего. Потому как у него только два взаимоисключающих варианта. У человека свое понимание "как должно быть". Как инженер я его понимаю, это здравая логика с точки зрения оптимальной работы. Но как человек делающий ошибки я могу понять и ST. Хотели как лучше - всем не угодили.
Данный пример оформления технической документации просто ничто, в сравнении с тем что творится со свежими МК, например H743. Может с железной точки зрения там все ок, а вот с HAL полный бардак. У меня к примеру USB не заработал в DMA режиме. Я все перепроверил - размещение кучи/стека в правильной оперативке (их там штук 5 разных), настроил MPU чтобы отключить кеширование на буферах USB, перепроверял прерывания, консультировался с более опытными коллегами - ничего. Передает что-то около 312 слов по 4 байта и затыкается. И все равно - по одному байту передаешь, или по 10 - суммарно доходит до некоего предела и затыкается. Можно конечно было упороться и дебажить до последнего, но это время. Переключил на прерывания и пока оставил. А тут недавно обнова HAL была, гляжу в гите - много правок в юсб драйвере, в секциях с дма. Мб поправили, надо будет затестить.
Еще какой-то косяк с халовским юартом - недоделан режим прерывания по простою. Специальные функции вроде бы есть, но они не рабочие. По гайдам из инета эти спец функции не используются. Вручную конфигурируются прерывания и обычной функцией запускается дма на прием. И да, так оно работает. Вот так и живем. Самому делать с самых низов? За такое время никто платить не будет, это слишком дорого. Эзернет, юсб, спаи, CAN, как следствие фриртос, TCP сервер, может еще HTTP сервер. Знаю что здесь есть советчики малинок+линукс. Мы и такое делаем. Но заказчик такое отбросил - никаких линуксов, все должно быть жестко и риалтайм.
Ну у него мысль - или перечисляйте все, или не пишите ничего. Потому как у него только два взаимоисключающих варианта. У человека свое понимание "как должно быть". Как инженер я его понимаю, это здравая логика с точки зрения оптимальной работы. Но как человек делающий ошибки я могу понять и ST. Хотели как лучше - всем не угодили.
Данный пример оформления технической документации просто ничто, в сравнении с тем что творится со свежими МК, например H743. Может с железной точки зрения там все ок, а вот с HAL полный бардак. У меня к примеру USB не заработал в DMA режиме. Я все перепроверил - размещение кучи/стека в правильной оперативке (их там штук 5 разных), настроил MPU чтобы отключить кеширование на буферах USB, перепроверял прерывания, консультировался с более опытными коллегами - ничего. Передает что-то около 312 слов по 4 байта и затыкается. И все равно - по одному байту передаешь, или по 10 - суммарно доходит до некоего предела и затыкается. Можно конечно было упороться и дебажить до последнего, но это время. Переключил на прерывания и пока оставил. А тут недавно обнова HAL была, гляжу в гите - много правок в юсб драйвере, в секциях с дма. Мб поправили, надо будет затестить.
Еще какой-то косяк с халовским юартом - недоделан режим прерывания по простою. Специальные функции вроде бы есть, но они не рабочие. По гайдам из инета эти спец функции не используются. Вручную конфигурируются прерывания и обычной функцией запускается дма на прием. И да, так оно работает. Вот так и живем. Самому делать с самых низов? За такое время никто платить не будет, это слишком дорого. Эзернет, юсб, спаи, CAN, как следствие фриртос, TCP сервер, может еще HTTP сервер. Знаю что здесь есть советчики малинок+линукс. Мы и такое делаем. Но заказчик такое отбросил - никаких линуксов, все должно быть жестко и риалтайм.
- Реклама
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Ярослав555, а вот не надо кал использовать! Пишите в соответствии с даташитом/RM, и будет вам счастье!
Но я предпочитаю развлекаться с более простыми МК, где RM в районе тысячи страниц. Вот, закончил сейчас работу с DS18x20 на STM32F103. Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).
Кстати, у H743 и цена какая-то совсем не гуманная... Если мне нужен ethernet и всякие плюшки, то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103): за верхний уровень (веб-морды и прочие сетевые сервисы) отвечает "апельсинка", а рилтайм и нижний уровень обеспечивает микроконтроллер. И нет нужды разбираться в идиотском lwIP и т.п. дряни. А то вот еще не хватало ssh или iptables своими силами на микроконтроллере реализовать!
Но я предпочитаю развлекаться с более простыми МК, где RM в районе тысячи страниц. Вот, закончил сейчас работу с DS18x20 на STM32F103. Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).
Кстати, у H743 и цена какая-то совсем не гуманная... Если мне нужен ethernet и всякие плюшки, то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103): за верхний уровень (веб-морды и прочие сетевые сервисы) отвечает "апельсинка", а рилтайм и нижний уровень обеспечивает микроконтроллер. И нет нужды разбираться в идиотском lwIP и т.п. дряни. А то вот еще не хватало ssh или iptables своими силами на микроконтроллере реализовать!
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993417#p3993417"]а вот не надо кал использовать! Пишите в соответствии с даташитом/RM, и будет вам счастье![/uquote]
Ну я же написал - самописание по даташиту такого функционала как я описал займет годы. Это никому не нужно как по времени так и по деньгам.
Добавлено after 1 minute 36 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993417#p3993417"]то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103)[/uquote]
ну я же написал - риалтайм по требованию заказчика, никаких линуксов.
сначала пишем, потом читаем?
Ну я же написал - самописание по даташиту такого функционала как я описал займет годы. Это никому не нужно как по времени так и по деньгам.
Добавлено after 1 minute 36 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993417#p3993417"]то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103)[/uquote]
ну я же написал - риалтайм по требованию заказчика, никаких линуксов.
сначала пишем, потом читаем?
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3993840#p3993840"]Это никому не нужно как по времени так и по деньгам.[/uquote]
В данном случае есть два варианта: либо перестать этим заниматься, либо заниматься этим как нужно. Но лепить абдуринство "в продакшн" — это крайне вредная привычка!
А про рилтайм я тоже написал: МК и будет обеспечивать рилтайм! А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..
В данном случае есть два варианта: либо перестать этим заниматься, либо заниматься этим как нужно. Но лепить абдуринство "в продакшн" — это крайне вредная привычка!
А про рилтайм я тоже написал: МК и будет обеспечивать рилтайм! А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993841#p3993841"]А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..[/uquote]
Да мне пофиг. Деньги не пахнут. Хотят немцы на стм поднимать эзернет стек, значит буду поднимать.
Добавлено after 35 minutes 11 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993417#p3993417"]Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).Кстати, у H743 и цена какая-то совсем не гуманная...[/uquote]
У меня МК должен выдавать поток данных на скоростях мегабит-два, причем параллельно по юсб, эзернету, вифи... если включен CAN то упираемся в 500 кбит конечно. И это еще хотят сигнал процессинг и фильтрацию.
Кстати, у H743 и цена какая-то совсем не гуманная... - копейки. при цене платы в 500 баксов мелочи.
Да мне пофиг. Деньги не пахнут. Хотят немцы на стм поднимать эзернет стек, значит буду поднимать.
Добавлено after 35 minutes 11 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3993417#p3993417"]Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).Кстати, у H743 и цена какая-то совсем не гуманная...[/uquote]
У меня МК должен выдавать поток данных на скоростях мегабит-два, причем параллельно по юсб, эзернету, вифи... если включен CAN то упираемся в 500 кбит конечно. И это еще хотят сигнал процессинг и фильтрацию.
Кстати, у H743 и цена какая-то совсем не гуманная... - копейки. при цене платы в 500 баксов мелочи.
- Реклама
-
Loyso Pondohva
- Прорезались зубы
- Сообщения: 213
- Зарегистрирован: Пт июл 03, 2020 22:09:02
Re: STM32 новичку в ARM что к чему
Всех приветствую! Вопрос может быть не по теме - но вдруг. Есть схема. Cигнал (постоянный, с потенциометра) идет на LM358 усиливается в 20 раз и читается по digitalRead() ADC blue pill. Две последние цифры дрожат - например 2021, 2056, 2005 и.т.д. Совсем странно - если усреднять по 100ам выборкам - то все равно остается почти такой же диапазон дрожания.
В чем может быть причина? Это нормально для ADC f103 или это какие-то артефакты? Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.
Как понять в чем дело? Интересно, какие наблюдались минимальные флуктуации в показаниях ADC blue pill?
Попробую еще померить питание через емкость на 100 мкф осциллографом на частоте пару герц...
В чем может быть причина? Это нормально для ADC f103 или это какие-то артефакты? Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.
Как понять в чем дело? Интересно, какие наблюдались минимальные флуктуации в показаниях ADC blue pill?
Попробую еще померить питание через емкость на 100 мкф осциллографом на частоте пару герц...
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="Loyso Pondohva",url="/forum/viewtopic.php?p=3994119#p3994119"]Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.[/uquote]
А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести.
Попробуйте что-то вида x = 0.95 * y + 0.05 * z
где x - фильтрованное значение
y - предыдущее фильтрованное значение
z - значение ацп.
числовые коэфициенты должны в суме давать 1. правда считать надо во флоатах - немножко нагрузит ядро МК.
А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести.
Попробуйте что-то вида x = 0.95 * y + 0.05 * z
где x - фильтрованное значение
y - предыдущее фильтрованное значение
z - значение ацп.
числовые коэфициенты должны в суме давать 1. правда считать надо во флоатах - немножко нагрузит ядро МК.
-
Loyso Pondohva
- Прорезались зубы
- Сообщения: 213
- Зарегистрирован: Пт июл 03, 2020 22:09:02
Re: STM32 новичку в ARM что к чему
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3994120#p3994120"]А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести.[/uquote]
Да, это верно! Вы правы. Я чайник еще и "на лету" такие моменты не всегда замечаю.
Еще попробую специально подать 3.3 в от аккумулятора с резисторным делителем на проц. и сравнить результаты. Если будет все ровно - то виноват преобразователь на 3.3 в.
Да, это верно! Вы правы. Я чайник еще и "на лету" такие моменты не всегда замечаю.
Еще попробую специально подать 3.3 в от аккумулятора с резисторным делителем на проц. и сравнить результаты. Если будет все ровно - то виноват преобразователь на 3.3 в.
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
При использовании АЦП опорное напряжение имеет важное значение. Для этого существуют специальные источники опорного напряжения ИОН. Все зависит от требуемой точности измерения.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
-
Loyso Pondohva
- Прорезались зубы
- Сообщения: 213
- Зарегистрирован: Пт июл 03, 2020 22:09:02
Re: STM32 новичку в ARM что к чему
[uquote="Oxford",url="/forum/viewtopic.php?p=3994127#p3994127"]При использовании АЦП опорное напряжение имеет важное значение. Для этого существуют специальные источники опорного напряжения ИОН. Все зависит от требуемой точности измерения.[/uquote]
Да, я знаю. Например хотя бы на TL431. У меня модуль с AD9850 он потребляет не помню сколько - но десятки миллиампер. И точность у него 10 бит.
Навереное так и сделаю, если не удастся получить питание на 200 ma на все - например от аккумулятора через диод по-простому. И откалиброваться уже через один ИОН на всю схему.
Вообще, я удивлен таким дрожанием - подавал же я сигнал с потенциометра от того же дрожащего (возможно) питания, что и на весь девайс.
Да, я знаю. Например хотя бы на TL431. У меня модуль с AD9850 он потребляет не помню сколько - но десятки миллиампер. И точность у него 10 бит.
Навереное так и сделаю, если не удастся получить питание на 200 ma на все - например от аккумулятора через диод по-простому. И откалиброваться уже через один ИОН на всю схему.
Вообще, я удивлен таким дрожанием - подавал же я сигнал с потенциометра от того же дрожащего (возможно) питания, что и на весь девайс.
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ну факторов много влияющих на точность разбираться надо
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- do-vitas
- Потрогал лапой паяльник
- Сообщения: 363
- Зарегистрирован: Вс мар 03, 2019 08:18:34
- Откуда: Волгоград
Re: STM32 новичку в ARM что к чему
продолжаю осваивать stm32! Возник вопрос! Написал проект в кейле из 3 библиотек собрал себе библиотеку для дисплея ssd1306 вроде все заработало! проблема в том что устройство стартует только после нажатия ресета! Ну как нажатия, лапка ресета подтянута на землю через 104 кандер, я его замыкаю все запускается. Бут0 замкнут на землю. Камень stm32f030. И еще кстати про АЦП, контроллер должен мерять температуру, измеряя падение напряжение на терморезисторе. Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять. Мне асобо все равно я задам формулой нужное значение но просто интересно для общего развития....

Re: STM32 новичку в ARM что к чему
[uquote="do-vitas",url="/forum/viewtopic.php?p=3994174#p3994174"]Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять.[/uquote]
Здесь нужно учесть разницу между внутренним сопротивлением осциллографа/мультиметра и АЦП микроконтроллера.
Здесь нужно учесть разницу между внутренним сопротивлением осциллографа/мультиметра и АЦП микроконтроллера.
Астролябия-сама меряет, было бы что мерять!!!
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
[uquote="do-vitas",url="/forum/viewtopic.php?p=3994174#p3994174"]проблема в том что устройство стартует только после нажатия ресета![/uquote]
В настройках отладчика, вкладка Flash Download поставь галочку, Reset and Run
Asmodey ослик и мультик правильные параметры показывают. Разбираться нужно с АЦП, можно попробывать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.
В настройках отладчика, вкладка Flash Download поставь галочку, Reset and Run
Asmodey ослик и мультик правильные параметры показывают. Разбираться нужно с АЦП, можно попробывать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="do-vitas",url="/forum/viewtopic.php?p=3994174#p3994174"]Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять.[/uquote]
Блин, точно не помню - там есть что-то наподобие встроенной калибровки. Перед запуском АЦП ее надо прогнать.
Блин, точно не помню - там есть что-то наподобие встроенной калибровки. Перед запуском АЦП ее надо прогнать.
- do-vitas
- Потрогал лапой паяльник
- Сообщения: 363
- Зарегистрирован: Вс мар 03, 2019 08:18:34
- Откуда: Волгоград
Re: STM32 новичку в ARM что к чему
поставил(точнее стояла) не помогло!Asmodey писал(а):кладка Flash Download поставь галочку, Reset and Run
Добавлено after 4 minutes 37 seconds:
у меня терморезистор 1кОм подтянуть к + 3.3 может можно уменьшить значение ну скажем до 500ом! как рассчитать подтяжку? тогда может точнее будет! но про сопротивление люди правы закон киргофа для замкнутой цепи...Oxford писал(а):АЦП, можно попробовать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
[uquote="do-vitas",url="/forum/viewtopic.php?p=3994295#p3994295"]как рассчитать подтяжку?[/uquote]
Если просто сажать терморезистор на землю, а подтяжкой его к плюсу подключать, снимая с делителя напругу прямо на АЦП, получаем график, из которого явно видно, что сопротивление подтяжки должно быть равным среднему сопротивлению терморезистора на рабочем диапазоне температур (для примера Rmin=8кОм, Rmax=12кОм).
Если просто сажать терморезистор на землю, а подтяжкой его к плюсу подключать, снимая с делителя напругу прямо на АЦП, получаем график, из которого явно видно, что сопротивление подтяжки должно быть равным среднему сопротивлению терморезистора на рабочем диапазоне температур (для примера Rmin=8кОм, Rmax=12кОм).
- Вложения
-
- out.png
- (44.43 КБ) 161 скачивание
- do-vitas
- Потрогал лапой паяльник
- Сообщения: 363
- Зарегистрирован: Вс мар 03, 2019 08:18:34
- Откуда: Волгоград
Re: STM32 новичку в ARM что к чему
Eddy_Em, у меня терморезистор 50ом и с ростом температуры сопротивление растёт! сами понимаете подтяжку в 50Ом делать нельзя...
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Можно, если быстренько, на время измерения ...do-vitas писал(а):сами понимаете подтяжку в 50Ом делать нельзя...
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
do-vitas, такие терморезисторы положено питать источником тока! Понятно, что если вы подтяжку на 50Ом запилите, то через резистор будет течь офигенно здоровый ток, и показаниям его вообще доверять нельзя.
Если же запилить подтяжку в 10кОм, то динамический диапазон будет настолько маленьким, что без инструментального усилителя с этим делом работать нельзя будет.
В общем, либо ставьте термистор на 10кОм, если хотите его в такой простой схеме использовать, либо запитывайте источником тока.
Если же запилить подтяжку в 10кОм, то динамический диапазон будет настолько маленьким, что без инструментального усилителя с этим делом работать нельзя будет.
В общем, либо ставьте термистор на 10кОм, если хотите его в такой простой схеме использовать, либо запитывайте источником тока.


