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

 
 
_3m
сообщение Mar 1 2010, 09:38
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Столкнулся с подвисанием приема у CC2500.

GDO0 в режиме 0x06.
Фиксированная длина пакета, используются FEC, data whitening и CRC. Адрес не используется. Синхрослово 30/32 бита, преамбула 8 байт. RX FIFO Autoflush=ON.
Модуляция GFSK скорость 100кбит. RXOFF Mode=IDLE.

Сигнал от GDO0 заведен на вход INT0 атмеги, прерывания настроены по спаду, что дает прерывание по приходу валидного пакета. После обработки полученного пакета программа сбрасывает фифо и запускает прием заново.
Трансивер работает в режиме приема.
Пакеты поступают каждые 64мс, через несколько десятков минут прием зависает.
Если пакеты не поступают то не виснет (или еще не обнаружил).
Исследования показали что зависание происходит из-за того что при приеме пакета не формируется сигнал GDO0 (во всяком случае не возникает прерывание). Состояние зависшего трансивера - IDLE, в RX FIFO правильный принятый пакет. Перезапуск приема возобновляет работу.
Если рассуждать логически то прерывание по GDO0 может не формироваться только если GDO0 не устанавливается по приему синхрослова. Тем не менее последний пакет на котором связь виснет принимается, причем без ошибок.

Пока сделал периодическую проверку состояния CC2500 и если она перешла в IDLE в момент когда должна быть в RX перезапускаю прием. Но это как-то некрасиво. Хорошо бы разобраться в причине эффекта.

Изучение даташита и эрраты ни на какие мысли пока не натолкнуло.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Budek
сообщение May 30 2010, 07:03
Сообщение #2


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

Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116



Здравствуйте все. Хотя судя по количеству "откликнувшихся", наверное, в первую очередь мое приветствие обращено автору.
Столкнулся с той же проблемой... Причем зависание приемника происходит через произвольное время (шлю на него пока 4 байта каждые 2 секунды). Но минут за 20 обязательно зависает (может и после второго пакета уже). Помогает только очистка фифо и включение приема. Видимо, раз до этого никто не отозвался, вопрос к автору темы: победили? Поделитесь, как?
Спасибо.
Go to the top of the page
 
+Quote Post
_3m
сообщение May 30 2010, 09:29
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Нет, не победил. Устройство работает только потому что процессор мониторит состояние трансивера и при необходимости перезапускает прием.
Выявить причину тяжело так как виснет редко и нерегулярно.
Go to the top of the page
 
+Quote Post
Budek
сообщение May 30 2010, 10:24
Сообщение #4


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

Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116



Цитата(_3m @ May 30 2010, 15:29) *
Нет, не победил. Устройство работает только потому что процессор мониторит состояние трансивера и при необходимости перезапускает прием.
Выявить причину тяжело так как виснет редко и нерегулярно.

Да уж, это конечно не есть хорошо. Но в любом случае, спасибо. Будем надеяться, может кто еще вдруг откликнется...
Go to the top of the page
 
+Quote Post

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

 


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


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