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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Ярослав555 писал(а):А что есть на замену на растояния 200-500м?
Медленный CAN, например. Или даже радиосвязь. Ну и, вообще-то, ethernet никто не отменял.
А если не слишком много помех, то и обычного RS485 с контролем ошибок хватит! Зачем там древний протокол, где нужно выдерживать паузы и т.п.? Уже 21 век! Время релейных переключателей (откуда, собственно, паузы и взялись) давно прошло!!!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7052
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

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

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

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

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702390#p3702390"]Медленный CAN, например. Или даже радиосвязь. Ну и, вообще-то, ethernet никто не отменял.
А если не слишком много помех, то и обычного RS485 с контролем ошибок хватит! Зачем там древний протокол, где нужно выдерживать паузы и т.п.? Уже 21 век! Время релейных переключателей (откуда, собственно, паузы и взялись) давно прошло!!![/uquote]
Я вижу у Вас знание протокола на высоте :)))
Нет там обязательных пауз, там есть таймауты - время на ответ, после которого слейв считается отсутствующим.
Обязательные, четкие паузы есть в передовом профибасе. и там это не наследие релейных схем, а способ автонастройки скорости. Ага, представляете - слейв сам на ходу определяет скорость обмена и через 2-3 пакета начинет отвечать.
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702390#p3702390"]Зачем там древний протокол, где нужно выдерживать паузы и т.п.? Уже 21 век! Время релейных переключателей (откуда, собственно, паузы и взялись) давно прошло!!![/uquote]Причём тут реле? :shock:
Паузы (интервалы) в modbus - это маркеры границ пакета. Кодонезависимому протоколу нужны символы, которых нет в потоке данных. Но (так как данные - бинарные) нет такого значения символа, который можно было бы использовать как маркер границы кадра. Поэтому в modbus используется внеполосный сигнал - интервал. С таким же успехом можно было в качестве внеполосного сигнала использовать BREAK или дополнительные сигналы (всякие RTS/DTR).
В этом и есть минус modbus-а: необходимость таких внеполосных сигналов. Потому что как только нужно ретранслировать такой протокол в другой физический интерфейс, в котором таких сигналов нет (например: TCP-сокет, где просто поток байт) - сразу возникают проблемы.
Есть много других протоколов, тоже кодонезависимых, но в которых, в отличие от modbus, в качестве маркеров границ кадра используются не внеполосные сигналы, а экранирование символов из потока. Т.е. - объявляется, что некий кодовый символ == XX - является маркером границы кадра, а байты данных, равные по значению этому символу, заменяются специальной кодовой последовательностью (экранируются). Такие протоколы гораздо легче передавать через разные каналы связи, а не только UART/RS-485. Потому что они представляют из себя для любого нижележащего канала связи - просто поток байт. И также такие протоколы легко инкапсулируются в другие протоколы. Опять же - в отличие от modbus.
Но у этих протоколов есть конечно тоже недостатки. Например - увеличение числа передаваемых байт. Хотя оно обычно несущественное.

А почему modbus распространён повсеместно: Просто большинство новичков ничего больше не знают. Да и знать не хотят... :dont_know:

Добавлено after 1 minute 45 seconds:
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3702380#p3702380"]Живет и здравствует. Умирать не собирается. А что есть на замену на растояния 200-500м?[/uquote]А какое отношение протокол имеет к расстоянию? Вы что-же - думаете, что после 500м метров modbus как-то портится и перестаёт быть modbus-ом? :)))

Добавлено after 3 minutes 38 seconds:
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3702434#p3702434"]Я вижу у Вас знание протокола на высоте :)))[/uquote]
Протокол != интерфейс. А CAN - это интерфейс. А протокол - это то, что и в каком формате по нему (CAN) ходит.
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

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

[uquote="jcxz",url="/forum/viewtopic.php?p=3702437#p3702437"]Протокол != интерфейс. А CAN - это интерфейс. А протокол - это то, что и в каком формате по нему (CAN) ходит.[/uquote]
модбас - это протокол, интерфейс: для RTU/ASCII - 485/422, для RTU-TCP - ethernet. не пойму о чем спор.
я модбас реализовывал десяток раз что на авр, что на стм. Нет там никаких временных рамок. Только таймаут конца посылки и таймаут неответа.
https://ru.wikipedia.org/wiki/Controller_Area_Network
"Непосредственно стандарт CAN компании Bosch определяет передачу в отрыве от физического уровня — он может быть каким угодно..."
Как раз таки выходит что CAN это протокол. :dont_know:

Добавлено after 6 minutes 44 seconds:
Почитал немножко о CAN. Там что реально максимальная длина пакета 8 байт? Это позор какой-то :))) Мне вот сейчас нужно гонять 150 регистров в модбасе, это 300 байт. Это же сколько запросов надо сделать? :)))
А в модбасе это 1 посылка. Всё быстро и оперативно.

Добавлено after 2 minutes 9 seconds:
Кроме того покажите мне HMI панельку с CAN :)))
Реклама
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3702449#p3702449"]модбас - это протокол, интерфейс: для RTU/ASCII - 485/422, для RTU-TCP - ethernet. не пойму о чем спор.
я модбас реализовывал десяток раз что на авр, что на стм. Нет там никаких временных рамок. Только таймаут конца посылки и таймаут неответа.[/uquote]
Как же нет? А как граница кадра определяется? :) (при передаче через RS-485/422 конечно)

Добавлено after 2 minutes 18 seconds:
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3702449#p3702449"]Почитал немножко о CAN. Там что реально максимальная длина пакета 8 байт? Это позор какой-то :)))[/uquote]
Странно что Вы рассуждаете о CAN, а такой базовой вещи о нём не знали. :)
А зачем делать запросы? Просто передавайте 300/8 кадров подряд.
Реклама
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Asmodey писал(а):Господа, что насчет кейл скажете?
Вполне. Он, правда, платный, но позволяет бесплатно собирать программы до 32К объемом. Если не увлекаться подключением мега-библиотек и программировать, используя CMSIS, хватает надолго. Да и таблетки от жадности никто не отменял...

У него, правда, есть некоторые проблемы с русским языком. В последних версиях это дело, вроде-бы, пофиксили, в Encode добавили возможность выбора Russian Windows 1251, но что-то там все равно не то. Ну, и оптимизирует он изредка не вполне адекватно... А так, работать можно.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

jcxz писал(а):А CAN - это интерфейс.
Не интерфейс, а протокол. Т.к. все проблемы с доставкой пакета он берет на себя. Пользователю нужно лишь отправить и посмотреть ошибки, если возникнут.
И с этим протоколом очень удобно работать напрямую. Особенно если не нужно больше 8 байт за раз отсылать...
Ярослав555 писал(а):А в модбасе это 1 посылка. Всё быстро и оперативно.
Угу, угу. И сколько там служебной информации нафиг не нужной? Если необходимо много данных гонять, то самый простой вариант — тупо в лоб гонять их по RS-485, проверяя контрольную сумму.
Ярослав555 писал(а):покажите мне HMI панельку
WTF HMI?

Насчет выбора IDE крайне советую qt-creator! Я много чего перепробовал, долго на geany сидел, потом sublime пользовался. Но qt-creator реально удобен!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7052
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="afz",url="/forum/viewtopic.php?p=3702468#p3702468"]У него, правда, есть некоторые проблемы с русским языком[/uquote]
Да мне пока без разницы. Светодиодом поморгать, да с периферией разобраться. Лишь бы серьезных косяков и неожиданных особенностей не было. "32 килобайта хватит всем" :))) Значит подойдет.
Последний раз редактировалось Asmodey Вт сен 17, 2019 17:08:18, всего редактировалось 2 раза.
Астролябия-сама меряет, было бы что мерять!!!
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Asmodey писал(а):Спасибо, возьму одну штучку F401.
Бери F407, вот такую плату. Их предлагает довольно много продавцов, выбери того, который тебе нравится. А плата замечательная!
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Друг Кота
Аватара пользователя
Сообщения: 7052
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Фигасе, с батарейкой. И картридером :)
Астролябия-сама меряет, было бы что мерять!!!
Мучитель микросхем
Аватара пользователя
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Сообщение Myp3ik »

Да чего мелочиться, берите сразу F7 https://www.waveshare.com/product/mcu-t ... kage-a.htm
Купил себе. Оно стоит своих денег.
Иван Сусанин - первый полупроводник :solder:
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702476#p3702476"]все проблемы с доставкой пакета он берет на себя[/uquote]
У CAN нет квитирования. Приемник может перезапросить пакет, если принял его с ошибкой, только в том случае, если правильно принял идентификатор пакета. Если же пакет никто не принял, передатчик об этом даже не узнает.
Так же, если один или несколько передатчиков забивают канал, то более низкоприоритетные передатчики вообще ничего передать не смогут.
Обе проблемы каждый обходит, как может, уже на более высоком уровне стека протоколов.
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702476#p3702476"]Не интерфейс, а протокол. Т.к. все проблемы с доставкой пакета он берет на себя. Пользователю нужно лишь отправить и посмотреть ошибки, если возникнут.[/uquote]
И что он там берёт на себя? Только разрешение коллизий. Да и при чём тут это? В UART тоже есть старт-стоп и флаг ошибки если СТОП не найден - он тоже что-ль "протокол"?
Воспользуйтесь хоть гуглом и поищите "CAN интерфейс" и "CAN протокол". Тогда может поймёте...
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3702478#p3702478"][uquote="afz",url="/forum/viewtopic.php?p=3702468#p3702468"]У него, правда, есть некоторые проблемы с русским языком[/uquote]
Да мне пока без разницы. Светодиодом поморгать, да с периферией разобраться. Лишь бы серьезных косяков и неожиданных особенностей не было. "32 килобайта хватит всем" :))) Значит подойдет.[/uquote]

Ну и вишенка бесплатный ключ для STM32F0, STM32G0, и STM32L0 серий
https://www2.keil.com/stmicroelectronics-stm32/mdk
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3386
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702326#p3702326"]А невыровненный доступ к памяти никто не любит. Вот только буквально пару часов назад я словил на STM32F103 hardfault потому что пытался во flash 59-байтные структуры писать... Написал зачем-то pragma ((packed)), хотя надо было оставить просто как есть — для выравнивания на 4 байта.[/uquote]Я про не выровненный доступ в ОЗУ, а не при записи на флеш. Причем HardFault словить очень просто приводя один тип к другому.
Asmodey писал(а):Мне со стороны Keil показался довольно простым, а как на самом деле?
Попробуйте не смотря статьи в сети создать проект и чтобы он работал. Сами решите насколько прост кейл. Скажу что не самая простая IDE.
afz писал(а):Бери F407, вот такую плату.
Тогда лучше такую. https://ru.aliexpress.com/item/32951809692.html
Или аналогичную с 2 раза большим размером флеша https://ru.aliexpress.com/item/32827402179.html
Друг Кота
Аватара пользователя
Сообщения: 4906
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Да, хорошие платы. Я такую на VET6 заказал, плюс расстарался найти и дисплей, который под её разъём подходит и может по FSMC работать
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3702180#p3702180"]Oxford, худшего дерьма, чем STM32F103 не сыскать!
![/uquote]

Отличные камни производительные и хорошая периферия. Плюс Cortex-M3 с атомарными LDREX/STREX

Добавлено after 2 hours 19 minutes 46 seconds:
[uquote="jcxz",url="/forum/viewtopic.php?p=3700449#p3700449"][uquote="Oxford",url="/forum/viewtopic.php?p=3700408#p3700408"]ST-Link работает с кортексами, C8051 не кортекс, нет не могет.[/uquote]
Значит уже не со всеми МК, которые знает Кейл. А J-Link - работает и с C8051 8)[/uquote]

С какими чипами 8051 он работает?
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Мудрый кот
Сообщения: 1846
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Oxford",url="/forum/viewtopic.php?p=3702688#p3702688"]С какими чипами 8051 он работает?[/uquote] https://www.segger.com/products/debug-p ... nd-devices
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Мурик писал(а):Попробуйте не смотря статьи в сети создать проект и чтобы он работал. Сами решите насколько прост кейл. Скажу что не самая простая IDE.
В общем-то да, но я ему подскажу, если что. У меня хорошо получается... :)
WiseLord писал(а):Да, хорошие платы. Я такую на VET6 заказал
Я тоже, года 3 назад. А этих плат на ZET6 тогда, похоже, еще не было, я тогда искал 407-ю плату с максимальным числом ног, нашлась только с VET6. А так - да, похоже, платы одного производителя, и у меня впечатления от моей сугубо положительные...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Ответить

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