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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Помогите разобраться с CC1101, Не получается установить переменную длину пакета
rx3apf
сообщение Mar 24 2009, 13:56
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Igor_O @ Mar 24 2009, 16:24) *
To rx3apf: Не совсем понял. Задержка после подачи CS (выбор СС) и передачей команды SRX? или что имеется ввиду?

Да. Согласно даташиту, после подачи -CS надо дождаться "0" на SDO. Я этого сделать не мог (требовалась особая экономичность), и попробовал тупой задержкой. И - нарвался...
Go to the top of the page
 
+Quote Post
Igor_O
сообщение Mar 26 2009, 10:04
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 14-11-08
Пользователь №: 41 641



Что не делаю - все равно через несколько часов зависает в опросе GDO0. Все время работы нормальный прием-передача, затем нет ответа GDO0 либо при опросе GDO0 после передачи ответа, либо при опросе GDO0 при ожидании приема данных. На GDO2 при этом продолжается запраграммированная f/128
Привожу протокол обмена:
Прием:
После ожидания импульса с GDO0 (GDO0->1, затем GDO0->0)
1. Чтение кол-ва принятых байт RXBYTES(0х7B) прием 5
2. Чтение 3-х байт данных RXFIFO (0x3F)
3. Чтение LQI (0x73)


Передача:
Перед передачей переход в SIDLE и очистка SFTX. После SFTX пауза 2 мс затем
1. Загрузка 3-х байт в TXFIFO (0x3F)
2. Включение передачи STX (0x35)
Далее по программе ожидание импульса на GDO0 (GDO0->1, затем GDO0->0) окончания передачи


СС1101 менял - толку нет.
Что не так?

Сообщение отредактировал Igor_O - Mar 26 2009, 10:29
Go to the top of the page
 
+Quote Post
Igor_O
сообщение Mar 30 2009, 08:07
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 14-11-08
Пользователь №: 41 641



Пробую читать регистры СС после "отключения" GDO - все ОК. В IOCFG0 0x06. Пробую после зависания переинициализировать СС - все равно продолжает не видеть вх. пачек. Кварц не "гуляет", температура тоже не влияет, т.к. пересбросив питание опять несколько часов все ОК. Замаялся уже - не пойму в чем может быть дело? При этом передатчики, работающие наоборот: каждые 20 сек. передают 3 байта и принимают подтверждение работают постоянно и все ОК.
Go to the top of the page
 
+Quote Post
anaconda
сообщение May 5 2009, 19:47
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-11-07
Пользователь №: 32 418



Доброй ночи! У меня проблема таже. Есть две платы с CC1100, которые обмениваются сообщениями. Алгоритм работы следующий: один трансивер передает пакет(~100байт) раз в 3сек, другой приняв пакет, посылает ответ(~20байт). IOCFG0=0x06, на контроллере(Atmega) прерывание по нарастающему фронту(INT0). Работает неплохо, но переодически(через произвольные промежутки времени), у трансивера ожидающего ответ, прерывание срабатывает(т.е. ловит синхрослово), а в RX FIFO пусто(чтение регистра RXBYTES всегда ноль). Конфигурация трансиверов следующая: MSK, 250kbps, 4байта преамбулы и 4байта синхрослова, PQT=4, переменная длина пакета, CRC включен, адреса выключены, autoflush выключен. Кварц с 6-ю знаками после запятой, разница в частоте несущей ~4KHz. Калибровка после перехода из RX TX в IDLE. Errata читал, косяки трансиверов обходил согласно рекомендациям из них. Расстояние между трансиверами 50см, выходная мощность -10dbm, антенны-куски гибкого провода в четверть длины волны.В чем может быть причина приема синхрослова с достаточно хорошей преамбулой и не приема payload???
Go to the top of the page
 
+Quote Post
IDL
сообщение Nov 23 2016, 06:08
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 10-11-11
Пользователь №: 68 243



Всем доброго времени суток. Я тоже столкнулся с такой же проблемой. СС1101 выставляет на GDO0 высокий уровень во время приема и так и остается в этом положении. Прием может быть стабилен сутки, а может и через 10 мин после подачи питания прекратится. Igor_O или anaconda вы решили как то аналогичную проблему?
Go to the top of the page
 
+Quote Post
IDL
сообщение Nov 25 2016, 06:05
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 10-11-11
Пользователь №: 68 243



Проблема решена. В датахе сказано, что GDO0 устанавливается в 1 при обнаружении слова синхронизации и сбрасывается в 0 после приема требуемого количества байт. Если же в условиях плохого приема СС1101 примет только слово синхронизации и больше ничего, то GDO0 так и останется в 1. Для сброса его в 0 я поступил так: перешел в IDLE , очистил приемный буфер и вернулся в режим RX. Может кому то будет полезна эта информация.
Go to the top of the page
 
+Quote Post

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

 


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


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