/* ser_phy API function */ uint32_t ser_phy_open(ser_phy_events_handler_t events_handler) { if (m_spi_master_state != SER_PHY_STATE_DISABLED) { return NRF_ERROR_INVALID_STATE; } if (events_handler == NULL) { return NRF_ERROR_NULL; } uint32_t err_code = NRF_SUCCESS; ser_phy_init_gpio(); m_spi_master_state = SER_PHY_STATE_IDLE; m_callback_events_handler = events_handler; spi_master_config_t spi_master_config = SPI_MASTER_INIT_DEFAULT; spi_master_config.SPI_Pin_SCK = SER_PHY_SPI_MASTER_PIN_SCK; spi_master_config.SPI_Pin_MISO = SER_PHY_SPI_MASTER_PIN_MISO; spi_master_config.SPI_Pin_MOSI = SER_PHY_SPI_MASTER_PIN_MOSI; spi_master_config.SPI_Pin_SS = SER_PHY_SPI_MASTER_PIN_SLAVE_SELECT; spi_master_config.SPI_PriorityIRQ = APP_IRQ_PRIORITY_MID; err_code = spi_master_open(SER_PHY_SPI_MASTER, &spi_master_config); if (err_code != NRF_SUCCESS) { return err_code; } spi_master_evt_handler_reg(SER_PHY_SPI_MASTER, ser_phy_spi_master_event_handler); ser_phy_init_gpiote(); ser_phy_init_PendSV(); return err_code; }
/* ser_phy API function */ uint32_t ser_phy_open(ser_phy_events_handler_t events_handler) { if (m_spi_master_state != SER_PHY_STATE_DISABLED) { return NRF_ERROR_INVALID_STATE; } if (events_handler == NULL) { return NRF_ERROR_NULL; } uint32_t err_code = NRF_SUCCESS; m_spi_master_state = SER_PHY_STATE_IDLE; m_callback_events_handler = events_handler; ser_phy_init_gpiote(); /* Configure SPI Master driver */ spi_master_config_t spi_master_config; spi_master_config.SPI_Freq = SPI_FREQUENCY_FREQUENCY_M1; spi_master_config.SPI_Pin_SCK = SER_PHY_SPI_MASTER_PIN_SCK; spi_master_config.SPI_Pin_MISO = SER_PHY_SPI_MASTER_PIN_MISO; spi_master_config.SPI_Pin_MOSI = SER_PHY_SPI_MASTER_PIN_MOSI; spi_master_config.SPI_Pin_SS = SER_PHY_SPI_MASTER_PIN_SLAVE_SELECT; spi_master_config.SPI_ORDER = SPI_CONFIG_ORDER_LsbFirst; spi_master_config.SPI_CPOL = SPI_CONFIG_CPOL_ActiveHigh; spi_master_config.SPI_CPHA = SPI_CONFIG_CPHA_Leading; err_code = spi_master_open(SER_PHY_SPI_MASTER, &spi_master_config); if (err_code != NRF_SUCCESS) { return err_code; } #ifdef _SPI_5W_ spi_5W_master_evt_handler_reg(SER_PHY_SPI_MASTER, ser_phy_spi_master_event_handler); #else spi_master_evt_handler_reg(SER_PHY_SPI_MASTER, ser_phy_spi_master_event_handler); #endif ser_phy_init_pendSV(); return err_code; }