Господа, не раз слышал мысль, что низкие скорости, ниже 100 кбод - не для cc1101. Тем не менее, это не отменяет правила, что чем выше скорость, тем меньше дальность. Мне нужна минимальная скорость при максимальной дальности.
Первоначальные эксперименты я проводил с стыренными где-то настройками, на 100 кбод. Работало отлично, LQI вертелся у нуля. Мощность с усилителем - 20 dBm, пробивало все перекрытия с 5 этажа по первый. Но вот почему-то кирпичный дом и 60 метров прямой видимости оказались не по зубам, хотя рация той же мощности работала на расстоянии 300 метров, пробивая на своем пути 3 кирпичных дома.
Хочу проверить эту связку на самой низкой скорости. Настроил по предлагаемому SmartRF Studio образцу настроил следующим образом:
Скорость - 1.2 кбод
Девиация 5.1 кГц
Полоса - 58 кГц
Все работает, но LQI 50-60.
Вот настройки (не обращайте внимания на комментарии, я их не правил после изменения регистров)
CODE
void writeRFSettings433(void)
{
// ÇÀÏÈÑÜ ÓÑÒÀÍÎÂÎ×ÍÛÕ ÇÍÀ×ÅÍÈÉ
// GDO0 , GDO2 - ÂÛÂÎÄ
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2, 0x0E);
TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0, 0x06);
// ÄËÈÍÀ ÏÀÊÅÒÀ ÄÀÍÍÛÕ - 0
TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN, 0x00);
// Àâòîìàòè÷åñêèé êîíòðîëü ïàêåòà áåç ïðîâåðêè àäðåñà
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1, 0x04);
// CRC - êîíòðîëü âêëþ÷åí
TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x05);
// Àäðåñ óñòðîéñòâà -0
TI_CC_SPIWriteReg(TI_CCxxx0_ADDR, 0x00);
// Íîðìåð êàíàëà -0
TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR, 0x00);
// Íàñòðîéêà ñèíòåçàòîðà ÷àñòîòû
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1, 0x06);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0, 0x00);
// Çàäàíèå áàçîâîé íåñóùåé ÷àñòîòû
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2, 0x11); //11
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1, 0x27); //27
TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0, 0xB1); //B1
// Íàñòðîéêà ìîäåìà
// ÔÍ× äåìîäóëÿòîðà - 203 êÃö
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4, 0xF5); // 2d
// Ñêîðîñòü ïåðåäà÷è 115 êáèò/ñ
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3, 0x83); // 36
// Äëèíà ñëîâà ñèíõðîíèçàöèè - 32 ,áàéòà, 2-FSK ìîäóëÿöèÿ
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2, 0x83);
// Äëèíà ïðåàìáóëû 4 áàéòà, FEC îòêëþ÷åí
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1, 0x22);
// ÏÎëîñà êàíàëà - 199.95 êÃö
TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0, 0xF8);
TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,0x15);
// Çàâåðøåíèå êîíôèãóðàöèè RX
TI_CC_SPIWriteReg(TI_CCxxx0_FREND1, 0xB6);
// Çàâåðøåíèå êîíôèãóðàöèè TX
TI_CC_SPIWriteReg(TI_CCxxx0_FREND0, 0x10);
//Ôóíêöèè êîíôèãóðàöèè àâòîìàòà êîíòðîëÿ ðàäèî (ïî óìëî÷àíèþ)
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM2, 0x07);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1, 0x3F);
TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0, 0x18);
// Êîìïåíñàöèÿ ñäâèãà ÷àñòîòû
TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG, 0x1D);
// Êîíôèãóðàöèÿ áèòîâîé ñèíõðîíèçàöèè
TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG, 0x1C);
// Ïàðàìåòðû ìàëîøóìÿùèõ óñèëèòåëåé è ïîðîã êîìïàðàòîðà
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2, 0xC7);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1, 0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0, 0xB2);
// Ïàðàìåòðû êàëèáðîâêè ñèíòåçàòîðà
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3, 0xE9);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2, 0x2A);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1, 0x00);
TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0, 0x1F);
// Ïðèâåäåííûå íèæå íàñòðîéêè èçìåíÿòü íå ðåêîìåíäóåòñÿ
TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST, 0x59);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST2, 0x88);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST1, 0x31);
TI_CC_SPIWriteReg(TI_CCxxx0_TEST0, 0x0B);
// Îñòàëüíûå íàñòðîéêè ïî óìëî÷àíèþ
}
Как улучшить связь?
Если ответ однозначный- на низкой скорости ничего не получится, то где компромис между дальностью и скоростью связи?