Hello,
I'm working with CC430F6137 for an rf project which collects temperature values from the rf nodes.
CPU gets stuck while trying to read a register by using rf core interface in the function ReadSingleReg
(in Strobe) ;
unsigned char ReadSingleReg(unsigned char addr)
{
unsigned char data_out;
// Check for valid configuration register address, 0x3E refers to PATABLE
if ((addr <= 0x2E) || (addr == 0x3E))
// Send address + Instruction + 1 dummy byte (auto-read)
RF1AINSTR1B = (addr | RF_SNGLREGRD);
else
// Send address + Instruction + 1 dummy byte (auto-read)
RF1AINSTR1B = (addr | RF_STATREGRD);
while (!(RF1AIFCTL1 & RFDOUTIFG) ); // ===> RFDOUTIFG never becomes 1 so infinite loop here <=====
data_out = RF1ADOUTB; // Read data and clears the RFDOUTIFG
return data_out;
}
my observations:
I set the RFDOUTIFG and following trapping flag RFSTATIFG by hand, it stops at the same point again and again.
Once this error occurs, even if I reset the device same thing happens after a few packet transmission failure .
Before trapping here, device fails previous transmissions or transmits with CRC error (viewed from RF studio).
Also OUTERR flag in RF1AIFERR becomes 1 , indicates that "Not enough data available for the executed read access."
although the reading process here is implemented correctly. Therefore, I think this is not the root of our unknown problem.
conclusion:
My life also trapped at the same point.
Any solutions please?
thanks,
Yusuf