initial commit
This commit is contained in:
70
project/ble_peripheral/ble_app_vivaMayo/spi2_bus.h
Normal file
70
project/ble_peripheral/ble_app_vivaMayo/spi2_bus.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/*******************************************************************************
|
||||
* @file spi2_bus.h
|
||||
* @brief Shared SPI2 Bus Manager for ADA2200 and W25Q32RV Flash
|
||||
* @author Charles KWON <charleskwon@medithings.co.kr>
|
||||
* @date 2025-02-03
|
||||
*
|
||||
* @details Both ADA2200 (Lock-in Amp) and W25Q32RV (Flash) share SPI2 bus.
|
||||
* This module manages bus initialization and provides access.
|
||||
* Device selection is done via individual CS pins:
|
||||
* - ADA2200: CS = P0.13
|
||||
* - W25Q32RV: CS = P0.24
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef SPI2_BUS_H
|
||||
#define SPI2_BUS_H
|
||||
|
||||
#include "nrf_drv_spi.h"
|
||||
#include "sdk_errors.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
/*==============================================================================
|
||||
* SPI2 BUS CONFIGURATION
|
||||
*============================================================================*/
|
||||
|
||||
#define SPI2_BUS_INSTANCE 2
|
||||
|
||||
/* Shared SPI pins */
|
||||
#define SPI2_SCK_PIN 14 /* P0.14 */
|
||||
#define SPI2_MISO_PIN 15 /* P0.15 */
|
||||
#define SPI2_MOSI_PIN 16 /* P0.16 */
|
||||
|
||||
/* Device CS pins (active low) */
|
||||
#define SPI2_CS_ADA2200 13 /* P0.13 - Lock-in Amplifier */
|
||||
#define SPI2_CS_FLASH 24 /* P0.24 - W25Q32RV Flash */
|
||||
|
||||
/*==============================================================================
|
||||
* PUBLIC FUNCTIONS
|
||||
*============================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Initialize SPI2 bus (call once at startup)
|
||||
* @return NRF_SUCCESS or error code
|
||||
*/
|
||||
ret_code_t spi2_bus_init(void);
|
||||
|
||||
/**
|
||||
* @brief Uninitialize SPI2 bus
|
||||
*/
|
||||
void spi2_bus_uninit(void);
|
||||
|
||||
/**
|
||||
* @brief Check if SPI2 bus is initialized
|
||||
* @return true if initialized
|
||||
*/
|
||||
bool spi2_bus_is_initialized(void);
|
||||
|
||||
/**
|
||||
* @brief Get SPI2 bus instance for transfers
|
||||
* @return Pointer to SPI instance (NULL if not initialized)
|
||||
*/
|
||||
const nrf_drv_spi_t* spi2_bus_get_instance(void);
|
||||
|
||||
/**
|
||||
* @brief Perform SPI transfer (blocking mode)
|
||||
* @note Caller must manage CS pin manually
|
||||
*/
|
||||
ret_code_t spi2_bus_transfer(const uint8_t *tx_buf, uint8_t tx_len,
|
||||
uint8_t *rx_buf, uint8_t rx_len);
|
||||
|
||||
#endif /* SPI2_BUS_H */
|
||||
Reference in New Issue
Block a user