А смысл? На 99% код (т.н. "бизнес-логика") общий, в рамках одного проекта новую функциональность проще добавлять - не нужно постоянно переключаться между проектами и таскать функциональность из одного в другой.Oxford писал(а):А зачем делать в одном проекте два камня? Просто создайте вторую версию проекта под 303 и все.
STM32 новичку в ARM что к чему
- Реклама
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="jcxz",url="/forum/viewtopic.php?p=3701619#p3701619"]Не понятно - зачем float для измерения температур???[/uquote]
У TSYS01 в даташите есть формула (полином) для перевода "попугаев" в температуру. Я сначала честно сделал все на fixed point, но по объему флеша и быстродействию оно даже хуже оказалось, чем с флоатами. Вот и оставил флоаты.
Хотя, конечно, можно было бы сделать так, как я для терморезисторов делаю: в октаве по формуле из даташита построить кривульку, потом с заданной точностью разбить ее на линейные куски и затабулировать. А дальше никакие флоаты не нужны! Ступил в случае с TSYS01, признаюсь!
[offtop]Как же неудобно здесь цитирование сделано! А в одном сообщении набабахать мультицитирование — вообще беда![/offtop]
У TSYS01 в даташите есть формула (полином) для перевода "попугаев" в температуру. Я сначала честно сделал все на fixed point, но по объему флеша и быстродействию оно даже хуже оказалось, чем с флоатами. Вот и оставил флоаты.
Хотя, конечно, можно было бы сделать так, как я для терморезисторов делаю: в октаве по формуле из даташита построить кривульку, потом с заданной точностью разбить ее на линейные куски и затабулировать. А дальше никакие флоаты не нужны! Ступил в случае с TSYS01, признаюсь!
[offtop]Как же неудобно здесь цитирование сделано! А в одном сообщении набабахать мультицитирование — вообще беда![/offtop]
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3701651#p3701651"]У TSYS01 в даташите есть формула (полином) для перевода "попугаев" в температуру. Я сначала честно сделал все на fixed point, но по объему флеша и быстродействию оно даже хуже оказалось, чем с флоатами. Вот и оставил флоаты.[/uquote]
Неужто на float было меньше чем на fixed даже с учётом добавившейся библиотеки эмуляции float? не может такого быть. Что за код такой монструозной на fixed?
Или у Вас библиотека эмуляции float уже где-то в программе используется и Вы поэтому её размер не учли?
Неужто на float было меньше чем на fixed даже с учётом добавившейся библиотеки эмуляции float? не может такого быть. Что за код такой монструозной на fixed?
Или у Вас библиотека эмуляции float уже где-то в программе используется и Вы поэтому её размер не учли?
Документ мне не попадался, может его и нет. Но у меня создалось впечатление, что у F10x, так сказать, первая версия периферии, а у остальных - вторая, основательно переработанная.WiseLord писал(а):Кстати, а есть ли какой-нибудь документ, где бы описывалась основная разница между перифериями у разных семейств?
Недавно переносил проект с F103 на F407, хорошо разобрался с GPIO, слегка с RTC - эту часть софтины я еще не писал, только примеряюсь (до этого примерялся к RTC у F103). Так вот, сейчас, из любопытства, бегло глянул GPIO и RTC у F2xx. Если не ошибаюсь, практически, то же, что и у F407.
То есть, похоже, мы неудачно выбрали в качестве первого для изучения STM32F103. Впрочем неудивительно - демоплаты с STM32F103 на Али существенно дешевле и их во много раз больше, чем демоплат с другими STM32. Вторые по наличию демоплат - это STM32F407, их тоже много, и они тоже не сильно дорогие. Демоплат с другими STM32 мало и они существенно (минимум вдвое) дороже и первых, и вторых.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Без разницы какой микроконтроллер программировать, МК выбирается под задачу.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Реклама
- Сообщения: 7058
- Зарегистрирован: Сб янв 28, 2006 22:47:24
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3701469#p3701469"]Asmodey, коль уж берете девборды, рекомендую взять вот эту — STM32F401 всего за $3.4! Берите, пока халява не кончилась...
Взял недавно себе одну, жду, когда придет. Можно будет в свободное время и на Cortex-M4 мои сниппеты расширить...[/uquote]
Спасибо, возьму одну штучку F401. Разбираться буду сначала с S103 и F103, для будущего проекта мне с головой хватит F303, но F4 все равно пусть будет.
Что сразу понравилось в периферии STM32, это прерывание по выходу напряжения на входе АЦП из заранее определенного диапазона. Этакий комбайн из АЦП и компаратора. Мне эта штука определенно пригодится. На известных мне PIC_ах приходилось изворачиваться довольно извращенными методами.
Взял недавно себе одну, жду, когда придет. Можно будет в свободное время и на Cortex-M4 мои сниппеты расширить...[/uquote]
Спасибо, возьму одну штучку F401. Разбираться буду сначала с S103 и F103, для будущего проекта мне с головой хватит F303, но F4 все равно пусть будет.
Что сразу понравилось в периферии STM32, это прерывание по выходу напряжения на входе АЦП из заранее определенного диапазона. Этакий комбайн из АЦП и компаратора. Мне эта штука определенно пригодится. На известных мне PIC_ах приходилось изворачиваться довольно извращенными методами.
Астролябия-сама меряет, было бы что мерять!!!
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="jcxz",url="/forum/viewtopic.php?p=3701798#p3701798"]Неужто на float было меньше чем на fixed даже с учётом добавившейся библиотеки эмуляции float?[/uquote]
Да, потому что пришлось пользоваться long'ами! А т.к. у МК нет аппаратного деления, то размер довольно прилично раздулся, когда софтовое деление long'ов подключилось.
Хотя, конечно, иногда очень не хватает cortex'а в каком-нибудь восьми-двенадцатиногом QFN...
Да, потому что пришлось пользоваться long'ами! А т.к. у МК нет аппаратного деления, то размер довольно прилично раздулся, когда софтовое деление long'ов подключилось.
Нет, больше нигде у меня флоатов не было. Я не тыкаю флоаты куда попало! И вообще, обычно стараюсь fixed point обходиться, чтобы не вылезать за пределы целочисленной арифметики.Eddy_Em писал(а):Или у Вас библиотека эмуляции float уже где-то в программе используется и Вы поэтому её размер не учли?
Естественно! Это — самый неудачный камень ST. Эдакий "первый блин комом". У него и errata толстенная, и вообще косяков пруд пруди! Даже GPIO кривые... И регистры по-дурацки организованы.jcxz писал(а):То есть, похоже, мы неудачно выбрали в качестве первого для изучения STM32F103.
Не всегда. Если задачу можно решить на копеечном STM8S003, то почему бы и нет? Но все-таки, приятней работать с cortex'ами. Да и цены у них не такие уж высокие. Те же STM32F072 или пресловутый STM32F103 в LQFP48 стоят на али около доллара в партии 10 штук. Это всего лишь в 3 раза больше, чем STM8S003 (у которого к тому же и ног меньше, и периферия дохлей)!afz писал(а):МК выбирается под задачу.
Хотя, конечно, иногда очень не хватает cortex'а в каком-нибудь восьми-двенадцатиногом QFN...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
Eddy_Em не пори чушь про STM32F103
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Oxford, худшего дерьма, чем STM32F103 не сыскать!
Если бы оно не стоило по баксу за штучку, то никто бы им не пользовался! Потому что из более слабых есть отличные камни в нулевой серии, а из более дорогих — тот же F303!
Здесь чем-то ситуация на аврки похожа: никто в здравом уме не брал бы это [censored], но тут "внезапно" появляется абдурина на этом самом недомикроконтроллере. Все рады: никому не нужная продукция отлично продается, а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами!
Если бы оно не стоило по баксу за штучку, то никто бы им не пользовался! Потому что из более слабых есть отличные камни в нулевой серии, а из более дорогих — тот же F303!
Здесь чем-то ситуация на аврки похожа: никто в здравом уме не брал бы это [censored], но тут "внезапно" появляется абдурина на этом самом недомикроконтроллере. Все рады: никому не нужная продукция отлично продается, а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
вы-то точно не такой? помнится, неделю 1-wire мучали... и Cortex не помог.Eddy_Em писал(а):а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами!
скромнее надо быть, батенька.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702180#p3702180"]а рукожопые детишки с высоким ЧСВ могут почувствовать себя великими инженерами![/uquote]
Это в точку. Приходят студенты устраиваться. Даешь задачу, например, модбас помониторить - и чет чсв поубавляется при виде потока хексов
Это в точку. Приходят студенты устраиваться. Даешь задачу, например, модбас помониторить - и чет чсв поубавляется при виде потока хексов
- Сообщения: 3386
- Зарегистрирован: Пн окт 11, 2010 19:00:08
При этом забываете упомянуть что M0 аппаратно не поддерживает деление и не выровненный доступ к памяти из-за чего можно получить HardFault в том коде что прекрасно работает на упомянутых вами 103 и 303.Eddy_Em писал(а):Потому что из более слабых есть отличные камни в нулевой серии
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
[uquote="ARV",url="/forum/viewtopic.php?p=3702196#p3702196"]помнится, неделю 1-wire мучали... и Cortex не помог.[/uquote]
1-wire на avr и на STM32 две большие разницы...
1-wire на avr и на STM32 две большие разницы...
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="ARV",url="/forum/viewtopic.php?p=3702196#p3702196"]помнится, неделю 1-wire мучали... и Cortex не помог.[/uquote]
Ну так вымучил же в конце-концов! Основной проблемой было то, что я пользовался библиотекой opencm3. Ее функции перевода режима таймеров выполнялись очень медленно, и получались "левые" выбросы.
Как только внутри стал оперировать только CMSIS, все заработало!
А после того, как создатели opencm3 поломали API, я решил, что зависеть от всяких нехороших людей не стоит, поэтому пишу сейчас на чистом CMSIS, без всяких библиотек.
А если ты о абдуринщиках, то при чем здесь авр? (как-то встречал на каком-то форуме "реализацию" для абдурины: пока читается температура, ничего больше не работает!)
Ну так вымучил же в конце-концов! Основной проблемой было то, что я пользовался библиотекой opencm3. Ее функции перевода режима таймеров выполнялись очень медленно, и получались "левые" выбросы.
Как только внутри стал оперировать только CMSIS, все заработало!
А после того, как создатели opencm3 поломали API, я решил, что зависеть от всяких нехороших людей не стоит, поэтому пишу сейчас на чистом CMSIS, без всяких библиотек.
Поубивал бы тех, кто в 21 веке этим пометом динозавров пользуется!!! Извращенцы чертовы.Ярослав555 писал(а):модбас
С чего бы? Просто на аврках нет DMA, поэтому нужно на прерываниях делать. Но и на прерываниях я 1-wire делал — для STM8. А вот с аврками связываться не буду, хватило пары раз. Это просто ужас: дорогущий микроконтроллер, у которого возможностей меньше, чем у 16-рублевого STM8!!!dosikus писал(а):1-wire на avr и на STM32 две большие разницы...
А если ты о абдуринщиках, то при чем здесь авр? (как-то встречал на каком-то форуме "реализацию" для абдурины: пока читается температура, ничего больше не работает!)
Не забываю: про деление я уже упоминал. А невыровненный доступ к памяти никто не любит. Вот только буквально пару часов назад я словил на STM32F103 hardfault потому что пытался во flash 59-байтные структуры писать... Написал зачем-то pragma ((packed)), хотя надо было оставить просто как есть — для выравнивания на 4 байта.Мурик писал(а):забываете упомянуть что M0 аппаратно не поддерживает деление и не выровненный доступ к памяти
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="Asmodey",url="/forum/viewtopic.php?p=3701917#p3701917"]Что сразу понравилось в периферии STM32, это прерывание по выходу напряжения на входе АЦП из заранее определенного диапазона. Этакий комбайн из АЦП и компаратора.[/uquote]Такое не только в STM32 есть. В других МК тоже видел аналогичное.
Последний раз редактировалось jcxz Вт сен 17, 2019 13:35:36, всего редактировалось 1 раз.
[uquote="dosikus",url="/forum/viewtopic.php?p=3702278#p3702278"]1-wire на avr и на STM32 две большие разницы...[/uquote]
конечно, ведь реализовать его без DMA, 100500 таймеров и еще чего-нибудь чуденсно-волшебного периферийно-аппаратного запрещено кодексом настоящего программиста. лучше неделю потерять, зато не пользоваться некошерным дрыгоногом... кстати, 1-wire премило реализуется USART-ом - прямо-таки непосредственно printf-ами.
конечно, ведь реализовать его без DMA, 100500 таймеров и еще чего-нибудь чуденсно-волшебного периферийно-аппаратного запрещено кодексом настоящего программиста. лучше неделю потерять, зато не пользоваться некошерным дрыгоногом... кстати, 1-wire премило реализуется USART-ом - прямо-таки непосредственно printf-ами.
скромнее надо быть и спокойнее. убивец нашелся, панимаш...Eddy_Em писал(а):Поубивал бы тех, кто в 21 веке этим пометом динозавров пользуется!!! Извращенцы чертовы
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702010#p3702010"]Да, потому что пришлось пользоваться long'ами! А т.к. у МК нет аппаратного деления, то размер довольно прилично раздулся, когда софтовое деление long'ов подключилось.[/uquote]
Деление - это всего одна функция. В отличие от всей float-library. Разница существенная.
Деление - это всего одна функция. В отличие от всей float-library. Разница существенная.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Это запрещено здравым смыслом. Все элементарно.ARV писал(а):ведь реализовать его без DMA, 100500 таймеров и еще чего-нибудь чуденсно-волшебного периферийно-аппаратного запрещено кодексом настоящего программиста
Я видел у кого-то реализацию через UART+DMA. Тоже вариант, но мне не подходит: на используемом для той задачи камне было всего 3 UART'а, мне все три нужны были + USB.ARV писал(а):кстати, 1-wire премило реализуется USART-ом
Ладно, что мы об этой дряни? Я вот потерял приличное количество времени на то, чтобы осознать всю никчемность датчиков DS18. Теперь прекрасно понимаю, что использовать их не нужно.
Советую посмотреть объем этой "всего одной функции"! Она чуть ли не килобайт для uint32 занимает! А для uint64 еще добавляется неплохо.jcxz писал(а):Деление - это всего одна функция.
Последний раз редактировалось Eddy_Em Вт сен 17, 2019 13:31:20, всего редактировалось 1 раз.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1846
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702010#p3702010"]
Не приписывайте мне чужих слов!!! Я такого не писал.
[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]Не верю. Там самый обычный цикл со сдвигами и вычитаниями. Не может он быть КБ.
Естественно! Это — самый неудачный камень ST. Эдакий "первый блин комом". У него и errata толстенная, и вообще косяков пруд пруди! Даже GPIO кривые... И регистры по-дурацки организованы.[/uquote]jcxz писал(а):То есть, похоже, мы неудачно выбрали в качестве первого для изучения STM32F103.
Не приписывайте мне чужих слов!!! Я такого не писал.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702010#p3702010"]Не всегда. Если задачу можно решить на копеечном STM8S003, то почему бы и нет?[/uquote]Если "её можно решить на нём" значит он - "под задачу".
Добавлено after 7 minutes 11 seconds:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702336#p3702336"]Советую посмотреть объем этой "всего одной функции"! Она чуть ли не килобайт для uint32 занимает! А для uint64 еще добавляется неплохо.[/uquote]Не верю. Там самый обычный цикл со сдвигами и вычитаниями. Не может он быть КБ.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702326#p3702326"]Поубивал бы тех, кто в 21 веке этим пометом динозавров пользуется!!! Извращенцы чертовы.[/uquote]
Живет и здравствует. Умирать не собирается. А что есть на замену на растояния 200-500м?
Для гурманов на собесе могу сименсовский профибас предложить - обмен вроде прост, но чтобы заставить станцию работать, ее нужно правильно и последовательно настроить прямо из протокола на лету. Ох и задачка была
, да еще и на АВРке пришлось 
Живет и здравствует. Умирать не собирается. А что есть на замену на растояния 200-500м?
Для гурманов на собесе могу сименсовский профибас предложить - обмен вроде прост, но чтобы заставить станцию работать, ее нужно правильно и последовательно настроить прямо из протокола на лету. Ох и задачка была


