CryptoAuthLib v3.7.6
Microchip CryptoAuthentication Library
 
Loading...
Searching...
No Matches
hal_spi_harmony.c File Reference

ATCA Hardware abstraction layer for SPI over Harmony PLIB. More...

#include <string.h>
#include <stdio.h>
#include "atca_config.h"
#include "cryptoauthlib.h"
#include "atca_hal.h"
#include "atca_device.h"
#include "definitions.h"
#include "talib/talib_defines.h"
#include "talib/talib_fce.h"

Functions

ATCA_STATUS hal_spi_discover_buses (int spi_buses[], int max_buses)
 discover spi buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the a-priori knowledge
 
ATCA_STATUS hal_spi_discover_devices (int bus_num, ATCAIfaceCfg cfg[], int *found)
 discover any TA10x devices on a given logical bus number
 
ATCA_STATUS hal_spi_init (ATCAIface iface, ATCAIfaceCfg *cfg)
 initialize an SPI interface using given config
 
ATCA_STATUS hal_spi_post_init (ATCAIface iface)
 HAL implementation of SPI post init.
 
ATCA_STATUS hal_spi_select (ATCAIface iface)
 HAL implementation to assert the device chip select.
 
ATCA_STATUS hal_spi_deselect (ATCAIface iface)
 HAL implementation to deassert the device chip select.
 
ATCA_STATUS hal_spi_send (ATCAIface iface, uint8_t word_address, uint8_t *txdata, int txlength)
 HAL implementation of SPI send over Harmony.
 
ATCA_STATUS hal_spi_receive (ATCAIface iface, uint8_t word_address, uint8_t *rxdata, uint16_t *rxlength)
 HAL implementation of SPI receive function for HARMONY SPI.
 
ATCA_STATUS hal_spi_control (ATCAIface iface, uint8_t option, void *param, size_t paramlen)
 Perform control operations for the kit protocol.
 
ATCA_STATUS hal_spi_release (void *hal_data)
 manages reference count on given bus and releases resource if no more refences exist
 

Detailed Description

ATCA Hardware abstraction layer for SPI over Harmony PLIB.

This code is structured in two parts. Part 1 is the connection of the ATCA HAL API to the physical SPI implementation. Part 2 is the Harmony SPI primitives to set up the interface.

Prerequisite: add SERCOM SPI Master Interrupt support to application in Mplab Harmony 3