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

 
 
> Как правильно забивать FIFO UART, например в LPC213x
GetSmart
сообщение Nov 20 2010, 10:39
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



В приёмнике уарта при включенном фифо есть уровень срабатывания. А в передатчике аналогичного уровня нет (?). Поэтому когда возникает прерывание от уарта с кодом 0xC2 сколько нужно пихать байт в THR ? Когда я контролирую бит 0x20 внутри LSR то только один байт запихивается и сразу он обнуляется. Хотя на передачу фифо тоже 16 символьное. Если прерывание возникает только когда передаётся последний байт (когда фифо опустело), то при мегабоде скорости и длительных прерываниях от других источников (до 5 символов уарта) могут происходить нежелательные паузы в передаче. Неужели нет аппаратного "прямого" способа вызывать прерывание пораньше?

Есть конечно кривоватый другой способ забивания данных в уарт - по таймеру. Но в нём непонятно сколько данных забивать, т.к. я не вижу флага заполненности фифо. Может кто-нить его видет? Или есть идеи по выходу из моего тупика?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Nov 20 2010, 11:28
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



half-duplex, RS-485.

Цитата(kovigor @ Nov 20 2010, 16:15) *

Код
if (U1LCR && 0x20)        // transmit FIFO empty ?

Отменный код smile.gif Хорошо, что не читал.

Но текстом там указано, что никак не узнать когда буфер полный. В то же время если THR пуст, то фифо тоже полностью пусто. Для меня это очень плохо! А всего-то надо было ввести битик полного фифо.

Сообщение отредактировал GetSmart - Nov 21 2010, 01:20


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
swisst
сообщение Nov 20 2010, 12:04
Сообщение #3


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

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



Цитата(GetSmart @ Nov 20 2010, 13:28) *
В то же время если THRE пуст, то фифо тоже полностью пуст.


а так ли это ?
Цитата
The U0THR is the top byte of the UART0 TX FIFO.

Цитата
Writing to the UART0 Transmit Holding Register causes the data
to be stored in the UART0 transmit FIFO. The byte will be sent
when it reaches the bottom of the FIFO
and the transmitter is
available.


стр 95 мануала

Цитата
TEMT is set when both U0THR and U0TSR are empty; TEMT is cleared when
either the U0TSR or the U0THR contain valid data.


вот по этому прерыванию у Вас таки все плохо...

сейчас работаю c LPC1114 - там тоже уарт копаю... так в кейле в файле описания регистров УАРТа в конце есть регистр типа FIFOLVL - в мануале про него ничего...может и тут что есть...

ЗЫ все предполагаю проверить не на чем...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GetSmart   Как правильно забивать FIFO UART   Nov 20 2010, 10:39
- - kovigor   Цитата(GetSmart @ Nov 20 2010, 14:39) Или...   Nov 20 2010, 11:15
- - singlskv   Передача full-duplex или half-duplex ? чисто UART ...   Nov 20 2010, 11:16
|- - singlskv   Цитата(GetSmart @ Nov 20 2010, 14:28) hal...   Nov 20 2010, 11:36
||- - GetSmart   Цитата(singlskv @ Nov 20 2010, 16:36) Тол...   Nov 20 2010, 11:45
||- - singlskv   Цитата(GetSmart @ Nov 20 2010, 14:45) Но ...   Nov 20 2010, 11:58
||- - GetSmart   Цитата(singlskv @ Nov 20 2010, 16:58) З.Ы...   Nov 20 2010, 12:15
||- - singlskv   Цитата(GetSmart @ Nov 20 2010, 15:15) А в...   Nov 20 2010, 12:25
||- - swisst   Цитата(GetSmart @ Nov 20 2010, 14:15) Я о...   Nov 20 2010, 12:34
||- - GetSmart   Цитата(swisst @ Nov 20 2010, 17:34) в код...   Nov 20 2010, 12:40
||- - swisst   Цитата(GetSmart @ Nov 20 2010, 14:40) В о...   Nov 20 2010, 12:52
||- - singlskv   Цитата(GetSmart @ Nov 20 2010, 15:40) В о...   Nov 20 2010, 12:55
||- - GetSmart   Цитата(singlskv @ Nov 20 2010, 17:55) Нет...   Nov 20 2010, 13:10
||- - singlskv   Цитата(GetSmart @ Nov 20 2010, 16:10) Не ...   Nov 20 2010, 13:19
- - prm   Похожая тема http://electronix.ru/forum/lofiversio...   Nov 20 2010, 18:48
|- - singlskv   Цитата(prm @ Nov 20 2010, 21:48) Похожая ...   Nov 20 2010, 20:25
|- - zltigo   QUOTE (singlskv @ Nov 20 2010, 23:25) Сме...   Nov 21 2010, 08:23
|- - singlskv   Цитата(zltigo @ Nov 21 2010, 11:23) Не на...   Nov 21 2010, 10:30
|- - GetSmart   Цитата(singlskv @ Nov 21 2010, 15:30) ......   Nov 21 2010, 10:34
|- - singlskv   Цитата(GetSmart @ Nov 21 2010, 13:34) Поч...   Nov 21 2010, 10:47
- - GetSmart   В той теме я ничего интересного не вижу. Есть толь...   Nov 21 2010, 09:46
- - Perepic   Цитата(GetSmart @ Nov 21 2010, 12:46) Ест...   Dec 8 2010, 14:34
- - GetSmart   Цитата(Perepic @ Dec 8 2010, 19:34) Мой с...   Dec 8 2010, 14:45


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:11
Рейтинг@Mail.ru


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