|
Прерывания от CC1100 |
|
|
|
Dec 30 2010, 06:36
|
Группа: Участник
Сообщений: 12
Регистрация: 21-03-05
Пользователь №: 3 556

|
Коллеги! Использовал ли кто-нибудь прерывания от СС1100 - СС2500 ? Проблема следующая: GDO2 используется в режиме 7 (прерывание при приеме пакета с правильной CRC). Раз в 2 сек. должен приходить пакет и вызывать прерывание контроллера от GDO2. Все хорошо. Пакет приходит, прерывание происходит.... но не всегда. Иногда его просто нет. При этом состояние машины (MARCSTATE) == 0x11 (переполнение приемного буфера). В фоновом цикле проверяю состояние микросхемы, очищаю буфер при переполнении и контролирую режим. (RX, TX или IDLE). Но прерывания все равно пропадают. Параллельно работают на приеме 2 девайса. И работают по-разному. Кто-нибудь сталкивался с проблемой пропадающих прерываний?
|
|
|
|
|
 |
Ответов
(1 - 6)
|
Dec 30 2010, 07:14
|
Группа: Участник
Сообщений: 12
Регистрация: 21-03-05
Пользователь №: 3 556

|
Цитата(rx3apf @ Dec 30 2010, 12:50)  Autoflush включен ? А то, может быть, приходят битые пакеты и забивают буфер... Если короткая синхропреамбула и слишком мягкие критерии синхронизации, то и без передатчика такое будет происходить. Включен. Более того, стоит CRC_OK
|
|
|
|
|
Dec 30 2010, 08:38
|
Группа: Участник
Сообщений: 12
Регистрация: 21-03-05
Пользователь №: 3 556

|
Цитата(rx3apf @ Dec 30 2010, 13:50)  Если картина достаточно хорошо воспроизводимая, то можно поэкспериментировать - для начала попробовать режим 1 вместо 7 (установив порог FIFO с запасом), потом попробовать посмотреть в режиме 6 (переключаясь затем в 7) - т.е. бывает ли ситуация, когда есть сигнал от детектирования синхропосылки, но нет по окончанию пакета. Сколько я с ними (1100) вожусь - такого не встречал (но у меня пакеты длинные, поэтому приходится работать по контролю FIFO). Спасибо, попробую. А ситуация маловоспроизводимая - мажет час работать без пропусков, а потом сбойнуть, а может и через 10 сек.. Я грешу на монтаж - все собрано на макетке и достаточно длинными проводами. Одним словом, на соплях. По хорошему, надо развести, изготовить, а потом уже ловить глюки. Но это время
|
|
|
|
|
Dec 30 2010, 09:47
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(AVN @ Dec 30 2010, 12:36)  ... Кто-нибудь сталкивался с проблемой пропадающих прерываний? У меня наблюдается подобный эффект на cc2500. Плата заводская, 4-х слойка Я создавал тему, поищите в архиве. Побороть и определить причину не мне удалось. Борюсь программно -периодическим опросом и очисткой буфера.
|
|
|
|
|
Dec 30 2010, 13:33
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(_3m @ Dec 30 2010, 15:47)  У меня наблюдается подобный эффект на cc2500. Плата заводская, 4-х слойка Я создавал тему, поищите в архиве. Побороть и определить причину не мне удалось. Да, что-то такое припоминаю. И что, тоже прерывание по окончанию приема пакета (режим "7" ) ? Потому как по синхре я такого не видел, по порогу FIFO тоже. Ковырять, отсекать лишнее. Плохо, когда паршивая воспроизводимость - уж как я искал причину, почему у меня загаживались регистры при переходе с 1100 на 1101 ! Часа три сидел у холодильника, периодически замораживая и размораживая устройство... Камешки довольно сложные, плюхи есть, может, и еще что-то притаилось...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|