Skip to content

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 Configuration
  • speed Bus speed in Hz
  • mode 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 Configuration
  • buf Buffer to read into
  • bufLen Buffer length
  • reg Register to read from
  • regLen Register length
  • csPin 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 Configuration
  • txBuf Transmit buffer
  • rxBuf Receive buffer
  • size Size of the transfer
  • csPin 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 Configuration
  • buf Buffer to write from
  • bufLen Buffer length
  • reg Register to write to
  • regLen Register length
  • csPin 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