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

 
 
> Вопрос по содержимому регистра RXBYTES для CC1100
Alechin
сообщение May 30 2007, 12:08
Сообщение #1


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

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



Вопрос в следующем - попытался определять число принятых байтов по значению в RXBYTES и натолкнулся на следующее - максимально возможное значение 0x0f, при том что в буфере лежит гораздо больше.
Т.е. при реальной длине пакета до 15 байтов - все нормально: значение в RXBYTES равно длине пакета плюс 2 (статус добавляется), а если длина принятого пакета больше 15 - значение в регистре все-равно 0x0f, хотя весь пакет успешно принят и находится в буфере, статус в конец пакета добавлен.
Сейчас выкрутился через чтение числа байтов, которое лежим вверху FIFO, но грызут сомнения, вдруг я все-таки что-то не так делаю? Хотя в TI-шном примере они то-же его (RXBYTES) не используют при чтении пакета из буфера (только проверяют, что он не равен нулю).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ksv198
сообщение May 31 2007, 06:46
Сообщение #2


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

Группа: Участник
Сообщений: 177
Регистрация: 25-08-05
Из: Ставрополь
Пользователь №: 7 964



Цитата(Alechin @ May 30 2007, 16:08) *
Вопрос в следующем - попытался определять число принятых байтов по значению в RXBYTES и натолкнулся на следующее - максимально возможное значение 0x0f, при том что в буфере лежит гораздо больше.

Наверное Вы имели ввиду FIFO_BYTES_AVAILABLE в статусном байте. Там реально 4 бита и если пакет больше, то все равно 15 smile.gif

Пакет нулевой длины может "получиться" если не совпала контрольная сумма, а чип сконфигурен на очистку в этом случае. Тогда если в IOCFGх 0х06 то нога дернется, показывая что пакет принят, а в RXBYTES будет ноль.
Go to the top of the page
 
+Quote Post
Alechin
сообщение May 31 2007, 07:34
Сообщение #3


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

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



Цитата(ksv198 @ May 31 2007, 10:46) *
Наверное Вы имели ввиду FIFO_BYTES_AVAILABLE в статусном байте. Там реально 4 бита и если пакет больше, то все равно 15 smile.gif

Нет, именно RXBYTES (с адресом 0x3b + 0x80). А почему тогда в TI-шных примерах они его тоже не используют для определения числа байт в FIFO? Меня это смущает. Ведь не логично ориентироваться на длину пакета из самого пакета, а не на реальное число байтов в FIFO (вдруг их меньше).
Go to the top of the page
 
+Quote Post
ksv198
сообщение Jun 1 2007, 07:01
Сообщение #4


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

Группа: Участник
Сообщений: 177
Регистрация: 25-08-05
Из: Ставрополь
Пользователь №: 7 964



Цитата(Alechin @ May 31 2007, 11:34) *
...А почему тогда в TI-шных примерах они его тоже не используют для определения числа байт в FIFO?

Потому что пакет может быть длинее чем размер RXFIFO
Цитата
Вообще-то +0xC0...

Кстати, да. Может в этом и проблема?
Go to the top of the page
 
+Quote Post



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

 


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


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