На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 48,
участников - 3 [ fantom1938, Slavik, qwert0173]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Разработка, ремонт, схемы, модификации —› Вопросы по СС1120 
Автор Сообщение
n0n_st0p
Участник
Offline1.0
с фев 2010
Владимир
Сообщений: 5

Дата: 17 Янв 2012 14:39:19 · Поправил: n0n_st0p (17 Янв 2012 14:42:41) #  

При работе с СС1120 столкнулся с проблемой. Надеюсь тут кто-нибудь знаком с 1120.

My settings:
////////////////////////////////////////////////////////////////////////////////////////////////////////
halRfWriteReg(CC1120_SYNC2,0xBE);
halRfWriteReg(CC1120_SYNC1,0x9D);
halRfWriteReg(CC1120_SYNC0,0x31);

//halRfWriteReg(CC1120_MODCFG_DEV_E,0x02); // Fdiv = 4 kHz (default)
halRfWriteReg(CC1120_DCFILT_CFG,0x1C);

halRfWriteReg(CC1120_PREAMBLE_CFG1,0x28); // 8 bytes (0xAA)
halRfWriteReg(CC1120_PREAMBLE_CFG0,0x22); // Preamble detection enabled PQT // Start-up Timer=16 symbols // PQT = 2

halRfWriteReg(CC1120_SYNC_CFG1,0x24); // PQT Enable; (max 2 bit error???)
halRfWriteReg(CC1120_SYNC_CFG0,0x11); // 24 bits; < 2 bit error in last received sync byte

halRfWriteReg(CC1120_IQIC,0xC6);
halRfWriteReg(CC1120_CHAN_BW,0x14); // CH filter = 10 eAo
halRfWriteReg(CC1120_MDMCFG0,0x01); // Viterbi detection disabled

halRfWriteReg(CC1120_AGC_REF,0x20);
halRfWriteReg(CC1120_AGC_CS_THR,0x19);
halRfWriteReg(CC1120_AGC_CFG1,0xA9);
halRfWriteReg(CC1120_AGC_CFG0,0xCF);
halRfWriteReg(CC1120_FIFO_CFG,0x00);
halRfWriteReg(CC1120_SETTLING_CFG,0x0E);

halRfWriteReg(CC1120_FS_CFG,0x14); // 410.0 - 480.0 MHz band
halRfWriteReg(CC1120_PKT_CFG1,0x00); // CRC off + disable append mode
halRfWriteReg(CC1120_PKT_CFG0,0x00); // length = CC1120_PKT_LEN

halRfWriteReg(CC1120_PA_CFG2,0x69); // TX power 5 dB
halRfWriteReg(CC1120_PA_CFG0,0x56);
halRfWriteReg(CC1120_IF_MIX_CFG,0x00);

halRfWriteExtReg(CC1120_FREQOFF_CFG,0x22);
halRfWriteExtReg(CC1120_FREQ2,0x6C); // 434 MHz
halRfWriteExtReg(CC1120_FREQ1,0x80);

halRfWriteExtReg(CC1120_FS_DIG1,0x00);
halRfWriteExtReg(CC1120_FS_DIG0,0x5F);
halRfWriteExtReg(CC1120_FS_CAL1,0x40);
halRfWriteExtReg(CC1120_FS_CAL0,0x0E);
halRfWriteExtReg(CC1120_FS_DIVTWO,0x03);
halRfWriteExtReg(CC1120_FS_DSM0,0x33);
halRfWriteExtReg(CC1120_FS_DVC0,0x17);
halRfWriteExtReg(CC1120_FS_PFD,0x50);
halRfWriteExtReg(CC1120_FS_PRE,0x6E);
halRfWriteExtReg(CC1120_FS_REG_DIV_CML,0x14);
halRfWriteExtReg(CC1120_FS_SPARE,0xAC);
halRfWriteExtReg(CC1120_FS_VCO0,0xB4);
halRfWriteExtReg(CC1120_XOSC5,0x0E);
halRfWriteExtReg(CC1120_XOSC1,0x03);

halRfWriteReg(CC1120_PKT_LEN, 12); // Max payload data length
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

С генератора я посылаю пакет (25 dyte) :
0xAAAAAAAAAAAAAAAA - preamble (8 byte)
0xBE9D31 - своя sync (3 byte)
0x1F5FD43EABE5C35FD43D41EA - закодированные данные (12 byte)
0x0000 - 2 byte нулевые биты, для теста
CRC disabled - считаем сами (программная обработка)

на приеме СС1120 в режме RX: принятые данные (12 byte) - правильные (0x1F5FD43EABE5C35FD43D41EA)
Но при подаче заведомо ложной преамбулы : 0x8B8B8B8B8B8B8B8B, или даже пакет: BE9D31 1F5FD43EABE5C35FD43D41EA 0000000000000000 - (25 byte без преамбулы(0xAA)) - принимаем данные (12 byte) - всеравно правильно (0x1F5FD43EABE5C35FD43D41EA). Хотя в настройках же Preamble detection - enabled. Т.е. никак не реагирует на преамбулу, но данные принимаются.

Вопросы:

1) В настройках мы устанавливаем - PQT enabled for SYNC and PREAMBLE. SYNC_CFG1.SYNC_THR [4:0] & PREAMBLE_CFG0.PQT [3:0] - в данных регистрах устанавливается допустимая величина битовых ошибок (???) и как считаются значения в этих регистрах ? Так как при проверки PQT_SYNC_ERROR я вижу PQT_ERROR[7:4] = 1111b and SYNC_ERROR[3:0] = 00XXb. Если можно, был бы рад если бы вы разъяснили про PQT.

2) SYNC_CFG0.SYNC_NUM_ERROR[1:0] = 0x01 - насколько я понял, это как раз 1 допустимая ошибка в синхропоследовательности? Тогда вопрос встает, что задаеться в SYNC_THR ?

3) Ранее работал с ADF, но требуется переход на CC1120.Как задаются кол-во допустимых битовых ошибок в Sync word and Preamble?

4) Возможно ли сделать на СС1120 так:
на TX стороне СС1120 мы шлем пакет с 64 bits preamble, 24 bit sync и data, но
на RX стороне СС1120 - достаточно принять 24 или 32 bits preamble, далее начинаем сразу поиск - sync word, когда sync word - detected - мы принимаем данные.
Единствонное, как я думаю это можно сделать, просто на - TX : настраиваем PREAMBLE_CFG1.NUM_PREAMBLE = 8 bytes ,
а на RX стороне: PREAMBLE_CFG1.NUM_PREAMBLE = 3 или 4 bytes?

5) В документации так же есть (только упоминание в регистрах и все) MDMCFG0.VITERBI_EN, при установке в 1 - СС1120 аппаратно производит декодирование или .... ???


PS прошу прощения если тему поместил не в тот раздел)
 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.040; miniBB ®