|
|
@ -40,6 +40,8 @@ |
|
|
|
#define ADS1293_SPI_CS1_PIN 29 |
|
|
|
#define ADS1293_READY_PIN 31 |
|
|
|
|
|
|
|
#define LINE_DET_PIN 10 |
|
|
|
|
|
|
|
/******************************************************************************* |
|
|
|
* TOOLS * |
|
|
|
*******************************************************************************/ |
|
|
@ -149,17 +151,17 @@ void ThreeLeadECG_sdcard_base_init() { // |
|
|
|
* @brief USBDRIVER_IC_RESET_PIN ctrl pin |
|
|
|
*/ |
|
|
|
znrf_gpio_cfg_output(SDCARD_USBDRIVER_IC_RESET_PIN, NRF_GPIO_PIN_NOPULL); |
|
|
|
nrf_gpio_pin_set(SDCARD_USBDRIVER_IC_RESET_PIN); |
|
|
|
nrf_gpio_pin_write(SDCARD_USBDRIVER_IC_RESET_PIN, 1); |
|
|
|
/** |
|
|
|
* @brief 初始化 SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN |
|
|
|
*/ |
|
|
|
znrf_gpio_cfg_output(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN, NRF_GPIO_PIN_NOPULL); |
|
|
|
nrf_gpio_pin_clear(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN); // OE = 0 |
|
|
|
nrf_gpio_pin_write(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN, 0); // OE = 0 |
|
|
|
/** |
|
|
|
* @brief SDCARD电源控制引脚 |
|
|
|
*/ |
|
|
|
znrf_gpio_cfg_output(SDCARD_POWER_CTRL_PIN, NRF_GPIO_PIN_NOPULL); |
|
|
|
nrf_gpio_pin_clear(SDCARD_POWER_CTRL_PIN); // POWER = 0 |
|
|
|
nrf_gpio_pin_write(SDCARD_POWER_CTRL_PIN, 0); // POWER = 0 |
|
|
|
} |
|
|
|
void ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic_reset() { |
|
|
|
nrf_gpio_pin_clear(SDCARD_USBDRIVER_IC_RESET_PIN); |
|
|
@ -167,7 +169,7 @@ void ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic_reset() { |
|
|
|
nrf_gpio_pin_set(SDCARD_USBDRIVER_IC_RESET_PIN); |
|
|
|
} |
|
|
|
void ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic(bool connect) { |
|
|
|
if (connect) { |
|
|
|
if (!connect) { |
|
|
|
nrf_gpio_pin_clear(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN); |
|
|
|
} else { |
|
|
|
nrf_gpio_pin_set(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN); |
|
|
@ -214,7 +216,7 @@ NRF_BLOCK_DEV_SDC_DEFINE(m_block_dev_sdc, |
|
|
|
static FATFS fs; |
|
|
|
|
|
|
|
void sdcard_test_write_text() { |
|
|
|
#define FILE_NAME "/5.TXT" |
|
|
|
#define FILE_NAME "/6.TXT" |
|
|
|
static FIL file; |
|
|
|
uint32_t bytes_written; |
|
|
|
static DIR dir; |
|
|
@ -243,22 +245,39 @@ void sdcard_test_write_text() { |
|
|
|
} |
|
|
|
} while (fno.fname[0]); |
|
|
|
NRF_LOG_RAW_INFO(""); |
|
|
|
NRF_LOG_INFO("read from file " FILE_NAME "..."); |
|
|
|
{ |
|
|
|
ff_result = f_open(&file, FILE_NAME, FA_READ); |
|
|
|
if (ff_result == FR_OK) { |
|
|
|
static char rxbuf[20] = {0}; |
|
|
|
UINT rxsize; |
|
|
|
ff_result = f_read(&file, rxbuf, 19, &rxsize); |
|
|
|
if (ff_result != FR_OK) { |
|
|
|
NRF_LOG_INFO("read failed\r\n."); |
|
|
|
} else { |
|
|
|
NRF_LOG_INFO("read %s(%d)", rxbuf, rxsize); |
|
|
|
} |
|
|
|
(void)f_close(&file); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
NRF_LOG_INFO("Writing to file " FILE_NAME "..."); |
|
|
|
ff_result = f_open(&file, FILE_NAME, FA_CREATE_ALWAYS | FA_READ | FA_WRITE | FA_CREATE_NEW); |
|
|
|
if (ff_result != FR_OK) { |
|
|
|
NRF_LOG_INFO("Unable to open or create file: " FILE_NAME ". %d", ff_result); |
|
|
|
return; |
|
|
|
} |
|
|
|
{ |
|
|
|
ff_result = f_open(&file, FILE_NAME, FA_CREATE_ALWAYS | FA_READ | FA_WRITE); |
|
|
|
if (ff_result != FR_OK) { |
|
|
|
NRF_LOG_INFO("Unable to open or create file: " FILE_NAME ". %d", ff_result); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
ff_result = f_write(&file, "iflytop", sizeof("iflytop") - 1, (UINT*)&bytes_written); |
|
|
|
if (ff_result != FR_OK) { |
|
|
|
NRF_LOG_INFO("Write failed\r\n."); |
|
|
|
} else { |
|
|
|
NRF_LOG_INFO("%d bytes written.", bytes_written); |
|
|
|
} |
|
|
|
ff_result = f_write(&file, "iflytop", sizeof("iflytop") - 1, (UINT*)&bytes_written); |
|
|
|
if (ff_result != FR_OK) { |
|
|
|
NRF_LOG_INFO("Write failed\r\n."); |
|
|
|
} else { |
|
|
|
NRF_LOG_INFO("%d bytes written.", bytes_written); |
|
|
|
} |
|
|
|
|
|
|
|
(void)f_close(&file); |
|
|
|
(void)f_close(&file); |
|
|
|
} |
|
|
|
} |
|
|
|
bool mountsuc = false; |
|
|
|
/** |
|
|
@ -293,9 +312,9 @@ void ThreeLeadECG_sdcard_mount() { |
|
|
|
* 4. 初始化SPI引脚,驱动flash |
|
|
|
*/ |
|
|
|
|
|
|
|
// ThreeLeadECG_sdcard_flash_power_ctrl(false); |
|
|
|
// ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic(false); |
|
|
|
// ThreeLeadECG_sdcard_flash_power_ctrl(true); |
|
|
|
nrf_gpio_pin_write(SDCARD_POWER_CTRL_PIN, 1); // 关 |
|
|
|
nrf_gpio_pin_write(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN, 1); |
|
|
|
nrf_gpio_pin_write(SDCARD_POWER_CTRL_PIN, 0); // 开 |
|
|
|
|
|
|
|
/** |
|
|
|
* @brief |
|
|
@ -329,6 +348,7 @@ void ThreeLeadECG_sdcard_mount() { |
|
|
|
NRF_LOG_INFO("Mount failed."); |
|
|
|
return; |
|
|
|
} |
|
|
|
ZLOGI("Mount success"); |
|
|
|
|
|
|
|
uint32_t blocks_per_mb = (1024uL * 1024uL) / m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_size; |
|
|
|
uint32_t capacity = m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_count / blocks_per_mb; |
|
|
@ -408,4 +428,10 @@ void ThreeLeadECG_ecg_init() { |
|
|
|
revid = ads1293_spi_readreg(&m_ads1293_1, TI_ADS1293_REVID_REG); |
|
|
|
NRF_LOG_INFO("ads1293_1 revid: %d", revid); |
|
|
|
} |
|
|
|
bool ThreeLeadECG_ready_pin_state_get() { return nrf_gpio_pin_read(ADS1293_READY_PIN); } |
|
|
|
uint32_t ThreeLeadECG_ready_pin_state_get() { return nrf_gpio_pin_read(ADS1293_READY_PIN); } |
|
|
|
|
|
|
|
void ThreeLeadECG_LineInputDet_init() { |
|
|
|
// LINE_DET_PIN |
|
|
|
nrf_gpio_cfg_input(LINE_DET_PIN, NRF_GPIO_PIN_PULLUP); |
|
|
|
} |
|
|
|
uint32_t ThreeLeadECG_LineInputDet_get_state() { return nrf_gpio_pin_read(LINE_DET_PIN); } |