реклама на сайте
подробности

 
 
> Помогите пожалуйста разобраться с TL16C550..., Help...
ASergej_R19
сообщение Feb 14 2008, 08:18
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 5-02-07
Из: Москва
Пользователь №: 25 060



Никак не могу наладить прием. Имеется проц с TL16C550 - подключен стандартно (разве что ADS соединен с CS).

Выставил trigger level для FIFO = 4 байта. При приеме этих 4 байт вызывается прерывание, там мы смотрим, что вызвало прерывание - если прием данных (или таймаут) - то читаем LSR (смотрим есть ли хоть один байт в FIFO), и потом читаем RBR и так до тех пор, пока LSR не покажет, что больше байт в FIFO нет (бит 0 не сбросится). Выходим из прерывания. И так далее...

Все хорошо, но такой глюк - если хотим принять больше 17 байт, то принимаем эти 17 байт, после чего прием обрывается, и прерывание не сбрасывается в районе 8 мс (скорость обмена = 115200). После этого все восстанавливается и мы опять можем принять эти 17 байт. Ошибок LSR, вроде никаких не показывает...

Такое ощущение, что заполняется полностью FIFO и что-то происходит непонятное. Но я же регулярно читаю RBR - как такое может быть? Ничего не понимаю... :-( Может кто чего подскажет?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
KRS
сообщение Feb 14 2008, 08:49
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



А как у вас тайминги шины настроены?
У тексаса шина этих уартов довольно тормознутая. ( Мы перешли на аналогичные филипсы у них этой проблемы нет а совместимы они даже по ногам). Правда используем 16C75x серию с 64 байтным фифо.
И еще есть в даашите такой
NOTE 8:In the FIFO mode, the read cycle (RC) = 425 ns (min) between reads of the receive FIFO and the status registers (interrupt identification
register or line status register).

Для вашего случая тоже есть у филипса SC16C550b один в один с тексасовским, только к атмелу можно без wait state подключать и не думать где NOP вставлять.
Go to the top of the page
 
+Quote Post
ASergej_R19
сообщение Feb 14 2008, 10:10
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 5-02-07
Из: Москва
Пользователь №: 25 060



Цитата(KRS @ Feb 14 2008, 11:49) *
А как у вас тайминги шины настроены?
У тексаса шина этих уартов довольно тормознутая. ( Мы перешли на аналогичные филипсы у них этой проблемы нет а совместимы они даже по ногам). Правда используем 16C75x серию с 64 байтным фифо.
И еще есть в даашите такой
NOTE 8:In the FIFO mode, the read cycle (RC) = 425 ns (min) between reads of the receive FIFO and the status registers (interrupt identification
register or line status register).

Для вашего случая тоже есть у филипса SC16C550b один в один с тексасовским, только к атмелу можно без wait state подключать и не думать где NOP вставлять.


Тайминги - собственно циклы чтения/записи ~100 ns, между циклами такие же простои. Про филипсы - эх, знал бы раньше... А сейчас уже с этих TL не слезешь... :-(

Действительно, эту NOTE 8, я пропустил - напихал сейчас везде NOP'ов перед каждым обращением к TL - ноль эмоций. Характер глюка не поменялся... Разве что могу еще добавить, что когда принимаются эти 17 байт и "залипает" прерывание, то после этого (когда прерывание сбрасывается), через некоторое время один раз вызывается прерывание, что типа регистр передачи - пуст, хотя никакой передачи не было...
Может еще какие-нибудь идеи есть? Попробую пока поиграться с таймингами...
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 14 2008, 10:29
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Еще можно побробовать настроить прерывание не по уровню, а по фронту. (в атмеле)
Go to the top of the page
 
+Quote Post
ASergej_R19
сообщение Feb 17 2008, 14:02
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 5-02-07
Из: Москва
Пользователь №: 25 060



Цитата(KRS @ Feb 14 2008, 13:29) *
Еще можно побробовать настроить прерывание не по уровню, а по фронту. (в атмеле)


Спасибо - нет дело оказалось не в этом...
Я нашел ошибку в коде - я просто клинический идиот.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Feb 17 2008, 16:34
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Ну не огорчайтесь так.ИМХО в ситуации,сходной с вашей,были многие их форумчан smile.gif


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th July 2025 - 23:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016