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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 4906
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Oxford писал(а):А зачем делать в одном проекте два камня? Просто создайте вторую версию проекта под 303 и все.
А смысл? На 99% код (т.н. "бизнес-логика") общий, в рамках одного проекта новую функциональность проще добавлять - не нужно постоянно переключаться между проектами и таскать функциональность из одного в другой.
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="jcxz",url="/forum/viewtopic.php?p=3701619#p3701619"]Не понятно - зачем float для измерения температур???[/uquote]
У TSYS01 в даташите есть формула (полином) для перевода "попугаев" в температуру. Я сначала честно сделал все на fixed point, но по объему флеша и быстродействию оно даже хуже оказалось, чем с флоатами. Вот и оставил флоаты.
Хотя, конечно, можно было бы сделать так, как я для терморезисторов делаю: в октаве по формуле из даташита построить кривульку, потом с заданной точностью разбить ее на линейные куски и затабулировать. А дальше никакие флоаты не нужны! Ступил в случае с TSYS01, признаюсь!

[offtop]Как же неудобно здесь цитирование сделано! А в одном сообщении набабахать мультицитирование — вообще беда![/offtop]
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3701651#p3701651"]У TSYS01 в даташите есть формула (полином) для перевода "попугаев" в температуру. Я сначала честно сделал все на fixed point, но по объему флеша и быстродействию оно даже хуже оказалось, чем с флоатами. Вот и оставил флоаты.[/uquote]
Неужто на float было меньше чем на fixed даже с учётом добавившейся библиотеки эмуляции float? не может такого быть. Что за код такой монструозной на fixed?
:shock:
Или у Вас библиотека эмуляции float уже где-то в программе используется и Вы поэтому её размер не учли? :)
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

WiseLord писал(а):Кстати, а есть ли какой-нибудь документ, где бы описывалась основная разница между перифериями у разных семейств?
Документ мне не попадался, может его и нет. Но у меня создалось впечатление, что у F10x, так сказать, первая версия периферии, а у остальных - вторая, основательно переработанная.

Недавно переносил проект с F103 на F407, хорошо разобрался с GPIO, слегка с RTC - эту часть софтины я еще не писал, только примеряюсь (до этого примерялся к RTC у F103). Так вот, сейчас, из любопытства, бегло глянул GPIO и RTC у F2xx. Если не ошибаюсь, практически, то же, что и у F407.

То есть, похоже, мы неудачно выбрали в качестве первого для изучения STM32F103. Впрочем неудивительно - демоплаты с STM32F103 на Али существенно дешевле и их во много раз больше, чем демоплат с другими STM32. Вторые по наличию демоплат - это STM32F407, их тоже много, и они тоже не сильно дорогие. Демоплат с другими STM32 мало и они существенно (минимум вдвое) дороже и первых, и вторых.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Без разницы какой микроконтроллер программировать, МК выбирается под задачу.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7058
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3701469#p3701469"]Asmodey, коль уж берете девборды, рекомендую взять вот эту — STM32F401 всего за $3.4! Берите, пока халява не кончилась...
Взял недавно себе одну, жду, когда придет. Можно будет в свободное время и на Cortex-M4 мои сниппеты расширить...[/uquote]
Спасибо, возьму одну штучку F401. Разбираться буду сначала с S103 и F103, для будущего проекта мне с головой хватит F303, но F4 все равно пусть будет.

Что сразу понравилось в периферии STM32, это прерывание по выходу напряжения на входе АЦП из заранее определенного диапазона. Этакий комбайн из АЦП и компаратора. Мне эта штука определенно пригодится. На известных мне PIC_ах приходилось изворачиваться довольно извращенными методами.
Астролябия-сама меряет, было бы что мерять!!!
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="jcxz",url="/forum/viewtopic.php?p=3701798#p3701798"]Неужто на float было меньше чем на fixed даже с учётом добавившейся библиотеки эмуляции float?[/uquote]
Да, потому что пришлось пользоваться long'ами! А т.к. у МК нет аппаратного деления, то размер довольно прилично раздулся, когда софтовое деление long'ов подключилось.
Eddy_Em писал(а):Или у Вас библиотека эмуляции float уже где-то в программе используется и Вы поэтому её размер не учли? :)
Нет, больше нигде у меня флоатов не было. Я не тыкаю флоаты куда попало! И вообще, обычно стараюсь fixed point обходиться, чтобы не вылезать за пределы целочисленной арифметики.
jcxz писал(а):То есть, похоже, мы неудачно выбрали в качестве первого для изучения STM32F103.
Естественно! Это — самый неудачный камень ST. Эдакий "первый блин комом". У него и errata толстенная, и вообще косяков пруд пруди! Даже GPIO кривые... И регистры по-дурацки организованы.
afz писал(а):МК выбирается под задачу.
Не всегда. Если задачу можно решить на копеечном STM8S003, то почему бы и нет? Но все-таки, приятней работать с cortex'ами. Да и цены у них не такие уж высокие. Те же STM32F072 или пресловутый STM32F103 в LQFP48 стоят на али около доллара в партии 10 штук. Это всего лишь в 3 раза больше, чем STM8S003 (у которого к тому же и ног меньше, и периферия дохлей)!
Хотя, конечно, иногда очень не хватает cortex'а в каком-нибудь восьми-двенадцатиногом QFN...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Eddy_Em не пори чушь про STM32F103
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Oxford, худшего дерьма, чем STM32F103 не сыскать!
Если бы оно не стоило по баксу за штучку, то никто бы им не пользовался! Потому что из более слабых есть отличные камни в нулевой серии, а из более дорогих — тот же F303!
Здесь чем-то ситуация на аврки похожа: никто в здравом уме не брал бы это [censored], но тут "внезапно" появляется абдурина на этом самом недомикроконтроллере. Все рады: никому не нужная продукция отлично продается, а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18793
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а):а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами!
вы-то точно не такой? помнится, неделю 1-wire мучали... и Cortex не помог.

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

Мой уютный бложик... заходите!
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702180#p3702180"]а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами![/uquote]
Это в точку. Приходят студенты устраиваться. Даешь задачу, например, модбас помониторить - и чет чсв поубавляется при виде потока хексов :)))
Друг Кота
Аватара пользователя
Сообщения: 3386
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Eddy_Em писал(а):Потому что из более слабых есть отличные камни в нулевой серии
При этом забываете упомянуть что M0 аппаратно не поддерживает деление и не выровненный доступ к памяти из-за чего можно получить HardFault в том коде что прекрасно работает на упомянутых вами 103 и 303.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

[uquote="ARV",url="/forum/viewtopic.php?p=3702196#p3702196"]помнится, неделю 1-wire мучали... и Cortex не помог.[/uquote]

1-wire на avr и на STM32 две большие разницы...
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="ARV",url="/forum/viewtopic.php?p=3702196#p3702196"]помнится, неделю 1-wire мучали... и Cortex не помог.[/uquote]
Ну так вымучил же в конце-концов! Основной проблемой было то, что я пользовался библиотекой opencm3. Ее функции перевода режима таймеров выполнялись очень медленно, и получались "левые" выбросы.
Как только внутри стал оперировать только CMSIS, все заработало!
А после того, как создатели opencm3 поломали API, я решил, что зависеть от всяких нехороших людей не стоит, поэтому пишу сейчас на чистом CMSIS, без всяких библиотек.
Ярослав555 писал(а):модбас
Поубивал бы тех, кто в 21 веке этим пометом динозавров пользуется!!! Извращенцы чертовы.
dosikus писал(а):1-wire на avr и на STM32 две большие разницы...
С чего бы? Просто на аврках нет DMA, поэтому нужно на прерываниях делать. Но и на прерываниях я 1-wire делал — для STM8. А вот с аврками связываться не буду, хватило пары раз. Это просто ужас: дорогущий микроконтроллер, у которого возможностей меньше, чем у 16-рублевого STM8!!!
А если ты о абдуринщиках, то при чем здесь авр? (как-то встречал на каком-то форуме "реализацию" для абдурины: пока читается температура, ничего больше не работает!)
Мурик писал(а):забываете упомянуть что M0 аппаратно не поддерживает деление и не выровненный доступ к памяти
Не забываю: про деление я уже упоминал. А невыровненный доступ к памяти никто не любит. Вот только буквально пару часов назад я словил на STM32F103 hardfault потому что пытался во flash 59-байтные структуры писать... Написал зачем-то pragma ((packed)), хотя надо было оставить просто как есть — для выравнивания на 4 байта.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3701917#p3701917"]Что сразу понравилось в периферии STM32, это прерывание по выходу напряжения на входе АЦП из заранее определенного диапазона. Этакий комбайн из АЦП и компаратора.[/uquote]Такое не только в STM32 есть. В других МК тоже видел аналогичное.
Последний раз редактировалось jcxz Вт сен 17, 2019 13:35:36, всего редактировалось 1 раз.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18793
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

[uquote="dosikus",url="/forum/viewtopic.php?p=3702278#p3702278"]1-wire на avr и на STM32 две большие разницы...[/uquote]
конечно, ведь реализовать его без DMA, 100500 таймеров и еще чего-нибудь чуденсно-волшебного периферийно-аппаратного запрещено кодексом настоящего программиста. лучше неделю потерять, зато не пользоваться некошерным дрыгоногом... кстати, 1-wire премило реализуется USART-ом - прямо-таки непосредственно printf-ами.
Eddy_Em писал(а):Поубивал бы тех, кто в 21 веке этим пометом динозавров пользуется!!! Извращенцы чертовы
скромнее надо быть и спокойнее. убивец нашелся, панимаш... :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702010#p3702010"]Да, потому что пришлось пользоваться long'ами! А т.к. у МК нет аппаратного деления, то размер довольно прилично раздулся, когда софтовое деление long'ов подключилось.[/uquote]
Деление - это всего одна функция. В отличие от всей float-library. Разница существенная.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

ARV писал(а):ведь реализовать его без DMA, 100500 таймеров и еще чего-нибудь чуденсно-волшебного периферийно-аппаратного запрещено кодексом настоящего программиста
Это запрещено здравым смыслом. Все элементарно.
ARV писал(а):кстати, 1-wire премило реализуется USART-ом
Я видел у кого-то реализацию через UART+DMA. Тоже вариант, но мне не подходит: на используемом для той задачи камне было всего 3 UART'а, мне все три нужны были + USB.
Ладно, что мы об этой дряни? Я вот потерял приличное количество времени на то, чтобы осознать всю никчемность датчиков DS18. Теперь прекрасно понимаю, что использовать их не нужно.
jcxz писал(а):Деление - это всего одна функция.
Советую посмотреть объем этой "всего одной функции"! Она чуть ли не килобайт для uint32 занимает! А для uint64 еще добавляется неплохо.
Последний раз редактировалось Eddy_Em Вт сен 17, 2019 13:31:20, всего редактировалось 1 раз.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702010#p3702010"]
jcxz писал(а):То есть, похоже, мы неудачно выбрали в качестве первого для изучения STM32F103.
Естественно! Это — самый неудачный камень ST. Эдакий "первый блин комом". У него и errata толстенная, и вообще косяков пруд пруди! Даже GPIO кривые... И регистры по-дурацки организованы.[/uquote]
Не приписывайте мне чужих слов!!! Я такого не писал.

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702010#p3702010"]Не всегда. Если задачу можно решить на копеечном STM8S003, то почему бы и нет?[/uquote]Если "её можно решить на нём" значит он - "под задачу". :))) Согласен с Oxford.

Добавлено after 7 minutes 11 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702336#p3702336"]Советую посмотреть объем этой "всего одной функции"! Она чуть ли не килобайт для uint32 занимает! А для uint64 еще добавляется неплохо.[/uquote]Не верю. Там самый обычный цикл со сдвигами и вычитаниями. Не может он быть КБ.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702326#p3702326"]Поубивал бы тех, кто в 21 веке этим пометом динозавров пользуется!!! Извращенцы чертовы.[/uquote]
Живет и здравствует. Умирать не собирается. А что есть на замену на растояния 200-500м?
Для гурманов на собесе могу сименсовский профибас предложить - обмен вроде прост, но чтобы заставить станцию работать, ее нужно правильно и последовательно настроить прямо из протокола на лету. Ох и задачка была 8) , да еще и на АВРке пришлось :)))
Ответить

Вернуться в «ARM»