This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to resolve NRF_ERROR_INTERNAL error in TWI communication?

Hi,

I'm using PCA10040 board, There i connected the fuel gauge IC via TWI communication. There pca10040 will acts as master and fuel gauge IC will acts as slave.

While Read and write we are getting "NRF_ERROR_INTERNAL" error and hangs there itself. If i give some delay (like 100ms) for each read and write its working fine.

That same fuel gauge setup i connected to some other controller (Master), There also i'm accessing via TWI communication. There without delay i can able to read and write the values.

After that i probed both the setups (PFA),

setup 1 : PCA10040 (Master) - Fuel Gauge IC (slave)

NORDIC.tar.bz2

setup 2 : Other Controller (Master) - Fuel Gauge IC (slave)

OTHER_CONTROLLER.tar.bz2

While comparing that, In Nordic setup, End of the each byte (after 9 clock cycles) SDA pulse goes high for some time. But in other controller not like that wherever data presents that time only it goes high.

Is that extra SDA pulse cause any issue ?

May i know why that SDA pulse goes high for some time in Nordic controller?

Thanks in advance,

Parents
  • Hi Naveen,

    If the TWI slave NACK, then on the master we will receive NRF_TWI_EVENT_ERROR and in the application it will be resulted as NRF_ERROR_INTERNAL.

    It's a little bit strange in your probe trace that the SDA and SCL were held low when finished transaction, it should be high as the pins are pulled up. I assume that the slave held them low. Could you send the schematic ? Also please update the datasheet of the sensor you used.

    Have you tried to test with the twi_master_with_twis_slave example, just to verify the normal behaviour of the nRF52 and TWIS+TWIM ?

Reply
  • Hi Naveen,

    If the TWI slave NACK, then on the master we will receive NRF_TWI_EVENT_ERROR and in the application it will be resulted as NRF_ERROR_INTERNAL.

    It's a little bit strange in your probe trace that the SDA and SCL were held low when finished transaction, it should be high as the pins are pulled up. I assume that the slave held them low. Could you send the schematic ? Also please update the datasheet of the sensor you used.

    Have you tried to test with the twi_master_with_twis_slave example, just to verify the normal behaviour of the nRF52 and TWIS+TWIM ?

Children
No Data
Related