CryptoAuthLib
Microchip CryptoAuthentication Library
swi_bitbang_samd21.h
Go to the documentation of this file.
1 
28 #ifndef SWI_BITBANG_SAMD21_H_
29 #define SWI_BITBANG_SAMD21_H_
30 
31 #include "atca_status.h"
32 #include <delay.h>
33 
34 
35 #define MAX_SWI_BUSES 36
36 
37 
38 typedef struct
39 {
41 } SWIBuses;
42 
44 
45 
52 
55 #define BIT_DELAY_1L delay_us(3)
56 #define BIT_DELAY_1H delay_us(3)
58 
61 #define BIT_DELAY_5 delay_us(26) // considering pin set delay
62 
65 #define BIT_DELAY_7 delay_us(34) // considering pin set delay
66 
69 #define RX_TX_DELAY delay_us(65)
70 
71 
74 #define START_PULSE_TIME_OUT (600)
75 
81 #define ZERO_PULSE_TIME_OUT (40)
82 
92 void swi_set_pin(uint8_t id);
93 
94 
95 
99 void swi_enable(void);
100 
104 void swi_disable(void);
105 
111 void swi_set_signal_pin(uint8_t is_high);
112 
116 void swi_send_wake_token(void);
117 
124 void swi_send_bytes(uint8_t count, uint8_t *buffer);
125 
131 void swi_send_byte(uint8_t byte);
132 
141 ATCA_STATUS swi_receive_bytes(uint8_t count, uint8_t *buffer);
142 
143 
144 #endif /* SWI_BITBANG_SAMD21_H_ */
void swi_send_byte(uint8_t byte)
Send one byte.
Definition: swi_bitbang_samd21.c:123
void swi_set_pin(uint8_t id)
Set SWI signal pin. Other functions will use this pin.
Definition: swi_bitbang_samd21.c:43
uint8_t pin_sda
Definition: i2c_bitbang_samd21.c:40
void swi_send_wake_token(void)
Send a Wake Token.
Definition: swi_bitbang_samd21.c:78
ATCA_STATUS
Definition: atca_status.h:41
ATCA_STATUS swi_receive_bytes(uint8_t count, uint8_t *buffer)
Receive a number of bytes.This function should not be called directly ,instead should use hal_swi_rec...
Definition: swi_bitbang_samd21.c:128
void swi_disable(void)
Configure GPIO pin for SWI signal as input.
Definition: swi_bitbang_samd21.c:57
Definition: swi_bitbang_samd21.h:38
#define MAX_SWI_BUSES
SAMD21 xplainned pro has 36 free GPIO pins available.
Definition: swi_bitbang_samd21.h:35
void swi_enable(void)
Configure GPIO pin for SWI signal as output.
Definition: swi_bitbang_samd21.c:48
void swi_set_signal_pin(uint8_t is_high)
Set signal pin Low or High.
Definition: swi_bitbang_samd21.c:66
SWIBuses swi_buses_default
Definition: swi_bitbang_samd21.c:36
Microchip Crypto Auth status codes.
void swi_send_bytes(uint8_t count, uint8_t *buffer)
Send a number of bytes.This function should not be called directly ,instead should use hal_swi_send()...
Definition: swi_bitbang_samd21.c:85