I cannot seem to see why my CC1110 radio is not transmitting when setup with DMA. I have more or less copied the recommended examples for the PER test code and the basic examples:
static uint8 txrxbuffer[17] = {16, ..... } - first byte is length followed by 16 other bytes
dmaConfig0.SRCADDRH = ((uint16)txrxbuffer >> 8) & 0x00FF; // Setup the config data structure
dmaConfig0.SRCADDRL = (uint16)txrxbuffer & 0x00FF;
dmaConfig0.DESTADDRH = ((uint16)&X_RFD >> 8) & 0x00FF;
dmaConfig0.DESTADDRL = (uint16)&X_RFD & 0x00FF;
dmaConfig0.VLEN = DMA_VLEN_USE_LEN;
dmaConfig0.LENH = 0;
dmaConfig0.LENL = 17;
dmaConfig0.WORDSIZE = DMA_WORDSIZE_BYTE;
dmaConfig0.TMODE = DMA_TMODE_SINGLE;
dmaConfig0.TRIG = DMA_TRIG_RADIO;
dmaConfig0.SRCINC = DMA_SRCINC_1;
dmaConfig0.DESTINC = DMA_DESTINC_0;
dmaConfig0.IRQMASK = DMA_IRQMASK_ENABLE;
dmaConfig0.M8 = DMA_M8_USE_8_BITS;
dmaConfig0.PRIORITY = DMA_PRI_LOW;
// Load DMA configuration to channel 1;
DMA1CFGH = ((uint16)&dmaConfig0 >> 8) & 0x00FF;
DMA1CFGL = (uint16)&dmaConfig0 & 0x00FF;
DMAARM |= DMAARM1;
RFST = RFST_STX;
- but nothing happens. I setup an interupt on RFTXRFIF and it only occurs asserts once, but no other RFIF flags are asserted to indicate underflow. Is this the correct way to load in the data length for the first transfer into RFD?
Any help much appreciated..
Richard.