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

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

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

[uquote="a5021",url="/forum/viewtopic.php?p=3523649#p3523649"]что начинают аруинизировать портовые элеваторы, благо одернуть некому..[/uquote]
Спите спокойно - мой девайс был нужен как переходной этап. Мы поочередно модернизировали все РП без смены системы наверху и остановки. А когда с рп закончили - за сутки поменяли скаду, оно пошло напрямую и сняли мои приборы.
А вот в другом месте (два карусельных весовых дозатора) прекрасно работает. Правда я баги работы с железом пол года вылавливал, ну то такое - не в ООП дело :)))
Реклама
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

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

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

Ну глюки то не у меня, а у иара. И до ооп там даже не дошло - валилось на векторе. И никто не писал что железо глючит. Да и не "усирался" я - глюк вылез в конце пятницы, решение я нашел утром, за полчаса, в понедельник.
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3523859#p3523859"]Ну глюки то не у меня, а у иара. И до ооп там даже не дошло - валилось на векторе[/uquote]
Вам следовало бы получше запоминать то, что говорили ранее:
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3521804#p3521804"]Но наблюдал такую ситуацию - программа идет в конструктор, там создаются переменные, буферы, выходит из конструктора и на точке с запятой падает в хардфолт. В понедельник копну глубже.[/uquote]
Я понимаю, что художник так видит, но с правдоподобностью надо что-то делать.

ПО для кортексов-м -- это как драйвера для пк. Со своим ООП в младших кортексах вы выглядите, как человек, который на полном серьезе утверждает, будто встроенный язык 1С-Бухгалтерии очень удобен для написания системных драйверов. Самое уместное здесь -- задуматься, а стоит ли возражать.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3386
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

a5021 писал(а):будто встроенный язык 1С-Бухгалтерии очень удобен для написания системных драйверов.
Если есть соответствующий компилятор, можно попробовать и посмотреть что получится. :)
Дрова и на бейсике можно писать и нормально получается. :)
Реклама
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Конечно нормально. После того, как узнаешь, что энтузиасты создают объекты в динамически выделяемой памяти МК, мир вообще начинает выглядеть более позитивно. Сидишь такой и радуешься -- как же хорошо, что это все не у меня!
Реклама
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

[uquote="a5021",url="/forum/viewtopic.php?p=3523649#p3523649"]Если бы ООП в эмбеде имело хоть какую нибудь ценность, все SDK давно были бы на нем.[/uquote]
это еще сильно тормозится сложностью языка по сравнению с C. Напомню, в принципе не так уж давно каждый производитель перестал считать своим священным долгом под каждое семейство контроллеров запилить свой собственный компилятор (и различной степени убогости IDE) и прибить к нему гвоздями свой уникальный SDK. Тогда как человеческих компиляторов C++ существует не так уж много - gcc, clang, icc, msvc, кого еще забыл?

ктсати, вот прям навскидку ST один из весьма активных контрибуторов mbed)
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

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

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

[uquote="dosikus",url="/forum/viewtopic.php?p=3523990#p3523990"]Ярослав555, не занимайся вы калокубищем, знали бы что в F070 есть аппаратная поддержка модбас. А так похоже вы "велосипеды" ляпаете .[/uquote]
Нет там поддержки модбаса. Там есть аппаратное управление потоком для 485, и только (имеено из-за этого и был выбран даный чип для проекта). Которое я и задействовал - одной галочкой в "калокубе", но легко обойдусь и софтверным, если понадобится. Уже обсуждалось. Модбас это протокол с функциями и пачкой регистров. Покажите мне какой аппаратный блок расшифровывает адрес устройства в посылке, функцию, сам пишет в прикрепленную область памяти если все корректно. Без этого всего об аппаратной поддержке нет смысла говорить.

Добавлено after 5 minutes 41 second:
[uquote="arkhnchul",url="/forum/viewtopic.php?p=3523966#p3523966"]это еще сильно тормозится сложностью языка по сравнению с C.[/uquote]
Я как-то начал читать подаренную мне книжку Александрески о программировании на основе стратегий :))) Наследование классов отдыхает. Пока что дальше первого раздела не осилил. Мб когда-нибудь таки в отпуск уйду и займусь этим делом.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Упс, в этих действительно нет. Но это лишь говорит о неверном выборе МК .
На LCSC :
stm32f072cb - $1.7182
stm32f070cb - $2.7735
Уже обсуждалось.
Обсуждалось да не понято. Главное - вычленение пакета а не обработка его.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

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

[uquote="dosikus",url="/forum/viewtopic.php?p=3524014#p3524014"]Главное - вычленение пакета а не обработка его.[/uquote]
Так это не модбас, это физический уровень обмена. Модбас это протокол второго уровня. Вместо модбаса может быть любой другой - хоть профибас, хоть наш старый проприетарный. Пока МК не будет сам аппаратно разбирать пакет - он модбас не поддерживает.
У меня на плате 070CBT6 распаян.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Ярослав555, вы тему поверхностно знаете?
Именно физический уровень - определение конца пакета :
RTU -по таймаут в битах , ASCII - по символу
Изучите RM на F072 , там английским по белому написано - аппаратная поддержка модбас.
И еще раз ,уже сделано и работает - захват пакета модбас RTU (uart+DMA) + аппаратный расчет CRC.
Это и есть главное , а разбор самого пакета -это мелочи...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

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

RS485 Driver Enable
The driver enable feature is enabled by setting bit DEM in the USART_CR3 control register.
This allows the user to activate the external transceiver control, through the DE (Driver
Enable) signal. The assertion time is the time between the activation of the DE signal and
the beginning of the START bit. It is programmed using the DEAT [4:0] bit fields in the
USART_CR1 control register. The de-assertion time is the time between the end of the last
stop bit, in a transmitted message, and the de-activation of the DE signal. It is programmed
using the DEDT [4:0] bit fields in the USART_CR1 control register. The polarity of the DE
signal can be configured using the DEP bit in the USART_CR3 control register.
In USART, the DEAT and DEDT are expressed in sample time units (1/8 or 1/16 bit duration,
depending on the oversampling rate).

Ни слова о том что как-то определяется конец пакета.
СпойлерИзображение
P.S. недосмотрел что о 072 писали, а не о 070. ОК.

Добавлено after 40 minutes 11 seconds:
[uquote="dosikus",url="/forum/viewtopic.php?p=3524014#p3524014"]Упс, в этих действительно нет. Но это лишь говорит о неверном выборе МК .
На LCSC :
stm32f072cb - $1.7182
stm32f070cb - $2.7735[/uquote]
У нас 072 раза в полтора дороже 070.
https://imrad.com.ua/ru/stm32f070cbt6
https://imrad.com.ua/ru/stm32f072cbt6
Вложения
070_USART.png
(142.24 КБ) 376 скачиваний
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3524116#p3524116"]У нас 072 раза в полтора дороже 070.[/uquote]
У китайцев $10.7 десяток, правда F072C8, но это те же самые CB.
Друг Кота
Аватара пользователя
Сообщения: 3386
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

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

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

[uquote="Reflector",url="/forum/viewtopic.php?p=3524148#p3524148"]У китайцев $10.7 десяток, правда F072C8, но это те же самые CB.[/uquote]
С Китая я бы домой себе купил, я бы даже не парился и купил бы 072 здесь подороже. Это же гребаная фирма с бюрократией. Один пытается пару баксов на чипе сэкономить при цене проекта в десятки тысяч, другой будет рассказывать что с Китая мы не можем покупать, потому что так не работаем. Третий сочиняет что мы работаем только под заказ - сначала берем заказ, потом производим РАЗРАБОТКУ и производство. За пару месяцев. Представьте себе.

Добавлено after 8 minutes 24 seconds:
У меня кстати по теме вопрос есть. SPI интерфейс. CPOL задан как низкий - при простое должен быть 0. Но после инита висит как высокий. А после первого обмена уже в простое в низком уровне. В чем может быть проблема? Я подозреваю что по этому поводу у меня первый обмен идет лесом.

Добавлено after 59 minutes 10 seconds:
вышел из ситуации переключив режим в pol=1, pha=1. периферия такое понимает и баг маскируется.
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

[uquote="arkhnchul",url="/forum/viewtopic.php?p=3523966#p3523966"]это еще сильно тормозится сложностью языка по сравнению с C.[/uquote]
В ардуине не тормозится, а здесь тормозится? Какой интересный аргумент, однако.
ктсати, вот прям навскидку ST один из весьма активных контрибуторов mbed)
Не смогу похвастаться, что я хорошо знаком с mbed, но единственной библиотекой, которая мне показалось сколь нибудь полезной из всего проекта, оказалась mbedtls. Считайте, что я говорю это нарочно, но в библиотеке не оказалось ни одной строчки на C++.

А теперь об ООП-софтах, составляющих рейтинг "Most Popular Code" на сайте mbed.org:

1. Mbed / OS 2 mbed_blinky
2. mbed official / mbed
3. Blinky LED test for ST Nucleo boards
4. Output a pwm signal.
5. TextLCD library for controlling various LCD panels based on the HD44780 4-bit interface
6. mbed-os-examples / OS 5 mbed-os-example-blinky
7. ST / OS 2 Nucleo_read_analog_value
8. ST / OS 2 Nucleo_printf

По совокупности, светодиодно-мигательная тема лидирует с ошеломительным отрывом и наглядно показывает, насколько и в каких областях ценны все эти mbed-ы и кто их использует.

Добавлено after 28 minutes 37 seconds:
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3524116#p3524116"]Ни слова о том что как-то определяется конец пакета.[/uquote]
Все там определяется, начиная с F030, только документация об этом умалчивает. Если же прочесть RM0091, то открывается совершенно иная картина:
27.5.8 Modbus communication using USART

The USART offers basic support for the implementation of Modbus/RTU and Modbus/ASCII
protocols. Modbus/RTU is a half duplex, block transfer protocol. The control part of the
protocol (address recognition, block integrity control and command interpretation) must be
implemented in software.

The USART offers basic support for the end of the block detection, without software
overhead or other resources.


Modbus/RTU

In this mode, the end of one block is recognized by a “silence” (idle line) for more than 2
character times. This function is implemented through the programmable timeout function.
The timeout function and interrupt must be activated, through the RTOEN bit in the
USART_CR2 register and the RTOIE in the USART_CR1 register. The value corresponding
to a timeout of 2 character times (for example 22 x bit duration) must be programmed in the
RTO register. when the receive line is idle for this duration, after the last stop bit is received,
an interrupt is generated, informing the software that the current block reception is
completed.

Modbus/ASCII

In this mode, the end of a block is recognized by a specific (CR/LF) character sequence.
The USART manages this mechanism using the character match function.
By programming the LF ASCII code in the ADD[7:0] field and by activating the character
match interrupt (CMIE=1), the software is informed when a LF has been received and can
check the CR/LF in the DMA buffer
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

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

Спасибо за ответ по модбасу.
В понедельник приехали новые чипы (070СВ) - поведение то же (падает на инициализации плл), думаю дело не конкретном экземпляре чипов.
Смотрите какая ситуация по тактовой частоте:
8, 16 - МК работает.
24, 32 - МК отваливается от отладчика на этапе инициализации одной из ножек порта. МК после этого перешивается из среды.
40,48 - МК отваливается на макросе включения PLL. После этого он выходит на связь только под зажатым ресетом.
Как по мне, все это намикает на проблемы с питанием. По мультику все ровно - 3.3В. Как думаете - есть смысл осцилом смотреть? Может быть такое от кривой разводки платы? Все ноги питания и земли подключены, МК обвешан блокирующей керамикой....
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Латентность флеша учтена? Симптомы подходящие.
У меня F0 на 64 стабильно работают...
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="dosikus",url="/forum/viewtopic.php?p=3525587#p3525587"]Латентность флеша учтена? Симптомы подходящие.[/uquote]
Не похоже, у него проблемы уже при 24MHz начинаются, для которых 0WS нужен, а у ST все с большим запасом указано, реально с 0 и на 36MHz работает.
Ответить

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