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

ADS1299 reading register_SPI_nRF52832

Hello everyone,

Testing on:

  • nRF52DK (PCA 10040)
  • SDK 13.0.0

I have been struggling with reading from the register of ADS1299. I just want to try to read info from ID register of this IC to make sure getting correctly data using SPI.

Below is my code to read the register, I couldn't receive correct the data which is supposed to get 0x1E. Could you help me to check whether something is wrong in this code?

Thank you!

uint8_t RREG_ADS(uint8_t address)
{
	  uint8_t data_reg;
	  dataToSend[0] = address | 0x20;  //Opcode 000n nnnn =0 : write n channels
	  nrf_gpio_pin_clear(SPIM0_SS_PIN); // enable SS pin for ADS
	  if(DEBUG){NRF_LOG_INFO("Read from DR register of ADS\r\n");NRF_LOG_FLUSH();}
	  // Reset rx buffer and transfer done flag
	  spi_xfer_done = false; memset(m_rx_buf,0,sizeof(m_rx_buf));
      APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, dataToSend, 1, &data_reg, 1));
	  while (!spi_xfer_done){__WFE();}
	  NRF_LOG_FLUSH();
	  if(DEBUG){NRF_LOG_INFO("Send 0x00\r\n");NRF_LOG_FLUSH();}
	  spi_xfer_done = false; memset(m_rx_buf,0,sizeof(m_rx_buf));
	  APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, 0x00, 1, m_rx_buf, sizeof(m_rx_buf)));  
	  while (!spi_xfer_done){__WFE();}
	  NRF_LOG_FLUSH();
	  nrf_gpio_pin_set(SPIM0_SS_PIN); // disable SS pin for ADS
		nrf_delay_us(15);
		return data_reg;	
}

Related