Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 новичку в ARM что к чему

Вс мар 07, 2021 17:07:18

Зачем выдумывать на свою задницу приключения, если конкретно расписать, какая в данном МК есть периферия, можно в даташите?

Ну у него мысль - или перечисляйте все, или не пишите ничего. Потому как у него только два взаимоисключающих варианта. У человека свое понимание "как должно быть". Как инженер я его понимаю, это здравая логика с точки зрения оптимальной работы. Но как человек делающий ошибки я могу понять и ST. Хотели как лучше - всем не угодили.
Данный пример оформления технической документации просто ничто, в сравнении с тем что творится со свежими МК, например H743. Может с железной точки зрения там все ок, а вот с HAL полный бардак. У меня к примеру USB не заработал в DMA режиме. Я все перепроверил - размещение кучи/стека в правильной оперативке (их там штук 5 разных), настроил MPU чтобы отключить кеширование на буферах USB, перепроверял прерывания, консультировался с более опытными коллегами - ничего. Передает что-то около 312 слов по 4 байта и затыкается. И все равно - по одному байту передаешь, или по 10 - суммарно доходит до некоего предела и затыкается. Можно конечно было упороться и дебажить до последнего, но это время. Переключил на прерывания и пока оставил. А тут недавно обнова HAL была, гляжу в гите - много правок в юсб драйвере, в секциях с дма. Мб поправили, надо будет затестить.
Еще какой-то косяк с халовским юартом - недоделан режим прерывания по простою. Специальные функции вроде бы есть, но они не рабочие. По гайдам из инета эти спец функции не используются. Вручную конфигурируются прерывания и обычной функцией запускается дма на прием. И да, так оно работает. Вот так и живем. Самому делать с самых низов? За такое время никто платить не будет, это слишком дорого. Эзернет, юсб, спаи, CAN, как следствие фриртос, TCP сервер, может еще HTTP сервер. Знаю что здесь есть советчики малинок+линукс. Мы и такое делаем. Но заказчик такое отбросил - никаких линуксов, все должно быть жестко и риалтайм.

Re: STM32 новичку в ARM что к чему

Вс мар 07, 2021 20:11:26

Ярослав555, а вот не надо кал использовать! Пишите в соответствии с даташитом/RM, и будет вам счастье!
Но я предпочитаю развлекаться с более простыми МК, где RM в районе тысячи страниц. Вот, закончил сейчас работу с DS18x20 на STM32F103. Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).
Кстати, у H743 и цена какая-то совсем не гуманная... Если мне нужен ethernet и всякие плюшки, то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103): за верхний уровень (веб-морды и прочие сетевые сервисы) отвечает "апельсинка", а рилтайм и нижний уровень обеспечивает микроконтроллер. И нет нужды разбираться в идиотском lwIP и т.п. дряни. А то вот еще не хватало ssh или iptables своими силами на микроконтроллере реализовать!

Re: STM32 новичку в ARM что к чему

Пн мар 08, 2021 14:46:54

а вот не надо кал использовать! Пишите в соответствии с даташитом/RM, и будет вам счастье!

Ну я же написал - самописание по даташиту такого функционала как я описал займет годы. Это никому не нужно как по времени так и по деньгам.

Добавлено after 1 minute 36 seconds:
то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103)

ну я же написал - риалтайм по требованию заказчика, никаких линуксов.
сначала пишем, потом читаем? :)))

Re: STM32 новичку в ARM что к чему

Пн мар 08, 2021 14:47:13

Это никому не нужно как по времени так и по деньгам.

В данном случае есть два варианта: либо перестать этим заниматься, либо заниматься этим как нужно. Но лепить абдуринство "в продакшн" — это крайне вредная привычка!
А про рилтайм я тоже написал: МК и будет обеспечивать рилтайм! А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..

Re: STM32 новичку в ARM что к чему

Пн мар 08, 2021 15:28:41

А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..

Да мне пофиг. Деньги не пахнут. Хотят немцы на стм поднимать эзернет стек, значит буду поднимать.

Добавлено after 35 minutes 11 seconds:
Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).Кстати, у H743 и цена какая-то совсем не гуманная...

У меня МК должен выдавать поток данных на скоростях мегабит-два, причем параллельно по юсб, эзернету, вифи... если включен CAN то упираемся в 500 кбит конечно. И это еще хотят сигнал процессинг и фильтрацию.
Кстати, у H743 и цена какая-то совсем не гуманная... - копейки. при цене платы в 500 баксов мелочи.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 00:30:22

Всех приветствую! Вопрос может быть не по теме - но вдруг. Есть схема. Cигнал (постоянный, с потенциометра) идет на LM358 усиливается в 20 раз и читается по digitalRead() ADC blue pill. Две последние цифры дрожат - например 2021, 2056, 2005 и.т.д. Совсем странно - если усреднять по 100ам выборкам - то все равно остается почти такой же диапазон дрожания.

В чем может быть причина? Это нормально для ADC f103 или это какие-то артефакты? Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.

Как понять в чем дело? Интересно, какие наблюдались минимальные флуктуации в показаниях ADC blue pill?

Попробую еще померить питание через емкость на 100 мкф осциллографом на частоте пару герц...

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 00:46:15

Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.

А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести.
Попробуйте что-то вида x = 0.95 * y + 0.05 * z
где x - фильтрованное значение
y - предыдущее фильтрованное значение
z - значение ацп.
числовые коэфициенты должны в суме давать 1. правда считать надо во флоатах - немножко нагрузит ядро МК.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 00:58:12

А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести.


Да, это верно! Вы правы. Я чайник еще и "на лету" такие моменты не всегда замечаю.

Еще попробую специально подать 3.3 в от аккумулятора с резисторным делителем на проц. и сравнить результаты. Если будет все ровно - то виноват преобразователь на 3.3 в.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 01:48:47

При использовании АЦП опорное напряжение имеет важное значение. Для этого существуют специальные источники опорного напряжения ИОН. Все зависит от требуемой точности измерения.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 02:18:32

При использовании АЦП опорное напряжение имеет важное значение. Для этого существуют специальные источники опорного напряжения ИОН. Все зависит от требуемой точности измерения.


Да, я знаю. Например хотя бы на TL431. У меня модуль с AD9850 он потребляет не помню сколько - но десятки миллиампер. И точность у него 10 бит.

Навереное так и сделаю, если не удастся получить питание на 200 ma на все - например от аккумулятора через диод по-простому. И откалиброваться уже через один ИОН на всю схему.

Вообще, я удивлен таким дрожанием - подавал же я сигнал с потенциометра от того же дрожащего (возможно) питания, что и на весь девайс.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 08:50:53

ну факторов много влияющих на точность разбираться надо

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 09:23:11

продолжаю осваивать stm32! Возник вопрос! Написал проект в кейле из 3 библиотек собрал себе библиотеку для дисплея ssd1306 вроде все заработало! проблема в том что устройство стартует только после нажатия ресета! Ну как нажатия, лапка ресета подтянута на землю через 104 кандер, я его замыкаю все запускается. Бут0 замкнут на землю. Камень stm32f030. И еще кстати про АЦП, контроллер должен мерять температуру, измеряя падение напряжение на терморезисторе. Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять. Мне асобо все равно я задам формулой нужное значение но просто интересно для общего развития....
Изображение

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 12:32:20

Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять.

Здесь нужно учесть разницу между внутренним сопротивлением осциллографа/мультиметра и АЦП микроконтроллера.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 12:41:45

проблема в том что устройство стартует только после нажатия ресета!


В настройках отладчика, вкладка Flash Download поставь галочку, Reset and Run

Asmodey ослик и мультик правильные параметры показывают. Разбираться нужно с АЦП, можно попробывать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 12:51:55

Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять.

Блин, точно не помню - там есть что-то наподобие встроенной калибровки. Перед запуском АЦП ее надо прогнать.

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 13:09:49

Asmodey писал(а):кладка Flash Download поставь галочку, Reset and Run
поставил(точнее стояла) не помогло!

Добавлено after 4 minutes 37 seconds:
Oxford писал(а):АЦП, можно попробовать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.
у меня терморезистор 1кОм подтянуть к + 3.3 может можно уменьшить значение ну скажем до 500ом! как рассчитать подтяжку? тогда может точнее будет! но про сопротивление люди правы закон киргофа для замкнутой цепи... :)) вроде так могу че путать учился 20лет назад :))

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 15:08:49

как рассчитать подтяжку?

Если просто сажать терморезистор на землю, а подтяжкой его к плюсу подключать, снимая с делителя напругу прямо на АЦП, получаем график, из которого явно видно, что сопротивление подтяжки должно быть равным среднему сопротивлению терморезистора на рабочем диапазоне температур (для примера Rmin=8кОм, Rmax=12кОм).
Вложения
out.png
(44.43 KiB) Скачиваний: 139

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 15:25:50

Eddy_Em, у меня терморезистор 50ом и с ростом температуры сопротивление растёт! сами понимаете подтяжку в 50Ом делать нельзя...

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 15:43:26

do-vitas писал(а):сами понимаете подтяжку в 50Ом делать нельзя...
Можно, если быстренько, на время измерения ... :))

Re: STM32 новичку в ARM что к чему

Вт мар 09, 2021 16:15:01

do-vitas, такие терморезисторы положено питать источником тока! Понятно, что если вы подтяжку на 50Ом запилите, то через резистор будет течь офигенно здоровый ток, и показаниям его вообще доверять нельзя.
Если же запилить подтяжку в 10кОм, то динамический диапазон будет настолько маленьким, что без инструментального усилителя с этим делом работать нельзя будет.

В общем, либо ставьте термистор на 10кОм, если хотите его в такой простой схеме использовать, либо запитывайте источником тока.
Ответить