меня сегодня ядро uart, которое в нём используется. Если подключить прерывание по таймауту приёмника RTOF, то оно почему то задерживает прерывание по непустому ФИФО приёмника RTFNE. Фишка интересная и клёвая, очень пригодилось, да только в мануала и даташитах про эту фичу инфы нет. Кто то с этим сталкивался? Это нормально? Или у меня китайская подделка на столе лежит (stm32h743vet EvalBoard)?
Используем RTOF , задавайте таймауты и получите модбас рту, очень удобная штука. В прерывании получаем пакет после интервала тишины/таймаута. с таким поведением как у вас не сталкивался, на L4 такой жэ регистр есть,посмотрите там описание ,хотя в rm все вроде хорошо описано, только не указано как рассчитывать значение таймаута, мы подбирали с цифровым анализатором.
Там же написано, тайм-аут - количество бит на вашей скорости) у меня просто соисполнитель сверхсекретный протокол обмена придумал, в котором нужно программно адрес источника посылки вылавливать, и приходится по несколько прерываний использовать, чтобы контроллер разгружать. И вот на такое наткнулся... В целом то я не против этого "эффекта", вещь удобная, просто как бы это не оказалось косяком микросхемы😁😁😁 а то, закупит у меня манагер из другой партии МСХ, а там так не работает)
Хитрый протокол, а вы байтстаффингом не пользуетесь случаем? Мы такое поделие с Бауманкой делали. У них был самописный драйвер этого протокола.
Лучше б использовали... Проблема в том, что протокол должен быть реализован на русском Миландре, и разрабатывался он под него. И работает он только на нём. А мне работодатель сказал, сделай для всего этого добра стенд на буржуйском камне. И вот я стал тут наедаться. Сегодня мало-мальски добился того, что СТМ и миландр стали обмениваться посылками с FE. У миландра нестабильность частоты куда выше, стмке она не нравится, се ля ви...
Неожиданно, с мландром не имел делов, но обычно такие вещи мы лог анализатор, плюс в параллель к уарту , чтобы понять что там происходит. Так отловили много багов с обменом L4 и стареньким контроллером от Infeneon XC167, плясали мы тогда 2 дня,оказалось мы слишком быстрые для него)) просто больше таймаута выставить надо было,и переписали обработчик немного.
В железо писали или с родными драйверами?
На XC167 был ужэ написан драйвер лет так 10 назад, и некому сказать куды копать, исходники были , поменяли только настройки для L4 и обработчик уарта. Вроде все , 1,5 года назад было
А у вас там глубина срабатывания прерывания фифо есть?
Есть на 7/8 но пакет 24 байта нужный, поэтому нужно прерывание по тайм-ауту
Неа нету , у нас и пакеты не такие длинные))
Ну на стм использовать паузу в режиме с дма, в сё было окей
ДМА пока тёмный лес. Но я так понимаю, чтобы из памяти, куда ДМА пишет, инфу считать тоже нужно прерывание?
Естественно, мы запускаем с дма по прерыванию, там ничего архи сложного нет
Обсуждают сегодня