|
@ -225,7 +225,6 @@ static void ads1293_spi_tx_rx_1(uint8_t *tx, uint8_t *rx, uint8_t len) { |
|
|
static void ads1293_spi_writereg_and_check(ads1293_t *ads, uint8_t addr, uint8_t data) { |
|
|
static void ads1293_spi_writereg_and_check(ads1293_t *ads, uint8_t addr, uint8_t data) { |
|
|
uint8_t readbak = 0; |
|
|
uint8_t readbak = 0; |
|
|
// readonly add |
|
|
// readonly add |
|
|
readbak = data; |
|
|
|
|
|
if (addr >= 0x18 && addr <= 0x1E) { |
|
|
if (addr >= 0x18 && addr <= 0x1E) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
@ -238,7 +237,16 @@ static void ads1293_spi_writereg_and_check(ads1293_t *ads, uint8_t addr, uint8_t |
|
|
if (addr == 0x50) { |
|
|
if (addr == 0x50) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
ads1293_spi_writereg_and_readbak(ads, addr, data, &readbak); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (uint8_t i = 0; i < 5; i++) { |
|
|
|
|
|
readbak = 0; |
|
|
|
|
|
ads1293_spi_writereg_and_readbak(ads, addr, data, &readbak); |
|
|
|
|
|
if (readbak == data) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
nrf_delay_ms(1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (readbak != data) { |
|
|
if (readbak != data) { |
|
|
ZLOGE("ads_%d write reg 0x%x failed\n", ads->id, addr); |
|
|
ZLOGE("ads_%d write reg 0x%x failed\n", ads->id, addr); |
|
|
DeviceExceptionMgr_get_state()->ads1293_setting_error = 1; |
|
|
DeviceExceptionMgr_get_state()->ads1293_setting_error = 1; |
|
@ -418,13 +426,24 @@ static void ads1293_init() { |
|
|
|
|
|
|
|
|
m_ads1293_driver_is_inited = true; |
|
|
m_ads1293_driver_is_inited = true; |
|
|
|
|
|
|
|
|
uint8_t revid = ads1293_spi_readreg(&m_ads1293_0, TI_ADS1293_REVID_REG); |
|
|
|
|
|
if (revid != 1) { |
|
|
|
|
|
DeviceExceptionMgr_get_state()->ads1293_detect_error = 1; |
|
|
|
|
|
|
|
|
uint8_t revid0 = ads1293_spi_readreg(&m_ads1293_0, TI_ADS1293_REVID_REG); |
|
|
|
|
|
uint8_t revid1 = ads1293_spi_readreg(&m_ads1293_1, TI_ADS1293_REVID_REG); |
|
|
|
|
|
|
|
|
|
|
|
for (uint16_t i = 0; i < 5; i++) { |
|
|
|
|
|
revid0 = ads1293_spi_readreg(&m_ads1293_0, TI_ADS1293_CONFIG_REG); |
|
|
|
|
|
revid1 = ads1293_spi_readreg(&m_ads1293_1, TI_ADS1293_CONFIG_REG); |
|
|
|
|
|
|
|
|
|
|
|
if (revid0 == 1 && revid1 == 1) { |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
nrf_delay_ms(10); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (revid0 != 1) { |
|
|
|
|
|
DeviceExceptionMgr_get_state()->ads1293_0_detect_error = 1; |
|
|
} |
|
|
} |
|
|
revid = ads1293_spi_readreg(&m_ads1293_1, TI_ADS1293_REVID_REG); |
|
|
|
|
|
if (revid != 1) { |
|
|
|
|
|
DeviceExceptionMgr_get_state()->ads1293_detect_error = 1; |
|
|
|
|
|
|
|
|
if (revid1 != 1) { |
|
|
|
|
|
DeviceExceptionMgr_get_state()->ads1293_1_detect_error = 1; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
static void ads1293_sample_one_frame() { |
|
|
static void ads1293_sample_one_frame() { |
|
|