Quantcast
Channel: Wireless Connectivity
Viewing all articles
Browse latest Browse all 116964

Forum Post: SimpliciTi Bug (CC430F137, Auto-Read Radio Registers)

$
0
0

Hi,

i am using the CC430F6137 (ez430 Chronos). I have noticed the OPERR Flag is set all the time. The reason for this is that the SimpliciTi code uses the auto-read feature of the radio:

uint8_t mrfiRadioInterfaceReadReg(uint8_t addr)

{

/....

 if( (addr <= 0x2E) || (addr == 0x3E))
  {
    /* Write cmd: read the Configuration register */
    RF1AINSTR1B = (0x80 | addr);
  }
  else
  {
    /* Write cmd: read the Status register */
    RF1AINSTR1B = (0xC0 | addr);
  }

  /* Read out the register value */
  regValue   = RF1ADOUT1B; //auto read

/...

}

The OPERR Flag is set once the register value is read. This happens always if the configuration of the GDO2 register is requested by mrfiRadioInterfaceCmdStrobe(uint8_t addr):

gdoState = MRFI_RADIO_REG_READ(IOCFG2);

I have not found any error in the code. The OPERR flag is not set anymore if the auto-read feature is not used:

 if( (addr <= 0x2E) || (addr == 0x3E))
  {
    /* Write cmd: read the Configuration register */
    RF1AINSTRB = (0x80 | addr);
  }
  else
  {
    /* Write cmd: read the Status register */
    RF1AINSTRB = (0xC0 | addr);
   
  }

  RF1ADINB = 0; //dummy write
  /* Read out the register value */
  regValue = RF1ADOUTB;

I dont have any other CC430 chip, so this might just affect the CC430F6137 chip.

Anyways my question is if it is a big deal if the OPERR flag is set anyways?

edit: same problem in the void mrfiRadioInterfaceReadRxFifo(uint8_t * pData, uint8_t len) function:

/* Write cmd: SNGLRXRD */
      RF1AINSTR1B = 0xBF;
   
      /* Read byte from FIFO */
     pData  = RF1ADOUT1B; //auto read register

The OPERR flag is set too


Viewing all articles
Browse latest Browse all 116964

Trending Articles