|
Помогите разобраться с CC1101, Не получается установить переменную длину пакета |
|
|
|
Feb 25 2009, 11:37
|
Участник

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

|
RF_SETTINGS code rfSettings = { 0x06, // FSCTRL1 Frequency synthesizer control. 0x00, // FSCTRL0 Frequency synthesizer control. 0x10, // FREQ2 Frequency control word, high byte. 0x09, // FREQ1 Frequency control word, middle byte. 0x7B, // FREQ0 Frequency control word, low byte. 0xF5, // MDMCFG4 Modem configuration. 0x75, // MDMCFG3 Modem configuration. 0x13, // MDMCFG2 Modem configuration. 0x22, // MDMCFG1 Modem configuration. 0xE5, // MDMCFG0 Modem configuration. 0x00, // CHANNR Channel number. 0x14, // DEVIATN Modem deviation setting (when FSK modulation is enabled). 0x56, // FREND1 Front end RX configuration. 0x10, // FREND0 Front end TX configuration. 0x18, // MCSM0 Main Radio Control State Machine configuration. 0x16, // FOCCFG Frequency Offset Compensation Configuration. 0x6C, // BSCFG Bit synchronization Configuration. 0x03, // AGCCTRL2 AGC control. 0x40, // AGCCTRL1 AGC control. 0x91, // AGCCTRL0 AGC control. 0xE9, // FSCAL3 Frequency synthesizer calibration. 0x2A, // FSCAL2 Frequency synthesizer calibration. 0x00, // FSCAL1 Frequency synthesizer calibration. 0x1F, // FSCAL0 Frequency synthesizer calibration. 0x59, // FSTEST Frequency synthesizer calibration. 0x81, // TEST2 Various test settings. 0x35, // TEST1 Various test settings. 0x09, // TEST0 Various test settings. 0x07, // FIFOTHR RXFIFO and TXFIFO thresholds. 0x3F, // IOCFG2 GDO2 output pin configuration. 0x06, // IOCFG0D GDO0 output pin configuration. Refer to SmartRFR Studio User Manual for detailed pseudo register explanation. 0x0C, // PKTCTRL1 Packet automation control. 0x05, // PKTCTRL0 Packet automation control. 0x00, // ADDR Device address. 0xFF // PKTLEN Packet length.
Передаю 3 байта. Если ставлю PKTLEN 0х03 и PKTCTRL0 0х04 пакеты приходят .
В приемнике: 0. Инициализация и установка мощности 1. SFRX 2. Пауза 1 мс 3. Вкл. SRX 4. Читаю GDO0 пока не 1 5. Читаю GDO0 пока не 0 6. Проверяю, что RXBYTES не равен 0 7. 3 раза читаю RXFIFO 8. Вывод результата на RS232 9. SIDLE переход на п.1
В передатчике: 0. Инициализация и установка мощности 1. SFTX 2. 3 раза данные в TXFIFO 3. STX 4. Читаю GDO0 пока не 1 5. Читаю GDO0 пока не 0 - Окончание передачи 6. Пауза 1 сек (для вывода в приемнике данных на RS232 ) переход на п.1
Если ставлю в настройках PKTLEN 0хFF и PKTCTRL0 0х05 пакеты не приходят. В чем может быть проблема?
|
|
|
|
|
 |
Ответов
|
Mar 24 2009, 12:40
|
Участник

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

|
Разобрался с длиной пакета. Как оказалось все просто: - запрос RXBYTES делал не как для статус регистра (6 бит не был =1), отсюда и получал данные с другого регистра с тем же адресом до 6 бита.
Теперь все работает, принимает, передает подтверждение. Четко вижу уровень сигнала по RSSI (70 dB от одного передатчика и 80 dB от другого). Уровень стабилен. Максимально прыгает на 1-3 dB. Обмен идет каждые 20 сек. Информация от каждого передатчика независимая, т.е. возможно наложение пакетов. В защиту от этого при ошибке CRC ошибка подтверждения и, как следствие повтор передачи. При повторе по временной разбежке сдваивание повторного пакета уже не возможно. Все работает, но через некоторое время (1 - 2 часа) с GDO0 перестает поступать импульс принятого пакета. До зависания мощность принятых пакетов нормальная. На GDO1 генерация f/128 есть. Мерял частоту кварцев - отличаются на 20-100 Гц. Прием прекращается одновременно от обоих передатчиков. Алгоритм работы см. выше. В чем может быть проблема?
|
|
|
|
|
Mar 24 2009, 13:04
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Igor_O @ Mar 24 2009, 15:40)  Прием прекращается одновременно от обоих передатчиков. Алгоритм работы см. выше. В чем может быть проблема? Я как-то получил нечто похожее - из-за невозможности непосредственного контроля готовности после подачи выборки на трансивер, сделал просто задержку от выборки до подачи команды. Задержка оказалась слишком малой, на грани. И вот если реально готовности не поступило, то прием не работал (хотя вроде бы в статусе был код состояния приема, не помню теперь уже). И вроде бы все регистры посмотрел - все как надо, а прием - не работал. Пока с готовностью не разобрался, так и выползало, раз в час...
|
|
|
|
Сообщений в этой теме
Igor_O Помогите разобраться с CC1101 Feb 25 2009, 11:37 rx3apf Цитата(Igor_O @ Feb 25 2009, 14:37) Если ... Feb 25 2009, 12:11 Igor_O Получилось! По даташиту думалось, что длину па... Feb 25 2009, 13:48  rx3apf Цитата(Igor_O @ Feb 25 2009, 16:48) Получ... Feb 25 2009, 14:44 Igor_O Никак не получается запустить устойчивый прием/пер... Mar 7 2009, 11:56 Dog Pawlowa Цитата(Igor_O @ Mar 7 2009, 15:56) Никак ... Mar 7 2009, 17:33 bloodden Код//38.4kbps nastroyki dlya 26.000
halSpiWriteR... Mar 7 2009, 22:25 Igor_O У Вас в коде кол-во принятых байт не анализируется... Mar 8 2009, 14:33 rx3apf Я бы предложил для начала поиграться с фиксированн... Mar 8 2009, 16:07 _3m Цитата(Igor_O @ Mar 24 2009, 15:40) ...че... Mar 24 2009, 13:06 Igor_O To rx3apf: Не совсем понял. Задержка после подачи ... Mar 24 2009, 13:24 rx3apf Цитата(Igor_O @ Mar 24 2009, 16:24) To rx... Mar 24 2009, 13:37 rx3apf Цитата(Igor_O @ Mar 24 2009, 16:24) To rx... Mar 24 2009, 13:56  Igor_O Что не делаю - все равно через несколько часов зав... Mar 26 2009, 10:04 Igor_O У меня есть ожидание 0 на SDO. Но поставил несколь... Mar 24 2009, 13:47 Igor_O Пробую читать регистры СС после "отключения... Mar 30 2009, 08:07 anaconda Доброй ночи! У меня проблема таже. Есть две пл... May 5 2009, 19:47 IDL Всем доброго времени суток. Я тоже столкнулся с та... Nov 23 2016, 06:08 IDL Проблема решена. В датахе сказано, что GDO0 устана... Nov 25 2016, 06:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|