File ns_spi.c
FileList > neuralSPOT > neuralspot > ns-spi > src > ns_spi.c
Go to the source code of this file
Generic SPI driver. More...
#include <string.h>
#include "ns_spi.h"
#include "am_bsp.h"
#include "am_mcu_apollo.h"
#include "am_util.h"
#include "ns_ambiqsuite_harness.h"
Public Attributes
Type | Name |
---|---|
am_hal_gpio_pincfg_t | NS_AM_BSP_GPIO_IOM1_CS = /* multi line expression */ |
am_hal_gpio_pincfg_t | NS_AM_BSP_GPIO_IOM1_MISO = /* multi line expression */ |
am_hal_gpio_pincfg_t | NS_AM_BSP_GPIO_IOM1_MOSI = /* multi line expression */ |
am_hal_gpio_pincfg_t | NS_AM_BSP_GPIO_IOM1_SCK = /* multi line expression */ |
ns_spi_config_t | ns_spi_config |
uint32_t | ns_spi_tcb_command_buffer |
Public Functions
Type | Name |
---|---|
void | ns_high_drive_pins_enable () |
void | ns_spi_handle_iom_isr (void) |
uint32_t | ns_spi_interface_init (ns_spi_config_t * cfg, uint32_t speed, am_hal_iom_spi_mode_e mode) Initialize the SPI interface. |
uint32_t | ns_spi_read (ns_spi_config_t * cfg, const void * buf, uint32_t bufLen, uint64_t reg, uint32_t regLen, uint32_t csPin) Read from a SPI device. The SPI device is selected by the csPin parameter. |
uint32_t | ns_spi_read_dma (ns_spi_config_t * cfg, const void * buf, uint32_t bufLen, uint64_t reg, uint32_t regLen, uint32_t csPin) Issure DMA read, the cfg->callback will be called when the transfer is complete. |
uint32_t | ns_spi_transfer (ns_spi_config_t * cfg, const void * txBuf, const void * rxBuf, uint32_t size, uint32_t csPin) Transfer data to/from a SPI device. The SPI device is selected by the csPin parameter. |
uint32_t | ns_spi_write (ns_spi_config_t * cfg, const void * buf, uint32_t bufLen, uint64_t reg, uint32_t regLen, uint32_t csPin) Write to a SPI device. The SPI device is selected by the csPin parameter. |
Public Static Functions
Type | Name |
---|---|
void | ns_spi_dma_read_complete_cb (void * pCallbackCtxt, uint32_t ui32TransactionStatus) |
Macros
Type | Name |
---|---|
define | NS_SPI_DMA_MAX_XFER_SIZE 4095 |
Detailed Description
Author:
Adam Page
Version:
0.1
Date:
2022-08-26
Copyright:
Copyright (c) 2022
Public Attributes Documentation
variable NS_AM_BSP_GPIO_IOM1_CS
am_hal_gpio_pincfg_t NS_AM_BSP_GPIO_IOM1_CS;
variable NS_AM_BSP_GPIO_IOM1_MISO
am_hal_gpio_pincfg_t NS_AM_BSP_GPIO_IOM1_MISO;
variable NS_AM_BSP_GPIO_IOM1_MOSI
am_hal_gpio_pincfg_t NS_AM_BSP_GPIO_IOM1_MOSI;
variable NS_AM_BSP_GPIO_IOM1_SCK
am_hal_gpio_pincfg_t NS_AM_BSP_GPIO_IOM1_SCK;
variable ns_spi_config
ns_spi_config_t ns_spi_config;
variable ns_spi_tcb_command_buffer
uint32_t ns_spi_tcb_command_buffer[NS_SPI_DMA_MAX_XFER_SIZE+1];
Public Functions Documentation
function ns_high_drive_pins_enable
void ns_high_drive_pins_enable ()
function ns_spi_handle_iom_isr
void ns_spi_handle_iom_isr (
void
)
IOM ISRs Take over correct IOM ISR.
function ns_spi_interface_init
Initialize the SPI interface.
uint32_t ns_spi_interface_init (
ns_spi_config_t * cfg,
uint32_t speed,
am_hal_iom_spi_mode_e mode
)
Parameters:
cfg
SPI Configurationspeed
Bus speed in Hzmode
SPI mode (CPOL, CPHA)
Returns:
uint32_t
function ns_spi_read
Read from a SPI device. The SPI device is selected by the csPin parameter.
uint32_t ns_spi_read (
ns_spi_config_t * cfg,
const void * buf,
uint32_t bufLen,
uint64_t reg,
uint32_t regLen,
uint32_t csPin
)
Parameters:
cfg
SPI Configurationbuf
Buffer to read intobufLen
Buffer lengthreg
Register to read fromregLen
Register lengthcsPin
CS pin number
Returns:
uint32_t
function ns_spi_read_dma
Issure DMA read, the cfg->callback will be called when the transfer is complete.
uint32_t ns_spi_read_dma (
ns_spi_config_t * cfg,
const void * buf,
uint32_t bufLen,
uint64_t reg,
uint32_t regLen,
uint32_t csPin
)
Parameters:
cfg
buf
bufLen
reg
regLen
csPin
Returns:
uint32_t
function ns_spi_transfer
Transfer data to/from a SPI device. The SPI device is selected by the csPin parameter.
uint32_t ns_spi_transfer (
ns_spi_config_t * cfg,
const void * txBuf,
const void * rxBuf,
uint32_t size,
uint32_t csPin
)
Parameters:
cfg
SPI ConfigurationtxBuf
Transmit bufferrxBuf
Receive buffersize
Size of the transfercsPin
CS pin number
Returns:
uint32_t
function ns_spi_write
Write to a SPI device. The SPI device is selected by the csPin parameter.
uint32_t ns_spi_write (
ns_spi_config_t * cfg,
const void * buf,
uint32_t bufLen,
uint64_t reg,
uint32_t regLen,
uint32_t csPin
)
Parameters:
cfg
SPI Configurationbuf
Buffer to write frombufLen
Buffer lengthreg
Register to write toregLen
Register lengthcsPin
CS pin number
Returns:
uint32_t
Public Static Functions Documentation
function ns_spi_dma_read_complete_cb
static void ns_spi_dma_read_complete_cb (
void * pCallbackCtxt,
uint32_t ui32TransactionStatus
)
Macro Definition Documentation
define NS_SPI_DMA_MAX_XFER_SIZE
#define NS_SPI_DMA_MAX_XFER_SIZE `4095`
The documentation for this class was generated from the following file neuralSPOT/neuralspot/ns-spi/src/ns_spi.c