Зачем выдумывать на свою задницу приключения, если конкретно расписать, какая в данном МК есть периферия, можно в даташите?
Ну у него мысль - или перечисляйте все, или не пишите ничего. Потому как у него только два взаимоисключающих варианта. У человека свое понимание "как должно быть". Как инженер я его понимаю, это здравая логика с точки зрения оптимальной работы. Но как человек делающий ошибки я могу понять и ST. Хотели как лучше - всем не угодили. Данный пример оформления технической документации просто ничто, в сравнении с тем что творится со свежими МК, например H743. Может с железной точки зрения там все ок, а вот с HAL полный бардак. У меня к примеру USB не заработал в DMA режиме. Я все перепроверил - размещение кучи/стека в правильной оперативке (их там штук 5 разных), настроил MPU чтобы отключить кеширование на буферах USB, перепроверял прерывания, консультировался с более опытными коллегами - ничего. Передает что-то около 312 слов по 4 байта и затыкается. И все равно - по одному байту передаешь, или по 10 - суммарно доходит до некоего предела и затыкается. Можно конечно было упороться и дебажить до последнего, но это время. Переключил на прерывания и пока оставил. А тут недавно обнова HAL была, гляжу в гите - много правок в юсб драйвере, в секциях с дма. Мб поправили, надо будет затестить. Еще какой-то косяк с халовским юартом - недоделан режим прерывания по простою. Специальные функции вроде бы есть, но они не рабочие. По гайдам из инета эти спец функции не используются. Вручную конфигурируются прерывания и обычной функцией запускается дма на прием. И да, так оно работает. Вот так и живем. Самому делать с самых низов? За такое время никто платить не будет, это слишком дорого. Эзернет, юсб, спаи, CAN, как следствие фриртос, TCP сервер, может еще HTTP сервер. Знаю что здесь есть советчики малинок+линукс. Мы и такое делаем. Но заказчик такое отбросил - никаких линуксов, все должно быть жестко и риалтайм.
Ярослав555, а вот не надо кал использовать! Пишите в соответствии с даташитом/RM, и будет вам счастье! Но я предпочитаю развлекаться с более простыми МК, где RM в районе тысячи страниц. Вот, закончил сейчас работу с DS18x20 на STM32F103. Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают). Кстати, у H743 и цена какая-то совсем не гуманная... Если мне нужен ethernet и всякие плюшки, то я просто собираю комбайн из "апельсинки-0" и STM32F0x2 (или 103): за верхний уровень (веб-морды и прочие сетевые сервисы) отвечает "апельсинка", а рилтайм и нижний уровень обеспечивает микроконтроллер. И нет нужды разбираться в идиотском lwIP и т.п. дряни. А то вот еще не хватало ssh или iptables своими силами на микроконтроллере реализовать!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Это никому не нужно как по времени так и по деньгам.
В данном случае есть два варианта: либо перестать этим заниматься, либо заниматься этим как нужно. Но лепить абдуринство "в продакшн" — это крайне вредная привычка! А про рилтайм я тоже написал: МК и будет обеспечивать рилтайм! А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
А "апельсинка" выполняет роль интерфейса "связи с миром". Очень удобно. И не нужно свою карму портить всякими калокубами, lwIP, fatFS от Чена и т.п. дрянью!..
Да мне пофиг. Деньги не пахнут. Хотят немцы на стм поднимать эзернет стек, значит буду поднимать.
Использую поллинг, конечные автоматы и TIM1+DMA. Так что самые медленные вещи происходят "сами по себе", без необходимости постоянно дергать ядро МК на прерывания (или вообще блокировать его, как абдуринщики делают).Кстати, у H743 и цена какая-то совсем не гуманная...
У меня МК должен выдавать поток данных на скоростях мегабит-два, причем параллельно по юсб, эзернету, вифи... если включен CAN то упираемся в 500 кбит конечно. И это еще хотят сигнал процессинг и фильтрацию. Кстати, у H743 и цена какая-то совсем не гуманная... - копейки. при цене платы в 500 баксов мелочи.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Всех приветствую! Вопрос может быть не по теме - но вдруг. Есть схема. Cигнал (постоянный, с потенциометра) идет на LM358 усиливается в 20 раз и читается по digitalRead() ADC blue pill. Две последние цифры дрожат - например 2021, 2056, 2005 и.т.д. Совсем странно - если усреднять по 100ам выборкам - то все равно остается почти такой же диапазон дрожания.
В чем может быть причина? Это нормально для ADC f103 или это какие-то артефакты? Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.
Как понять в чем дело? Интересно, какие наблюдались минимальные флуктуации в показаниях ADC blue pill?
Попробую еще померить питание через емкость на 100 мкф осциллографом на частоте пару герц...
Если что пульсации по питанию могут быть ну с частотой 100кГц ну никак не пару раз в секунду.
А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести. Попробуйте что-то вида x = 0.95 * y + 0.05 * z где x - фильтрованное значение y - предыдущее фильтрованное значение z - значение ацп. числовые коэфициенты должны в суме давать 1. правда считать надо во флоатах - немножко нагрузит ядро МК.
А не важно на какой они частоте. Если пульсации есть - они будут в сигнале. То что они гуляют с какой-то там периодичностью это уже другое дело - частота измерения накладывается на частоту пульсаций, биение частот, прочие прелести.
Да, это верно! Вы правы. Я чайник еще и "на лету" такие моменты не всегда замечаю.
Еще попробую специально подать 3.3 в от аккумулятора с резисторным делителем на проц. и сравнить результаты. Если будет все ровно - то виноват преобразователь на 3.3 в.
При использовании АЦП опорное напряжение имеет важное значение. Для этого существуют специальные источники опорного напряжения ИОН. Все зависит от требуемой точности измерения.
_________________ Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
При использовании АЦП опорное напряжение имеет важное значение. Для этого существуют специальные источники опорного напряжения ИОН. Все зависит от требуемой точности измерения.
Да, я знаю. Например хотя бы на TL431. У меня модуль с AD9850 он потребляет не помню сколько - но десятки миллиампер. И точность у него 10 бит.
Навереное так и сделаю, если не удастся получить питание на 200 ma на все - например от аккумулятора через диод по-простому. И откалиброваться уже через один ИОН на всю схему.
Вообще, я удивлен таким дрожанием - подавал же я сигнал с потенциометра от того же дрожащего (возможно) питания, что и на весь девайс.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Вт мар 09, 2021 09:23:11
Потрогал лапой паяльник
Карма: 8
Рейтинг сообщений: 54
Зарегистрирован: Вс мар 03, 2019 08:18:34 Сообщений: 350 Откуда: Волгоград
Рейтинг сообщения:0 Медали: 1
продолжаю осваивать stm32! Возник вопрос! Написал проект в кейле из 3 библиотек собрал себе библиотеку для дисплея ssd1306 вроде все заработало! проблема в том что устройство стартует только после нажатия ресета! Ну как нажатия, лапка ресета подтянута на землю через 104 кандер, я его замыкаю все запускается. Бут0 замкнут на землю. Камень stm32f030. И еще кстати про АЦП, контроллер должен мерять температуру, измеряя падение напряжение на терморезисторе. Дак вот и осциллограф и мультиметр в точке измерения показывают 132mV а контроллер 80. Почему не могу понять. Мне асобо все равно я задам формулой нужное значение но просто интересно для общего развития....
проблема в том что устройство стартует только после нажатия ресета!
В настройках отладчика, вкладка Flash Download поставь галочку, Reset and Run
Asmodey ослик и мультик правильные параметры показывают. Разбираться нужно с АЦП, можно попробывать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.
_________________ Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Вт мар 09, 2021 13:09:49
Потрогал лапой паяльник
Карма: 8
Рейтинг сообщений: 54
Зарегистрирован: Вс мар 03, 2019 08:18:34 Сообщений: 350 Откуда: Волгоград
Рейтинг сообщения:0 Медали: 1
Asmodey писал(а):
кладка Flash Download поставь галочку, Reset and Run
поставил(точнее стояла) не помогло!
Добавлено after 4 minutes 37 seconds:
Oxford писал(а):
АЦП, можно попробовать увеличить количество семплов для точности, точное напряжение опорное указать при расчетах.
у меня терморезистор 1кОм подтянуть к + 3.3 может можно уменьшить значение ну скажем до 500ом! как рассчитать подтяжку? тогда может точнее будет! но про сопротивление люди правы закон киргофа для замкнутой цепи... вроде так могу че путать учился 20лет назад
Если просто сажать терморезистор на землю, а подтяжкой его к плюсу подключать, снимая с делителя напругу прямо на АЦП, получаем график, из которого явно видно, что сопротивление подтяжки должно быть равным среднему сопротивлению терморезистора на рабочем диапазоне температур (для примера Rmin=8кОм, Rmax=12кОм).
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
do-vitas, такие терморезисторы положено питать источником тока! Понятно, что если вы подтяжку на 50Ом запилите, то через резистор будет течь офигенно здоровый ток, и показаниям его вообще доверять нельзя. Если же запилить подтяжку в 10кОм, то динамический диапазон будет настолько маленьким, что без инструментального усилителя с этим делом работать нельзя будет.
В общем, либо ставьте термистор на 10кОм, если хотите его в такой простой схеме использовать, либо запитывайте источником тока.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения