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

NRF52840-DK with MAX30003 ECG Board

Hello,

I am trying to code nRF52840- DK with MAX30003 ECG Board Using SPI. I have referred Arduino Uno Code for MAX30003 ECG.

I need some help for Driver Development if anybody worked on this please share any info.

Thanks and Regards,

Rohit  

Parents
  • Hey Rohit, 

    Either you answer the questions asked by Nordic staff or community members or you wont get any help from us. We can only help you help yourself. If you do not want our help please refrain from using our forum. It will not help you to keep posting the same question in new threads without engaging in any conversation in your ongoing thread:

    See the public duplicates:
    https://devzone.nordicsemi.com/f/nordic-q-a/39021/max30003-ecg-with-nrf52840 
    https://devzone.nordicsemi.com/f/nordic-q-a/39063/spi-communication-with-max30003-ecg-reg_read_write 


    I have got a few tips for your current project:

    1. Remove and forget any arduino drivers, they are not suited for any other platforms than arduino. 
    2. Use Maxims drivers.

    Here's an abstract architecture of your FW with regards to the MAX30003:

    Good luck,

    Håkon H.

  • Hello  sir sorry for that,

    may i know nrf SPIM driver means "spi_master_using_nrf_spi_mngr" example?

  • Hi Haakonsh,

    Thanks for the reply and suggestions.

    regards,

    rohit

  • So what do you expect that code to do?

    What does it actually do?

    You should also scope the SPI communication with a digital logical analyzer

    In other words, you need to examine the signals on the physical connections between the SPI Master (NRF52840-DK) and the SPI Slave (MAX30003 ECG Board) using a logic analyser, oscilloscope, or similar.

    Have you done that?

    What did you see?

  • Hi,

    Thank you for your inputs, Now, I can read INFO (0x0F) register and receive some data in RX buffer but I don't know whether it is receiving correct data or not, can anyone help me how to verify the data.

    FYR, attaching code

    #define   INFO   ((uint8_t)0x0F)

    int main(void)
    {
    MAX30003_Reg_Read(INFO);
    bsp_board_init(BSP_INIT_LEDS);

    APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
    NRF_LOG_DEFAULT_BACKENDS_INIT();

    // nrfx_spim_xfer_desc_t xfer_desc = NRFX_SPIM_XFER_TRX(m_tx_buf, m_length, m_rx_buf, m_length);

    nrfx_spim_config_t spi_config = NRFX_SPIM_DEFAULT_CONFIG;
    spi_config.frequency = SPIM_FREQUENCY_FREQUENCY_K125;
    spi_config.ss_pin = NRFX_SPIM_SS_PIN;
    spi_config.miso_pin = NRFX_SPIM_MISO_PIN;
    spi_config.mosi_pin = NRFX_SPIM_MOSI_PIN;
    spi_config.sck_pin = NRFX_SPIM_SCK_PIN;
    spi_config.dcx_pin = NRFX_SPIM_DCX_PIN;
    spi_config.use_hw_ss = true;
    spi_config.ss_active_high = false;
    spi_config.mode = NRF_SPIM_MODE_2; // SCK active low, sample on trailing edge of clock

    APP_ERROR_CHECK(nrfx_spim_init(&spi, &spi_config, spim_event_handler, NULL));
    nrfx_spim_xfer_desc_t xfer_desc = NRFX_SPIM_XFER_TRX(SPI_TX_Buff, sizeof(SPI_TX_Buff), SPI_RX_Buff, sizeof(SPI_TX_Buff));
    NRF_LOG_INFO("NRFX SPIM example started.");

    while (1)
    {
    // Reset rx buffer and transfer done flag
    memset(SPI_RX_Buff, 0, m_length);
    spi_xfer_done = false;

    APP_ERROR_CHECK(nrfx_spim_xfer_dcx(&spi, &xfer_desc, 0, 15));
    while (!spi_xfer_done)
    {
    __WFE();
    }

    NRF_LOG_FLUSH();

    bsp_board_led_invert(BSP_BOARD_LED_0);
    nrf_delay_ms(200);
    }
    }

    I want to know, how to analyze that received data is correct or not?

    Please check the attached video?

    Thanks,

    Rohit

  • You've already forgotten how to properly post source code, then?

    I want to know, how to analyze that received data is correct or not?

    Really, that has nothing at all to do with Nordic - that's entirely up to you and the specifics of your application.

    Again, you need to look to Maxim and the MAX30003 documentation for answers to such questions.

    Their product page is here: https://www.maximintegrated.com/en/products/analog/data-converters/analog-front-end-ics/MAX30003.html

    Look under 'Design Resources' - they have an evaluation kit , development platform, reference design, Tutorial, Application Note, and other resources ...

    Note also their 'Support' link at the left-hand side of the page

  • Hi HaaKonsh,

    I have to plot SPI_RX Buff value on the Keil5 logic analyzer, but I unable to plot this value may  I know 

    Is this a supported function?

    if it is supported then how to read that value?

    I got below errors. please let me know?

    Much Thanks!

Reply Children
No Data
Related