/** * setDefaultRegs * * Configure CC1101 registers */ void CC1101::setDefaultRegs(void) { byte defSyncWrd[] = {CC1101_DEFVAL_SYNC1, CC1101_DEFVAL_SYNC0}; writeReg(CC1101_IOCFG2, CC1101_DEFVAL_IOCFG2); writeReg(CC1101_IOCFG1, CC1101_DEFVAL_IOCFG1); writeReg(CC1101_IOCFG0, CC1101_DEFVAL_IOCFG0); writeReg(CC1101_FIFOTHR, CC1101_DEFVAL_FIFOTHR); writeReg(CC1101_PKTLEN, CC1101_DEFVAL_PKTLEN); writeReg(CC1101_PKTCTRL1, CC1101_DEFVAL_PKTCTRL1); writeReg(CC1101_PKTCTRL0, CC1101_DEFVAL_PKTCTRL0); // Set default synchronization word setSyncWord(defSyncWrd, false); // Set default device address setDevAddress(CC1101_DEFVAL_ADDR, false); // Set default frequency channel setChannel(CC1101_DEFVAL_CHANNR, false); writeReg(CC1101_FSCTRL1, CC1101_DEFVAL_FSCTRL1); writeReg(CC1101_FSCTRL0, CC1101_DEFVAL_FSCTRL0); // Set default carrier frequency = 434 MHz setCarrierFreq(CFREQ_434); writeReg(CC1101_MDMCFG4, CC1101_DEFVAL_MDMCFG4); writeReg(CC1101_MDMCFG3, CC1101_DEFVAL_MDMCFG3); writeReg(CC1101_MDMCFG2, CC1101_DEFVAL_MDMCFG2); writeReg(CC1101_MDMCFG1, CC1101_DEFVAL_MDMCFG1); writeReg(CC1101_MDMCFG0, CC1101_DEFVAL_MDMCFG0); writeReg(CC1101_DEVIATN, CC1101_DEFVAL_DEVIATN); writeReg(CC1101_MCSM2, CC1101_DEFVAL_MCSM2); writeReg(CC1101_MCSM1, CC1101_DEFVAL_MCSM1); writeReg(CC1101_MCSM0, CC1101_DEFVAL_MCSM0); writeReg(CC1101_FOCCFG, CC1101_DEFVAL_FOCCFG); writeReg(CC1101_BSCFG, CC1101_DEFVAL_BSCFG); writeReg(CC1101_AGCCTRL2, CC1101_DEFVAL_AGCCTRL2); writeReg(CC1101_AGCCTRL1, CC1101_DEFVAL_AGCCTRL1); writeReg(CC1101_AGCCTRL0, CC1101_DEFVAL_AGCCTRL0); writeReg(CC1101_WOREVT1, CC1101_DEFVAL_WOREVT1); writeReg(CC1101_WOREVT0, CC1101_DEFVAL_WOREVT0); writeReg(CC1101_WORCTRL, CC1101_DEFVAL_WORCTRL); writeReg(CC1101_FREND1, CC1101_DEFVAL_FREND1); writeReg(CC1101_FREND0, CC1101_DEFVAL_FREND0); writeReg(CC1101_FSCAL3, CC1101_DEFVAL_FSCAL3); writeReg(CC1101_FSCAL2, CC1101_DEFVAL_FSCAL2); writeReg(CC1101_FSCAL1, CC1101_DEFVAL_FSCAL1); writeReg(CC1101_FSCAL0, CC1101_DEFVAL_FSCAL0); writeReg(CC1101_RCCTRL1, CC1101_DEFVAL_RCCTRL1); writeReg(CC1101_RCCTRL0, CC1101_DEFVAL_RCCTRL0); writeReg(CC1101_FSTEST, CC1101_DEFVAL_FSTEST); writeReg(CC1101_PTEST, CC1101_DEFVAL_PTEST); writeReg(CC1101_AGCTEST, CC1101_DEFVAL_AGCTEST); writeReg(CC1101_TEST2, CC1101_DEFVAL_TEST2); writeReg(CC1101_TEST1, CC1101_DEFVAL_TEST1); writeReg(CC1101_TEST0, CC1101_DEFVAL_TEST0); }
/** * setRegsFromEeprom * * Set registers from EEPROM */ void CC1101::setRegsFromEeprom(void) { byte bVal; byte arrV[2]; // Read RF channel from EEPROM bVal = EEPROM.read(EEPROM_FREQ_CHANNEL); // Set RF channel if (bVal < NUMBER_OF_FCHANNELS ) setChannel(bVal, false); // Read Sync word from EEPROM arrV[0] = EEPROM.read(EEPROM_SYNC_WORD); arrV[1] = EEPROM.read(EEPROM_SYNC_WORD + 1); // Set Sync word. 0x00 and 0xFF values are not allowed if (((arrV[0] != 0x00) && (arrV[0] != 0xFF)) || ((arrV[1] != 0x00) && (arrV[1] != 0xFF))) setSyncWord(arrV[0], arrV[1], false); // Read device address from EEPROM bVal = EEPROM.read(EEPROM_DEVICE_ADDR); // Set device address if (bVal > 0) setDevAddress(bVal, false); }