shan (29.01.2018 00:35, просмотров: 459) ответил йцукен на Про UART вам уже насоветовали, а я про другое спрошу - как это информация в ОЗУ пропадает при ресете? Ресет сам по себе ОЗУ не чистит, другое дело что сишный стартап норовит инициализировать переменные, ну так есть атрибут __no_init. И какое у вас
Согласен- перегружается быстро. Но тогда надо серьёзно переделывать инициализацию. Различать первый запуск (по питанию) когда надо всё задать "с нуля" и перезапуск по WDT или программный ресет. У STM это определить можно, но честно говоря немножко лень это делать, но может и придётся. Кроме того устройство уже инициализироало связь с оборудованием и при ресете не хотелось бы его заново инитить.
Как я понял из ответов откликнувшихся, зависание UART-а есть в природе.
Про отклонение частоты и как борьбу-ставить кварц не верю и не буду пока это делать следующим причинам:
- стоит в серверном помещении с температурой 20С;
- питание через две КРЕН-ки 12-5 и 5-3.3;
- кварц это лишние рубли и площадь=размеры
- потребуется переделка железа для будущих версий, а что делать с сотнями уже проданных?
Если приём пропал, то навсегда, те почему под влиянием дестабилизирующего фактора (параметрический отказ) частота ушла в одну сторону и никогда не возвращается? Этот фактор должен как-то менять частоту около номинала.
При сбросе связь восстанавливается мгновенно, те этот фактор пропадает при сбросе, или отсутствует.
По опыту работы с некоторыми ЖКИ дисплеями знаю, что они зависают и при работе с ними я всегда делаю их переинициализацию каждые 10 минут.
Пока склоняюсь к переинициализации только UART-а или по таймауту отсутствия связи 30сек-1 мин (период опроса 2 сек) и может принудительно каждые, например 10 минут.