Доброе время суток, уважаемые господа.
У меня есть вопрос, на который не могу найти ответ. Очень надеюсь на ваш опыт.
Дело в том, что в одном из аппаратных решений у нас используется MB90F594A в паре с цифровым сигнальным процессором. Между собой они соединены через UART с одной стороны и многоканальный серийный порт - с другой. Есть два момента, который никак не поддаются объяснению. Во-первых, довольно-таки часто на Fujitsu генерируется прерывание без видимых на то причин. В самом прерывании, так на всякий случай, я поставил проверку на состояние RDRF флага. Как следует из документации, делать это не обязательно, но всё же. Кроме всего прочего, там же есть и проверки на ошибки переполнения и ошибки фрейма (хотя таковых наблюдать не приходится). Та вот, довольно-таки часто прерывание всё-таки срабатывает, когда значение RDRF флага 0 и ORFR также 0. Коммуникация синхронная, тактируется со стороны Fujitsu частотой в 400 kHz. Это ещё не самое страшное, так как, используя RDRF флаг, «лишние» прерывания можно «отфильтровать». Другой момент, который случается на много реже – это срабатывание двух прерываний на одном входящем байте. Осциллограмма так и показывает. Пришёл стоп-бит – сработало прерывание, следующий – ещё одно, но время от времени на одном байте срабатывает 2 прерывания с периодом в 1 мс. Второе прерывание проходит условие проверки RDRF и при вычитывании из регистра данных даёт тоже значение, что и «правильное» прерывания. Дважды вычитанный байт никак не добавляет надёжности такой коммуникации. Нет ли у вас идей, как можно было бы это всё объяснить и побороть?
Заранее большое спасибо!
С уважением Александр.