NRF52810 Power Issue (SPI )

I do have different issue with Nrf52810. I am trying to build a wearable device with NRF52810 and LSM6DSMTR.
I am measuring the current towards the NRF52810 using a series resistor (100E).

Rectangle part is SPI Communication (NrF Delay) in the graph

Whenever I send an SPI command, I can see there is a triangle based current consumption (Not sure what it is ). 
You can see the image without SPI as well.

I am using SES V5.62 (SDK 7.2.0) 

Parents
  • Hi, can you try with a lower value series resistor, and check if you see the same thing? 100 Ohm is quite large, and you will get a significant voltage drop when the current increases. Maybe try with 10Ohm maximum.

    Is the LSM6DSMTR powered from the same power source? I.e. does it have the same voltage level? Are you able to measure the voltage on the MISO pin (and any other input pins you might have) and see if it is at a stable voltage during the triangular shaped period, and not floating up and down?

  • I have checked all the ways. Its not an issue associated with the sensor.  
    I also connected a AS6212 temperature sensor to the same chip using I2C lines. 

    Noticed same kind of issue there also. But When  I commented //twi_init(); &  //twi_deinit(); from teh call function issue resolved.
    So I hardly believe this is something with the SPI lines.


    float AS6212_read_temp(void)
    {
    
      float temperature_c = 0.0;
      bool singleSt = 0;
     
      //twi_init();
    
      nrf_drv_twi_enable(&m_twi);
    
      triggerSingleShotConversion();// enabling sleep mode
    
      nrf_delay_ms(AS6212_CONVERSION_TIME); //conversion ongoing
    
      for(char i=0; i<10; i++)
      {
        singleSt = getSingleShotStatus(); 
        if(!singleSt) {break;}
        else
        {
         NRF_LOG_INFO("AS6212 Conversion Not completed"); 
         nrf_delay_ms(5);
        }
      }
    
      temperature_c = readTempC();
    
    
      nrf_drv_twi_disable(&m_twi);  
      //twi_deinit();
    
      return temperature_c;
    }

Reply
  • I have checked all the ways. Its not an issue associated with the sensor.  
    I also connected a AS6212 temperature sensor to the same chip using I2C lines. 

    Noticed same kind of issue there also. But When  I commented //twi_init(); &  //twi_deinit(); from teh call function issue resolved.
    So I hardly believe this is something with the SPI lines.


    float AS6212_read_temp(void)
    {
    
      float temperature_c = 0.0;
      bool singleSt = 0;
     
      //twi_init();
    
      nrf_drv_twi_enable(&m_twi);
    
      triggerSingleShotConversion();// enabling sleep mode
    
      nrf_delay_ms(AS6212_CONVERSION_TIME); //conversion ongoing
    
      for(char i=0; i<10; i++)
      {
        singleSt = getSingleShotStatus(); 
        if(!singleSt) {break;}
        else
        {
         NRF_LOG_INFO("AS6212 Conversion Not completed"); 
         nrf_delay_ms(5);
        }
      }
    
      temperature_c = readTempC();
    
    
      nrf_drv_twi_disable(&m_twi);  
      //twi_deinit();
    
      return temperature_c;
    }

Children
Related