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

 
 
> LPC2129 UART и Rx FIFO
Andy Mozzhevilov
сообщение May 14 2005, 11:19
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Пытаюсь включить RxFifo и настроить порог по которому будет генерится прерывания приемника. Регистр FCR сначала, как и положено
устанавливается в 1, а потом уже пишутся остальные биты:

U0FCR = 0x01; // enable fifo
U0FCR = 0x81; // trigger level 2 = 8 chars

Тем не менее, в прерывание приема попадаю каждый раз при приеме очередного символа. Символы передаю специально 1 раз в секунду,
по скопу вижу, что в прерывание падаю примерно в конце каждого стоп-бита. Пробовал любые другие настройки U0FCR, фигня та же.
Что я не так делаю?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ElectronicsLT
сообщение May 18 2005, 05:42
Сообщение #2





Группа: Новичок
Сообщений: 1
Регистрация: 18-05-05
Пользователь №: 5 136



Ты палучаеш по таимауту. Посмотри U0IIR 1:3 bit , и будет ясно.
Ты должен слать симвалы с промежутком между ними не менше 3.5
character times , тогда преривание получеш после 8 символоф.

ЭТО ИЗ pdf :

Minimum of one character in the Rx FIFO and no character
input or removed during a time period depending on how many
characters are in FIFO and what the trigger level is set at (3.5
to 4.5 character times).
The exact time will be:
[(word length) X 7 - 2] X 8 + {(trigger level - number of
characters) X 8 + 1] RCLKs
Go to the top of the page
 
+Quote Post
diwil
сообщение Sep 20 2006, 11:41
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107



Были те же грабли - при приеме надо вытаскивать все символы из очереди, пока она не будет пуста.
Go to the top of the page
 
+Quote Post
LeshaL
сообщение Sep 20 2006, 11:59
Сообщение #4


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

Группа: Свой
Сообщений: 166
Регистрация: 14-01-06
Пользователь №: 13 160



Цитата(diwil @ Sep 20 2006, 17:41) *
Были те же грабли - при приеме надо вытаскивать все символы из очереди, пока она не будет пуста.


Я так и делаю. Считываю весь FIFO буфер. Поэтому и возник вопрос.
Есть ли все таки техническая возможность узнать сколько принятых символов находится в ФИФО при возникновении прерывания по таймауту приема?

Цитата(Alexey Bishletov @ Sep 20 2006, 17:25) *
Цитата(LeshaL @ Sep 20 2006, 15:12) *

А вот как узнать сколько было принято символов в RX FIFO, после чего произошло прерывание таймаута?


IMHO, только вынув их всех из FIFO.


Дак в этом и вопрос smile.gif
Размер ФИФО - 16 символов.
Допустим, пришло 3 символа.
Возникло прерывание по таймауту приемника.
Как мне считать только эти 3 символа, а не считывать все 16? По какому признаку? Если таковой есть.
Go to the top of the page
 
+Quote Post



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

 


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


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