62 #include "../Common.h"
63 #include "../Configuration.h"
65 #include "ISO14443-2A.h"
67 #define CODEC_DEMOD_POWER_PORT PORTB
68 #define CODEC_DEMOD_POWER_MASK PIN1_bm
69 #define CODEC_DEMOD_IN_PORT PORTB
70 #define CODEC_DEMOD_IN_MASK (CODEC_DEMOD_IN_MASK0 | CODEC_DEMOD_IN_MASK1)
71 #define CODEC_DEMOD_IN_MASK0 PIN0_bm
72 #define CODEC_DEMOD_IN_MASK1 PIN2_bm
73 #define CODEC_DEMOD_IN_PINCTRL0 PIN0CTRL
74 #define CODEC_DEMOD_IN_PINCTRL1 PIN2CTRL
75 #define CODEC_DEMOD_IN_EVMUX0 EVSYS_CHMUX_PORTB_PIN0_gc
76 #define CODEC_DEMOD_IN_EVMUX1 EVSYS_CHMUX_PORTB_PIN2_gc
77 #define CODEC_DEMOD_IN_INT0_VECT PORTB_INT0_vect
78 #define CODEC_LOADMOD_PORT PORTC
79 #define CODEC_LOADMOD_MASK PIN6_bm
80 #define CODEC_CARRIER_IN_PORT PORTC
81 #define CODEC_CARRIER_IN_MASK PIN2_bm
82 #define CODEC_CARRIER_IN_PINCTRL PIN2CTRL
83 #define CODEC_CARRIER_IN_EVMUX EVSYS_CHMUX_PORTC_PIN2_gc
84 #define CODEC_SUBCARRIER_PORT PORTC
85 #define CODEC_SUBCARRIER_MASK_PSK PIN0_bm
86 #define CODEC_SUBCARRIER_MASK_OOK PIN1_bm
87 #define CODEC_SUBCARRIER_MASK (CODEC_SUBCARRIER_MASK_PSK | CODEC_SUBCARRIER_MASK_OOK)
88 #define CODEC_SUBCARRIER_TIMER TCC0
89 #define CODEC_SUBCARRIER_CC_PSK CCA
90 #define CODEC_SUBCARRIER_CC_OOK CCB
91 #define CODEC_SUBCARRIER_CCEN_PSK TC0_CCAEN_bm
92 #define CODEC_SUBCARRIER_CCEN_OOK TC0_CCBEN_bm
93 #define CODEC_TIMER_SAMPLING TCC1
94 #define CODEC_TIMER_SAMPLING_CCA_VECT TCC1_CCA_vect
95 #define CODEC_TIMER_LOADMOD TCD1
96 #define CODEC_TIMER_OVF_VECT TCD1_OVF_vect
98 #define CODEC_BUFFER_SIZE 256
100 #define CODEC_CARRIER_FREQ 13560000
102 extern uint8_t CodecBuffer[CODEC_BUFFER_SIZE];
104 INLINE
void CodecInit(
void) {
105 ActiveConfiguration.CodecInitFunc();
108 INLINE
void CodecTask(
void) {
109 ActiveConfiguration.CodecTaskFunc();
112 INLINE
void CodecSetDemodPower(
bool bOnOff) {
113 CODEC_DEMOD_POWER_PORT.DIRSET = CODEC_DEMOD_POWER_MASK;
116 CODEC_DEMOD_POWER_PORT.OUTSET = CODEC_DEMOD_POWER_MASK;
118 CODEC_DEMOD_POWER_PORT.OUTCLR = CODEC_DEMOD_POWER_MASK;