This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1101 433.92 remote switch OOK no transmission

Other Parts Discussed in Thread: CC1101

Dear TI,

I'm struggling for days now to get the asynchronous serial mode working. For some reason i dont receive anything on my 433.92 Mhz receiver.
This i've tested right now:

- settings the CC1101 config and read it back to make sure the config in the cc1101 is set
- testing if there is a signal on the gdo0 pin
- Testing SPI communication with logic analyzer. (i've received data anyway) 
- Tested the receiver with a 433.92Mhz remote controller

this is the driver im using:

github.com/.../CC1101.c

The main code:

static struct sCC1101 gCC1101Settings = {

0x0B,  // IOCFG2              GDO2 Output Pin Configuration
0x2E,  // IOCFG1              GDO1 Output Pin Configuration
0x2E,  // IOCFG0              GDO0 Output Pin Configuration
0x47,  // FIFOTHR             RX FIFO and TX FIFO Thresholds
0xD3,  // SYNC1               Sync Word, High Byte
0x91,  // SYNC0               Sync Word, Low Byte
0xFF,  // PKTLEN              Packet Length
0x04,  // PKTCTRL1            Packet Automation Control
0x32,  // PKTCTRL0            Packet Automation Control
0x00,  // ADDR                Device Address
0x00,  // CHANNR              Channel Number
0x06,  // FSCTRL1             Frequency Synthesizer Control
0x00,  // FSCTRL0             Frequency Synthesizer Control
0x10,  // FREQ2               Frequency Control Word, High Byte
0xB1,  // FREQ1               Frequency Control Word, Middle Byte
0x21,  // FREQ0               Frequency Control Word, Low Byte
0xC7,  // MDMCFG4             Modem Configuration
0x02,  // MDMCFG3             Modem Configuration
0x30,  // MDMCFG2             Modem Configuration
0x00,  // MDMCFG1             Modem Configuration
0x7A,  // MDMCFG0             Modem Configuration
0x15,  // DEVIATN             Modem Deviation Setting
0x07,  // MCSM2               Main Radio Control State Machine Configuration
0x30,  // MCSM1               Main Radio Control State Machine Configuration
0x18,  // MCSM0               Main Radio Control State Machine Configuration
0x14,  // FOCCFG              Frequency Offset Compensation Configuration
0x6C,  // BSCFG               Bit Synchronization Configuration
0x03,  // AGCCTRL2            AGC Control
0x40,  // AGCCTRL1            AGC Control
0x91,  // AGCCTRL0            AGC Control
0x87,  // WOREVT1             High Byte Event0 Timeout
0x6B,  // WOREVT0             Low Byte Event0 Timeout
0xFB,  // WORCTRL             Wake On Radio Control
0x56,  // FREND1              Front End RX Configuration
0x11,  // FREND0              Front End TX Configuration
0xE9,  // FSCAL3              Frequency Synthesizer Calibration
0x2A,  // FSCAL2              Frequency Synthesizer Calibration
0x00,  // FSCAL1              Frequency Synthesizer Calibration
0x1F,  // FSCAL0              Frequency Synthesizer Calibration
0x41,  // RCCTRL1             RC Oscillator Configuration
0x00,  // RCCTRL0             RC Oscillator Configuration
0x59,  // FSTEST              Frequency Synthesizer Calibration Control
0x7F,  // PTEST               Production Test
0x3F,  // AGCTEST             AGC Test
0x81,  // TEST2               Various Test Settings
0x35,  // TEST1               Various Test Settings
};

struct sCC1101PhyInfo gPhyInfo;
struct sCC1101Spi gSpi = { SpiInit, SpiRead, SpiWrite };
uint8_t gPaTable[8] = { 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0 };
	
int main(void) {
	// mcu init
	sysclk_init();
	board_init();
	udc_start();
	kk_init();
	 
	// cc1101 init
	CC1101SpiInit(&gPhyInfo, &gSpi, NULL);
	//CC1101Reset(&gPhyInfo);
	
	CC1101WriteRegisters(&gPhyInfo, CC1101_PATABLE, gPaTable, 8);
	CC1101Configure(&gPhyInfo, &gCC1101Settings );
	CC1101Transmit(&gPhyInfo);

kaku_send(13,14,1,0); // send a signal to GDO0

Please help me to fix t his, because it really drives me crazy.

  • I forgot the PA table:

    uint8_t gPaTable[8] = { 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0 };
  • - Do you want your DUT to be in Rx or Tx? You write receiver but it looks like you put it in transmit
    - Have you checked the IOCFG settings? You write that you use GDO0 but it looks like you have set this pin in tristate.
  • I finally got some tx output! i've used one of the ask examples provided by smartrf. Unfortunately the signal is inverted. I've tried to switch the first to rows of the patable but that had no effect. i also tried to change the IOCFG0 to 0xc4. This also had no effect. Can you explain to me why?

    I saw that writing to the patable has no effect. When i read out the patable the values are [0] = 0x2f [1]=0xc6. Any idea why?
  • What is your FREND0 register setting:
    PA_POWER [2:0] Selects PA power setting. This value is an index to the PATABLE , which can be programmed with up to 8 different PA settings. In OOK/ASK mode, this selects the PATABLE index to use when transmitting a "1". PATABLE index zero is used in OOK/ASK when transmitting a "0". The PATABLE settings from index "0" to the PA_POWER value are used for ASK TX shaping, and for power ramp-up/ramp-down at the start/end of transmission in all TX modulation formats.
  • To invert the data you can use PATABLE[0] = 0xC0 and PATABLE[1] = 0. Note: PA ramping is not possible if you invert the data this way.

    Also, refer to DN022 () for hints on how to find the optimum register settings.

  • I finally got it working. Thanks for your help guys!