cc1110 and simpliciti problems
时间:04-06
整理:3721RD
点击:
Hello I have a few questions about CC1110F32 and SimpliciTi.
I have a SMARTRFCC1110-868 and I am using simpliciTi to make a pear to pear communication project.
The project needs a non volatile communication system. (after a power reset it still communicates with the linked device). So I used the flash asn storeed there the relevant data. The way i did this was based on the basic examples and used the flashDMA example.
The problem is that when I use this method Simplicity stops sending and receiving. I nailed the problem down to this function upon flash write configuration:
I solved the problem making a push before the change and a pop after the change of the variables:
I think the problem is on the DMA configuration. So the question is does simpliciTI API use any sort of resource of the DMA? I searched the documentation and it does not mention anything about that.
Another question I need to use Timer interruptions to make periodic functions wich timer should I use in order to not influence the simpliciti work?
I have a SMARTRFCC1110-868 and I am using simpliciTi to make a pear to pear communication project.
The project needs a non volatile communication system. (after a power reset it still communicates with the linked device). So I used the flash asn storeed there the relevant data. The way i did this was based on the basic examples and used the flashDMA example.
The problem is that when I use this method Simplicity stops sending and receiving. I nailed the problem down to this function upon flash write configuration:
Code:
// Configure DMA channel 0. Settings: dmaConfig0.SRCADDRH = ((uint16)ram >> 8) & 0x00FF; dmaConfig0.SRCADDRL = (uint16)ram & 0x00FF; dmaConfig0.DESTADDRH = ((uint16)&X_FWDATA >> 8) & 0x00FF; dmaConfig0.DESTADDRL = (uint16)&X_FWDATA & 0x00FF; dmaConfig0.VLEN = DMA_VLEN_USE_LEN; dmaConfig0.LENH = (DATA_AMOUNT >> 8) & 0x00FF; dmaConfig0.LENL = DATA_AMOUNT & 0x00FF; dmaConfig0.WORDSIZE = DMA_WORDSIZE_BYTE; dmaConfig0.TMODE = DMA_TMODE_SINGLE; dmaConfig0.TRIG = DMA_TRIG_FLASH; dmaConfig0.SRCINC = DMA_SRCINC_1; dmaConfig0.DESTINC = DMA_DESTINC_0; dmaConfig0.IRQMASK = DMA_IRQMASK_DISABLE; dmaConfig0.M8 = DMA_M8_USE_8_BITS; dmaConfig0.PRIORITY = DMA_PRI_HIGH; /* * This is the part that is making the problem */ // DMA configuration DMA0CFGH = ((uint16)&dmaConfig0 >> 8) & 0x00FF; DMA0CFGL = (uint16)&dmaConfig0 & 0x00FF;
Code:
// Push al variables needed DMA0CFGH; DMA0CFGL; FWT; FADDRH; FADDRL;
Another question I need to use Timer interruptions to make periodic functions wich timer should I use in order to not influence the simpliciti work?
Why is this in the RF section of the forums?
Because the cc1110 is a microprocessor with a rf transciver. And simpliciti is a rf comunication api for the cc1110.
So i think the it is suited for the rf section. But if not tell me were and i change it.
Oh, OK, just wondering because this seems to be based on an API/coding issue over a an RF question.
