Связка T89C51CC01 + 2 штуки TL16C550
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено mokromax 08 декабря 2004 г. 18:23

Есть проблема, от которой я начинаю терять веру в законы :-\
Итак. К 51-ому контроллеру подцеплены 2 UART'а. Схематично опишу как: на порту 0 контроллера ессно сидит шина данных, на порту P2 контроллера всякие сигналы A0-A2, CS, WR и RD. Ессно все в параллель, кроме CS - у одного UARTа он прамой, у другого инверсный. Короче все прощу некуда.
Далее:
1. Есть макет собраный проводным монтажом. Безоговорочно все работает.
2. Есть печатные платы (4 штуки) имеющие идентичный глюк (софт тот же на всех 5ти платах включая макет)
Глюк такой. ОДИН из 2ух UARTов (причем щас в софте UART программирован на loopback) после посылки хотя бы одног байта (а вообще то шлю например десяток), при приеме считывает только 1ый байт, а далее статусными регистрами показывает, что есть ошибка FIFO, но какая не говорит, более того почему то вываливается из режима FIFO enabled. Проще говоря:
после посылки байта: IIR = CC, LSR = 61
после приема байта: IIR = 1, LSR = E0
А всю голову сломал уже (( При этом всем со вторым UARTом проблем нет (повторяю они - в параллели !)

После вставания в такое ракообразное положение UART доступен на запись чтения, но на внешние раздражители со стороны RS-232 не реагирует.
Есть у кого какие мысли ?

ЗЫ: В доке такое состояние LSR = E0 вообще не описано, написано, что как минимум еще один бит должен стоять, показывающий конкретую ошибку.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru