CryptoAuthLib
Microchip CryptoAuthentication Library
HAL Directory - Purpose

This directory contains all the Hardware Abstraction Layer (HAL) files used to adapt the upper levels of atca-ng and abstractions to physical hardware.

HAL contains physical implementations for I2C, SWI, SPI, UART and timers for specific hardware platforms.

Include just those HAL files you require based on platform type.

CryptoAuthLib Supported HAL Layers

HAL Layers files are combined into groups. Initial group is generic files that are typically included in a project. Files are then broken out by uController Family and or Operating System Interface.

Protocol Files Interface Files API Notes
atca atca_hal.c/h For all projects
kit protocol kit_protocol.c/h For all Kit Protocol projects
kit_phy.h
hal_i2c_bitbang.c/h ASF For all I2C Bitbang projects
hal_swi_bitbang.c/h ASF For all SWI Bitbang projects

Most microcontrollers supported by Atmel START have generic drivers depending on the interface.

START Micros Interface Files API Notes
hal_timer_start.c START Timer implementation
I2C hal_i2c_start.c/h START
SWI swi_uart_start.c/h START SWI using UART
AVR Micros Interface Files API Notes
at90usb1287 I2C hal_at90usb1287_i2c_asf.c/h ASF
hal_at90usb1287_timer_asf.c ASF
SWI swi_uart_at90usb1287_asf.c/h ASF
xmega_a3bu I2C hal_xmega_a3bu_i2c_asf.c/h ASF
hal_xmega_a3bu_timer_asf.c ASF
SWI swi_uart_xmaga_a3bu_asf.c/h ASF
SAM Micros Interface Files API Notes
sam4s I2C hal_sam4s_i2c_asf.c/h ASF
hal_sam4s_timer_asf.c ASF
samb11 I2C hal_samb11_i2c_asf.c/h ASF
hal_samb11_timer_asf.c ASF
samd21 I2C hal_samd21_i2c_asf.c/h ASF
hal_samd21_timer_asf.c ASF For all samd21 ASF projects
samd21 I2C i2c_bitbang_samd21.c/h ASF For samd21 I2C bitbang projects
samd21 SWI swi_bitbang_samd21.c/h ASF For samd21 SWI bitbang projects
samd21 SWI swi_uart_samd21.c/h ASF For samd21 SWI uart projects
samg55 I2C hal_samg55_i2c_asf.c/h ASF
hal_samg55_timer_asf.c ASF
samv71 I2C hal_samv71_i2c_asf.c/h ASF
hal_samv71_timer_asf.c ASF
PIC Micros Interface Files API Notes
pic32mx695f512h I2C hal_pic32mx695f512h.c/h plib.h For pic32mx695f512h Standalone Mplab projects
hal_pic32mx695f512h_timer.c plib.h For pic32mx695f512h Standalone Mplab projects
PIC32MZ2048 I2C hal_pic32mz2048efm_i2c.c/h
hal_pic32mz2048efm_timer.c
OS Interface Files API Notes
MS Windows kit-cdc hal_win_kit_cdc.c/h windows.h For all windows USB CDC projects
MS Windows kit-hid hal_win_kit_hid.c/h windows.h For all windows USB HID projects
setupapi.h
MS Windows hal_win_timer.c windows.h For all windows projects
Linux I2C hal_linux_i2c_userspace.c/h i2c-dev
Linux kit-cdc hal_linux_kit_cdc.c/h fopen For USB Linux CDC projects
Linux kit-hid hal_linux_kit_hid.c/h udev For USB Linux HID Projects
Linux/Mac hal_linux_timer.c For all Linux/Mac projects
All kit-hid hal_all_platforms_kit_hidapi.c/h hidapi Works for Windows, Linux, and Mac
freeRTOS hal_freertos.c freeRTOS common routines