priestnot
Member level 5
- Joined
- May 1, 2006
- Messages
- 89
- Helped
- 1
- Reputation
- 2
- Reaction score
- 1
- Trophy points
- 1,288
- Activity points
- 2,098
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;
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?