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

 
 
> 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
Ответов (1 - 8)
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
LeshaL
сообщение Sep 20 2006, 11:12
Сообщение #3


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

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



А вот как узнать сколько было принято символов в RX FIFO, после чего произошло прерывание таймаута?
Go to the top of the page
 
+Quote Post
Alexey Bishletov
сообщение Sep 20 2006, 11:25
Сообщение #4


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

Группа: Новичок
Сообщений: 121
Регистрация: 15-08-06
Пользователь №: 19 557



Цитата(LeshaL @ Sep 20 2006, 15:12) *
А вот как узнать сколько было принято символов в RX FIFO, после чего произошло прерывание таймаута?


IMHO, только вынув их всех из FIFO.
Go to the top of the page
 
+Quote Post
diwil
сообщение Sep 20 2006, 11:41
Сообщение #5


Местный
***

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



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


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

Группа: Свой
Сообщений: 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
aaarrr
сообщение Sep 20 2006, 12:06
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(LeshaL @ Sep 20 2006, 15:59) *
Как мне считать только эти 3 символа, а не считывать все 16? По какому признаку? Если таковой есть.

При чтении смотрите бит RDR в регистре LSR.
Go to the top of the page
 
+Quote Post
LeshaL
сообщение Sep 20 2006, 12:12
Сообщение #8


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

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



Цитата(aaarrr @ Sep 20 2006, 18:06) *
Цитата(LeshaL @ Sep 20 2006, 15:59) *

Как мне считать только эти 3 символа, а не считывать все 16? По какому признаку? Если таковой есть.

При чтении смотрите бит RDR в регистре LSR.


Вот спасибо. И правда, все описано в мануале.
Go to the top of the page
 
+Quote Post
abcdefg
сообщение May 30 2007, 14:45
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 23-01-06
Из: Msk
Пользователь №: 13 490



Цитата(ElectronicsLT @ May 18 2005, 09:42) *
The exact time will be:
[(word length) X 7 - 2] X 8 + {(trigger level - number of
characters) X 8 + 1] RCLKs



Кстати, что такое RCLK? Из диаграммы в мануале (213x) сигнал приходит извне smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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