Всем доброго дня!
Проблема такая: есть 8 байт, которые надо отправить по UART2. Использую DMA1 канал 7. Так вот, когда возникает прерывание DMA о полной передаче пакета то реально осциллом вижу что в этот момент передатчик UART2 выплюнул реально не 8 байт а 6. А 2 оставшихся потом досылаются. Т.е, допустим, у меня RS-485 с микрухой, где пеерключение приемника и передатчика заведено на один пин, и если управлять этим пином по запуску ДМА и вышеуказанному прерыванию то приемная сторона в моем случае недосчитается 2-х последних байт. Что, собственно, в железе и происходит. Еррату читал, ничего похожего не нашел.
Кто нибудь с таким явлением сталкивался?
Пока вставил костыль - после прерывания ДМА вставил задержку на 3мс на отключение передатчика и включения приемника. Работает. Но на душе не спокойно.
Сообщение отредактировал Halfback - Jun 30 2014, 06:08
|