SAM4SD32 (SAM4S-EK2)
Loading...
Searching...
No Matches
component_adc.h
Go to the documentation of this file.
1
31/*
32 * Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
33 */
34
35#ifndef _SAM4S_ADC_COMPONENT_
36#define _SAM4S_ADC_COMPONENT_
37
38/* ============================================================================= */
40/* ============================================================================= */
43
44#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
46typedef struct {
47 __O uint32_t ADC_CR;
48 __IO uint32_t ADC_MR;
49 __IO uint32_t ADC_SEQR1;
50 __IO uint32_t ADC_SEQR2;
51 __O uint32_t ADC_CHER;
52 __O uint32_t ADC_CHDR;
53 __I uint32_t ADC_CHSR;
54 __I uint32_t Reserved1[1];
55 __I uint32_t ADC_LCDR;
56 __O uint32_t ADC_IER;
57 __O uint32_t ADC_IDR;
58 __I uint32_t ADC_IMR;
59 __I uint32_t ADC_ISR;
60 __I uint32_t Reserved2[2];
61 __I uint32_t ADC_OVER;
62 __IO uint32_t ADC_EMR;
63 __IO uint32_t ADC_CWR;
64 __IO uint32_t ADC_CGR;
65 __IO uint32_t ADC_COR;
66 __I uint32_t ADC_CDR[16];
67 __I uint32_t Reserved3[1];
68 __IO uint32_t ADC_ACR;
69 __I uint32_t Reserved4[19];
70 __IO uint32_t ADC_WPMR;
71 __I uint32_t ADC_WPSR;
72 __I uint32_t Reserved5[5];
73 __IO uint32_t ADC_RPR;
74 __IO uint32_t ADC_RCR;
75 __I uint32_t Reserved6[2];
76 __IO uint32_t ADC_RNPR;
77 __IO uint32_t ADC_RNCR;
78 __I uint32_t Reserved7[2];
79 __O uint32_t ADC_PTCR;
80 __I uint32_t ADC_PTSR;
81} Adc;
82#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
83/* -------- ADC_CR : (ADC Offset: 0x00) Control Register -------- */
84#define ADC_CR_SWRST (0x1u << 0)
85#define ADC_CR_START (0x1u << 1)
86#define ADC_CR_AUTOCAL (0x1u << 3)
87/* -------- ADC_MR : (ADC Offset: 0x04) Mode Register -------- */
88#define ADC_MR_TRGEN (0x1u << 0)
89#define ADC_MR_TRGEN_DIS (0x0u << 0)
90#define ADC_MR_TRGEN_EN (0x1u << 0)
91#define ADC_MR_TRGSEL_Pos 1
92#define ADC_MR_TRGSEL_Msk (0x7u << ADC_MR_TRGSEL_Pos)
93#define ADC_MR_TRGSEL_ADC_TRIG0 (0x0u << 1)
94#define ADC_MR_TRGSEL_ADC_TRIG1 (0x1u << 1)
95#define ADC_MR_TRGSEL_ADC_TRIG2 (0x2u << 1)
96#define ADC_MR_TRGSEL_ADC_TRIG3 (0x3u << 1)
97#define ADC_MR_TRGSEL_ADC_TRIG4 (0x4u << 1)
98#define ADC_MR_TRGSEL_ADC_TRIG5 (0x5u << 1)
99#define ADC_MR_LOWRES (0x1u << 4)
100#define ADC_MR_LOWRES_BITS_12 (0x0u << 4)
101#define ADC_MR_LOWRES_BITS_10 (0x1u << 4)
102#define ADC_MR_SLEEP (0x1u << 5)
103#define ADC_MR_SLEEP_NORMAL (0x0u << 5)
104#define ADC_MR_SLEEP_SLEEP (0x1u << 5)
105#define ADC_MR_FWUP (0x1u << 6)
106#define ADC_MR_FWUP_OFF (0x0u << 6)
107#define ADC_MR_FWUP_ON (0x1u << 6)
108#define ADC_MR_FREERUN (0x1u << 7)
109#define ADC_MR_FREERUN_OFF (0x0u << 7)
110#define ADC_MR_FREERUN_ON (0x1u << 7)
111#define ADC_MR_PRESCAL_Pos 8
112#define ADC_MR_PRESCAL_Msk (0xffu << ADC_MR_PRESCAL_Pos)
113#define ADC_MR_PRESCAL(value) ((ADC_MR_PRESCAL_Msk & ((value) << ADC_MR_PRESCAL_Pos)))
114#define ADC_MR_STARTUP_Pos 16
115#define ADC_MR_STARTUP_Msk (0xfu << ADC_MR_STARTUP_Pos)
116#define ADC_MR_STARTUP_SUT0 (0x0u << 16)
117#define ADC_MR_STARTUP_SUT8 (0x1u << 16)
118#define ADC_MR_STARTUP_SUT16 (0x2u << 16)
119#define ADC_MR_STARTUP_SUT24 (0x3u << 16)
120#define ADC_MR_STARTUP_SUT64 (0x4u << 16)
121#define ADC_MR_STARTUP_SUT80 (0x5u << 16)
122#define ADC_MR_STARTUP_SUT96 (0x6u << 16)
123#define ADC_MR_STARTUP_SUT112 (0x7u << 16)
124#define ADC_MR_STARTUP_SUT512 (0x8u << 16)
125#define ADC_MR_STARTUP_SUT576 (0x9u << 16)
126#define ADC_MR_STARTUP_SUT640 (0xAu << 16)
127#define ADC_MR_STARTUP_SUT704 (0xBu << 16)
128#define ADC_MR_STARTUP_SUT768 (0xCu << 16)
129#define ADC_MR_STARTUP_SUT832 (0xDu << 16)
130#define ADC_MR_STARTUP_SUT896 (0xEu << 16)
131#define ADC_MR_STARTUP_SUT960 (0xFu << 16)
132#define ADC_MR_SETTLING_Pos 20
133#define ADC_MR_SETTLING_Msk (0x3u << ADC_MR_SETTLING_Pos)
134#define ADC_MR_SETTLING_AST3 (0x0u << 20)
135#define ADC_MR_SETTLING_AST5 (0x1u << 20)
136#define ADC_MR_SETTLING_AST9 (0x2u << 20)
137#define ADC_MR_SETTLING_AST17 (0x3u << 20)
138#define ADC_MR_ANACH (0x1u << 23)
139#define ADC_MR_ANACH_NONE (0x0u << 23)
140#define ADC_MR_ANACH_ALLOWED (0x1u << 23)
141#define ADC_MR_TRACKTIM_Pos 24
142#define ADC_MR_TRACKTIM_Msk (0xfu << ADC_MR_TRACKTIM_Pos)
143#define ADC_MR_TRACKTIM(value) ((ADC_MR_TRACKTIM_Msk & ((value) << ADC_MR_TRACKTIM_Pos)))
144#define ADC_MR_TRANSFER_Pos 28
145#define ADC_MR_TRANSFER_Msk (0x3u << ADC_MR_TRANSFER_Pos)
146#define ADC_MR_TRANSFER(value) ((ADC_MR_TRANSFER_Msk & ((value) << ADC_MR_TRANSFER_Pos)))
147#define ADC_MR_USEQ (0x1u << 31)
148#define ADC_MR_USEQ_NUM_ORDER (0x0u << 31)
149#define ADC_MR_USEQ_REG_ORDER (0x1u << 31)
150/* -------- ADC_SEQR1 : (ADC Offset: 0x08) Channel Sequence Register 1 -------- */
151#define ADC_SEQR1_USCH1_Pos 0
152#define ADC_SEQR1_USCH1_Msk (0xfu << ADC_SEQR1_USCH1_Pos)
153#define ADC_SEQR1_USCH1(value) ((ADC_SEQR1_USCH1_Msk & ((value) << ADC_SEQR1_USCH1_Pos)))
154#define ADC_SEQR1_USCH2_Pos 4
155#define ADC_SEQR1_USCH2_Msk (0xfu << ADC_SEQR1_USCH2_Pos)
156#define ADC_SEQR1_USCH2(value) ((ADC_SEQR1_USCH2_Msk & ((value) << ADC_SEQR1_USCH2_Pos)))
157#define ADC_SEQR1_USCH3_Pos 8
158#define ADC_SEQR1_USCH3_Msk (0xfu << ADC_SEQR1_USCH3_Pos)
159#define ADC_SEQR1_USCH3(value) ((ADC_SEQR1_USCH3_Msk & ((value) << ADC_SEQR1_USCH3_Pos)))
160#define ADC_SEQR1_USCH4_Pos 12
161#define ADC_SEQR1_USCH4_Msk (0xfu << ADC_SEQR1_USCH4_Pos)
162#define ADC_SEQR1_USCH4(value) ((ADC_SEQR1_USCH4_Msk & ((value) << ADC_SEQR1_USCH4_Pos)))
163#define ADC_SEQR1_USCH5_Pos 16
164#define ADC_SEQR1_USCH5_Msk (0xfu << ADC_SEQR1_USCH5_Pos)
165#define ADC_SEQR1_USCH5(value) ((ADC_SEQR1_USCH5_Msk & ((value) << ADC_SEQR1_USCH5_Pos)))
166#define ADC_SEQR1_USCH6_Pos 20
167#define ADC_SEQR1_USCH6_Msk (0xfu << ADC_SEQR1_USCH6_Pos)
168#define ADC_SEQR1_USCH6(value) ((ADC_SEQR1_USCH6_Msk & ((value) << ADC_SEQR1_USCH6_Pos)))
169#define ADC_SEQR1_USCH7_Pos 24
170#define ADC_SEQR1_USCH7_Msk (0xfu << ADC_SEQR1_USCH7_Pos)
171#define ADC_SEQR1_USCH7(value) ((ADC_SEQR1_USCH7_Msk & ((value) << ADC_SEQR1_USCH7_Pos)))
172#define ADC_SEQR1_USCH8_Pos 28
173#define ADC_SEQR1_USCH8_Msk (0xfu << ADC_SEQR1_USCH8_Pos)
174#define ADC_SEQR1_USCH8(value) ((ADC_SEQR1_USCH8_Msk & ((value) << ADC_SEQR1_USCH8_Pos)))
175/* -------- ADC_SEQR2 : (ADC Offset: 0x0C) Channel Sequence Register 2 -------- */
176#define ADC_SEQR2_USCH9_Pos 0
177#define ADC_SEQR2_USCH9_Msk (0xfu << ADC_SEQR2_USCH9_Pos)
178#define ADC_SEQR2_USCH9(value) ((ADC_SEQR2_USCH9_Msk & ((value) << ADC_SEQR2_USCH9_Pos)))
179#define ADC_SEQR2_USCH10_Pos 4
180#define ADC_SEQR2_USCH10_Msk (0xfu << ADC_SEQR2_USCH10_Pos)
181#define ADC_SEQR2_USCH10(value) ((ADC_SEQR2_USCH10_Msk & ((value) << ADC_SEQR2_USCH10_Pos)))
182#define ADC_SEQR2_USCH11_Pos 8
183#define ADC_SEQR2_USCH11_Msk (0xfu << ADC_SEQR2_USCH11_Pos)
184#define ADC_SEQR2_USCH11(value) ((ADC_SEQR2_USCH11_Msk & ((value) << ADC_SEQR2_USCH11_Pos)))
185#define ADC_SEQR2_USCH12_Pos 12
186#define ADC_SEQR2_USCH12_Msk (0xfu << ADC_SEQR2_USCH12_Pos)
187#define ADC_SEQR2_USCH12(value) ((ADC_SEQR2_USCH12_Msk & ((value) << ADC_SEQR2_USCH12_Pos)))
188#define ADC_SEQR2_USCH13_Pos 16
189#define ADC_SEQR2_USCH13_Msk (0xfu << ADC_SEQR2_USCH13_Pos)
190#define ADC_SEQR2_USCH13(value) ((ADC_SEQR2_USCH13_Msk & ((value) << ADC_SEQR2_USCH13_Pos)))
191#define ADC_SEQR2_USCH14_Pos 20
192#define ADC_SEQR2_USCH14_Msk (0xfu << ADC_SEQR2_USCH14_Pos)
193#define ADC_SEQR2_USCH14(value) ((ADC_SEQR2_USCH14_Msk & ((value) << ADC_SEQR2_USCH14_Pos)))
194#define ADC_SEQR2_USCH15_Pos 24
195#define ADC_SEQR2_USCH15_Msk (0xfu << ADC_SEQR2_USCH15_Pos)
196#define ADC_SEQR2_USCH15(value) ((ADC_SEQR2_USCH15_Msk & ((value) << ADC_SEQR2_USCH15_Pos)))
197/* -------- ADC_CHER : (ADC Offset: 0x10) Channel Enable Register -------- */
198#define ADC_CHER_CH0 (0x1u << 0)
199#define ADC_CHER_CH1 (0x1u << 1)
200#define ADC_CHER_CH2 (0x1u << 2)
201#define ADC_CHER_CH3 (0x1u << 3)
202#define ADC_CHER_CH4 (0x1u << 4)
203#define ADC_CHER_CH5 (0x1u << 5)
204#define ADC_CHER_CH6 (0x1u << 6)
205#define ADC_CHER_CH7 (0x1u << 7)
206#define ADC_CHER_CH8 (0x1u << 8)
207#define ADC_CHER_CH9 (0x1u << 9)
208#define ADC_CHER_CH10 (0x1u << 10)
209#define ADC_CHER_CH11 (0x1u << 11)
210#define ADC_CHER_CH12 (0x1u << 12)
211#define ADC_CHER_CH13 (0x1u << 13)
212#define ADC_CHER_CH14 (0x1u << 14)
213#define ADC_CHER_CH15 (0x1u << 15)
214/* -------- ADC_CHDR : (ADC Offset: 0x14) Channel Disable Register -------- */
215#define ADC_CHDR_CH0 (0x1u << 0)
216#define ADC_CHDR_CH1 (0x1u << 1)
217#define ADC_CHDR_CH2 (0x1u << 2)
218#define ADC_CHDR_CH3 (0x1u << 3)
219#define ADC_CHDR_CH4 (0x1u << 4)
220#define ADC_CHDR_CH5 (0x1u << 5)
221#define ADC_CHDR_CH6 (0x1u << 6)
222#define ADC_CHDR_CH7 (0x1u << 7)
223#define ADC_CHDR_CH8 (0x1u << 8)
224#define ADC_CHDR_CH9 (0x1u << 9)
225#define ADC_CHDR_CH10 (0x1u << 10)
226#define ADC_CHDR_CH11 (0x1u << 11)
227#define ADC_CHDR_CH12 (0x1u << 12)
228#define ADC_CHDR_CH13 (0x1u << 13)
229#define ADC_CHDR_CH14 (0x1u << 14)
230#define ADC_CHDR_CH15 (0x1u << 15)
231/* -------- ADC_CHSR : (ADC Offset: 0x18) Channel Status Register -------- */
232#define ADC_CHSR_CH0 (0x1u << 0)
233#define ADC_CHSR_CH1 (0x1u << 1)
234#define ADC_CHSR_CH2 (0x1u << 2)
235#define ADC_CHSR_CH3 (0x1u << 3)
236#define ADC_CHSR_CH4 (0x1u << 4)
237#define ADC_CHSR_CH5 (0x1u << 5)
238#define ADC_CHSR_CH6 (0x1u << 6)
239#define ADC_CHSR_CH7 (0x1u << 7)
240#define ADC_CHSR_CH8 (0x1u << 8)
241#define ADC_CHSR_CH9 (0x1u << 9)
242#define ADC_CHSR_CH10 (0x1u << 10)
243#define ADC_CHSR_CH11 (0x1u << 11)
244#define ADC_CHSR_CH12 (0x1u << 12)
245#define ADC_CHSR_CH13 (0x1u << 13)
246#define ADC_CHSR_CH14 (0x1u << 14)
247#define ADC_CHSR_CH15 (0x1u << 15)
248/* -------- ADC_LCDR : (ADC Offset: 0x20) Last Converted Data Register -------- */
249#define ADC_LCDR_LDATA_Pos 0
250#define ADC_LCDR_LDATA_Msk (0xfffu << ADC_LCDR_LDATA_Pos)
251#define ADC_LCDR_CHNB_Pos 12
252#define ADC_LCDR_CHNB_Msk (0xfu << ADC_LCDR_CHNB_Pos)
253/* -------- ADC_IER : (ADC Offset: 0x24) Interrupt Enable Register -------- */
254#define ADC_IER_EOC0 (0x1u << 0)
255#define ADC_IER_EOC1 (0x1u << 1)
256#define ADC_IER_EOC2 (0x1u << 2)
257#define ADC_IER_EOC3 (0x1u << 3)
258#define ADC_IER_EOC4 (0x1u << 4)
259#define ADC_IER_EOC5 (0x1u << 5)
260#define ADC_IER_EOC6 (0x1u << 6)
261#define ADC_IER_EOC7 (0x1u << 7)
262#define ADC_IER_EOC8 (0x1u << 8)
263#define ADC_IER_EOC9 (0x1u << 9)
264#define ADC_IER_EOC10 (0x1u << 10)
265#define ADC_IER_EOC11 (0x1u << 11)
266#define ADC_IER_EOC12 (0x1u << 12)
267#define ADC_IER_EOC13 (0x1u << 13)
268#define ADC_IER_EOC14 (0x1u << 14)
269#define ADC_IER_EOC15 (0x1u << 15)
270#define ADC_IER_EOCAL (0x1u << 23)
271#define ADC_IER_DRDY (0x1u << 24)
272#define ADC_IER_GOVRE (0x1u << 25)
273#define ADC_IER_COMPE (0x1u << 26)
274#define ADC_IER_ENDRX (0x1u << 27)
275#define ADC_IER_RXBUFF (0x1u << 28)
276/* -------- ADC_IDR : (ADC Offset: 0x28) Interrupt Disable Register -------- */
277#define ADC_IDR_EOC0 (0x1u << 0)
278#define ADC_IDR_EOC1 (0x1u << 1)
279#define ADC_IDR_EOC2 (0x1u << 2)
280#define ADC_IDR_EOC3 (0x1u << 3)
281#define ADC_IDR_EOC4 (0x1u << 4)
282#define ADC_IDR_EOC5 (0x1u << 5)
283#define ADC_IDR_EOC6 (0x1u << 6)
284#define ADC_IDR_EOC7 (0x1u << 7)
285#define ADC_IDR_EOC8 (0x1u << 8)
286#define ADC_IDR_EOC9 (0x1u << 9)
287#define ADC_IDR_EOC10 (0x1u << 10)
288#define ADC_IDR_EOC11 (0x1u << 11)
289#define ADC_IDR_EOC12 (0x1u << 12)
290#define ADC_IDR_EOC13 (0x1u << 13)
291#define ADC_IDR_EOC14 (0x1u << 14)
292#define ADC_IDR_EOC15 (0x1u << 15)
293#define ADC_IDR_EOCAL (0x1u << 23)
294#define ADC_IDR_DRDY (0x1u << 24)
295#define ADC_IDR_GOVRE (0x1u << 25)
296#define ADC_IDR_COMPE (0x1u << 26)
297#define ADC_IDR_ENDRX (0x1u << 27)
298#define ADC_IDR_RXBUFF (0x1u << 28)
299/* -------- ADC_IMR : (ADC Offset: 0x2C) Interrupt Mask Register -------- */
300#define ADC_IMR_EOC0 (0x1u << 0)
301#define ADC_IMR_EOC1 (0x1u << 1)
302#define ADC_IMR_EOC2 (0x1u << 2)
303#define ADC_IMR_EOC3 (0x1u << 3)
304#define ADC_IMR_EOC4 (0x1u << 4)
305#define ADC_IMR_EOC5 (0x1u << 5)
306#define ADC_IMR_EOC6 (0x1u << 6)
307#define ADC_IMR_EOC7 (0x1u << 7)
308#define ADC_IMR_EOC8 (0x1u << 8)
309#define ADC_IMR_EOC9 (0x1u << 9)
310#define ADC_IMR_EOC10 (0x1u << 10)
311#define ADC_IMR_EOC11 (0x1u << 11)
312#define ADC_IMR_EOC12 (0x1u << 12)
313#define ADC_IMR_EOC13 (0x1u << 13)
314#define ADC_IMR_EOC14 (0x1u << 14)
315#define ADC_IMR_EOC15 (0x1u << 15)
316#define ADC_IMR_EOCAL (0x1u << 23)
317#define ADC_IMR_DRDY (0x1u << 24)
318#define ADC_IMR_GOVRE (0x1u << 25)
319#define ADC_IMR_COMPE (0x1u << 26)
320#define ADC_IMR_ENDRX (0x1u << 27)
321#define ADC_IMR_RXBUFF (0x1u << 28)
322/* -------- ADC_ISR : (ADC Offset: 0x30) Interrupt Status Register -------- */
323#define ADC_ISR_EOC0 (0x1u << 0)
324#define ADC_ISR_EOC1 (0x1u << 1)
325#define ADC_ISR_EOC2 (0x1u << 2)
326#define ADC_ISR_EOC3 (0x1u << 3)
327#define ADC_ISR_EOC4 (0x1u << 4)
328#define ADC_ISR_EOC5 (0x1u << 5)
329#define ADC_ISR_EOC6 (0x1u << 6)
330#define ADC_ISR_EOC7 (0x1u << 7)
331#define ADC_ISR_EOC8 (0x1u << 8)
332#define ADC_ISR_EOC9 (0x1u << 9)
333#define ADC_ISR_EOC10 (0x1u << 10)
334#define ADC_ISR_EOC11 (0x1u << 11)
335#define ADC_ISR_EOC12 (0x1u << 12)
336#define ADC_ISR_EOC13 (0x1u << 13)
337#define ADC_ISR_EOC14 (0x1u << 14)
338#define ADC_ISR_EOC15 (0x1u << 15)
339#define ADC_ISR_EOCAL (0x1u << 23)
340#define ADC_ISR_DRDY (0x1u << 24)
341#define ADC_ISR_GOVRE (0x1u << 25)
342#define ADC_ISR_COMPE (0x1u << 26)
343#define ADC_ISR_ENDRX (0x1u << 27)
344#define ADC_ISR_RXBUFF (0x1u << 28)
345/* -------- ADC_OVER : (ADC Offset: 0x3C) Overrun Status Register -------- */
346#define ADC_OVER_OVRE0 (0x1u << 0)
347#define ADC_OVER_OVRE1 (0x1u << 1)
348#define ADC_OVER_OVRE2 (0x1u << 2)
349#define ADC_OVER_OVRE3 (0x1u << 3)
350#define ADC_OVER_OVRE4 (0x1u << 4)
351#define ADC_OVER_OVRE5 (0x1u << 5)
352#define ADC_OVER_OVRE6 (0x1u << 6)
353#define ADC_OVER_OVRE7 (0x1u << 7)
354#define ADC_OVER_OVRE8 (0x1u << 8)
355#define ADC_OVER_OVRE9 (0x1u << 9)
356#define ADC_OVER_OVRE10 (0x1u << 10)
357#define ADC_OVER_OVRE11 (0x1u << 11)
358#define ADC_OVER_OVRE12 (0x1u << 12)
359#define ADC_OVER_OVRE13 (0x1u << 13)
360#define ADC_OVER_OVRE14 (0x1u << 14)
361#define ADC_OVER_OVRE15 (0x1u << 15)
362/* -------- ADC_EMR : (ADC Offset: 0x40) Extended Mode Register -------- */
363#define ADC_EMR_CMPMODE_Pos 0
364#define ADC_EMR_CMPMODE_Msk (0x3u << ADC_EMR_CMPMODE_Pos)
365#define ADC_EMR_CMPMODE_LOW (0x0u << 0)
366#define ADC_EMR_CMPMODE_HIGH (0x1u << 0)
367#define ADC_EMR_CMPMODE_IN (0x2u << 0)
368#define ADC_EMR_CMPMODE_OUT (0x3u << 0)
369#define ADC_EMR_CMPSEL_Pos 4
370#define ADC_EMR_CMPSEL_Msk (0xfu << ADC_EMR_CMPSEL_Pos)
371#define ADC_EMR_CMPSEL(value) ((ADC_EMR_CMPSEL_Msk & ((value) << ADC_EMR_CMPSEL_Pos)))
372#define ADC_EMR_CMPALL (0x1u << 9)
373#define ADC_EMR_TAG (0x1u << 24)
374/* -------- ADC_CWR : (ADC Offset: 0x44) Compare Window Register -------- */
375#define ADC_CWR_LOWTHRES_Pos 0
376#define ADC_CWR_LOWTHRES_Msk (0xfffu << ADC_CWR_LOWTHRES_Pos)
377#define ADC_CWR_LOWTHRES(value) ((ADC_CWR_LOWTHRES_Msk & ((value) << ADC_CWR_LOWTHRES_Pos)))
378#define ADC_CWR_HIGHTHRES_Pos 16
379#define ADC_CWR_HIGHTHRES_Msk (0xfffu << ADC_CWR_HIGHTHRES_Pos)
380#define ADC_CWR_HIGHTHRES(value) ((ADC_CWR_HIGHTHRES_Msk & ((value) << ADC_CWR_HIGHTHRES_Pos)))
381/* -------- ADC_CGR : (ADC Offset: 0x48) Channel Gain Register -------- */
382#define ADC_CGR_GAIN0_Pos 0
383#define ADC_CGR_GAIN0_Msk (0x3u << ADC_CGR_GAIN0_Pos)
384#define ADC_CGR_GAIN0(value) ((ADC_CGR_GAIN0_Msk & ((value) << ADC_CGR_GAIN0_Pos)))
385#define ADC_CGR_GAIN1_Pos 2
386#define ADC_CGR_GAIN1_Msk (0x3u << ADC_CGR_GAIN1_Pos)
387#define ADC_CGR_GAIN1(value) ((ADC_CGR_GAIN1_Msk & ((value) << ADC_CGR_GAIN1_Pos)))
388#define ADC_CGR_GAIN2_Pos 4
389#define ADC_CGR_GAIN2_Msk (0x3u << ADC_CGR_GAIN2_Pos)
390#define ADC_CGR_GAIN2(value) ((ADC_CGR_GAIN2_Msk & ((value) << ADC_CGR_GAIN2_Pos)))
391#define ADC_CGR_GAIN3_Pos 6
392#define ADC_CGR_GAIN3_Msk (0x3u << ADC_CGR_GAIN3_Pos)
393#define ADC_CGR_GAIN3(value) ((ADC_CGR_GAIN3_Msk & ((value) << ADC_CGR_GAIN3_Pos)))
394#define ADC_CGR_GAIN4_Pos 8
395#define ADC_CGR_GAIN4_Msk (0x3u << ADC_CGR_GAIN4_Pos)
396#define ADC_CGR_GAIN4(value) ((ADC_CGR_GAIN4_Msk & ((value) << ADC_CGR_GAIN4_Pos)))
397#define ADC_CGR_GAIN5_Pos 10
398#define ADC_CGR_GAIN5_Msk (0x3u << ADC_CGR_GAIN5_Pos)
399#define ADC_CGR_GAIN5(value) ((ADC_CGR_GAIN5_Msk & ((value) << ADC_CGR_GAIN5_Pos)))
400#define ADC_CGR_GAIN6_Pos 12
401#define ADC_CGR_GAIN6_Msk (0x3u << ADC_CGR_GAIN6_Pos)
402#define ADC_CGR_GAIN6(value) ((ADC_CGR_GAIN6_Msk & ((value) << ADC_CGR_GAIN6_Pos)))
403#define ADC_CGR_GAIN7_Pos 14
404#define ADC_CGR_GAIN7_Msk (0x3u << ADC_CGR_GAIN7_Pos)
405#define ADC_CGR_GAIN7(value) ((ADC_CGR_GAIN7_Msk & ((value) << ADC_CGR_GAIN7_Pos)))
406#define ADC_CGR_GAIN8_Pos 16
407#define ADC_CGR_GAIN8_Msk (0x3u << ADC_CGR_GAIN8_Pos)
408#define ADC_CGR_GAIN8(value) ((ADC_CGR_GAIN8_Msk & ((value) << ADC_CGR_GAIN8_Pos)))
409#define ADC_CGR_GAIN9_Pos 18
410#define ADC_CGR_GAIN9_Msk (0x3u << ADC_CGR_GAIN9_Pos)
411#define ADC_CGR_GAIN9(value) ((ADC_CGR_GAIN9_Msk & ((value) << ADC_CGR_GAIN9_Pos)))
412#define ADC_CGR_GAIN10_Pos 20
413#define ADC_CGR_GAIN10_Msk (0x3u << ADC_CGR_GAIN10_Pos)
414#define ADC_CGR_GAIN10(value) ((ADC_CGR_GAIN10_Msk & ((value) << ADC_CGR_GAIN10_Pos)))
415#define ADC_CGR_GAIN11_Pos 22
416#define ADC_CGR_GAIN11_Msk (0x3u << ADC_CGR_GAIN11_Pos)
417#define ADC_CGR_GAIN11(value) ((ADC_CGR_GAIN11_Msk & ((value) << ADC_CGR_GAIN11_Pos)))
418#define ADC_CGR_GAIN12_Pos 24
419#define ADC_CGR_GAIN12_Msk (0x3u << ADC_CGR_GAIN12_Pos)
420#define ADC_CGR_GAIN12(value) ((ADC_CGR_GAIN12_Msk & ((value) << ADC_CGR_GAIN12_Pos)))
421#define ADC_CGR_GAIN13_Pos 26
422#define ADC_CGR_GAIN13_Msk (0x3u << ADC_CGR_GAIN13_Pos)
423#define ADC_CGR_GAIN13(value) ((ADC_CGR_GAIN13_Msk & ((value) << ADC_CGR_GAIN13_Pos)))
424#define ADC_CGR_GAIN14_Pos 28
425#define ADC_CGR_GAIN14_Msk (0x3u << ADC_CGR_GAIN14_Pos)
426#define ADC_CGR_GAIN14(value) ((ADC_CGR_GAIN14_Msk & ((value) << ADC_CGR_GAIN14_Pos)))
427#define ADC_CGR_GAIN15_Pos 30
428#define ADC_CGR_GAIN15_Msk (0x3u << ADC_CGR_GAIN15_Pos)
429#define ADC_CGR_GAIN15(value) ((ADC_CGR_GAIN15_Msk & ((value) << ADC_CGR_GAIN15_Pos)))
430/* -------- ADC_COR : (ADC Offset: 0x4C) Channel Offset Register -------- */
431#define ADC_COR_OFF0 (0x1u << 0)
432#define ADC_COR_OFF1 (0x1u << 1)
433#define ADC_COR_OFF2 (0x1u << 2)
434#define ADC_COR_OFF3 (0x1u << 3)
435#define ADC_COR_OFF4 (0x1u << 4)
436#define ADC_COR_OFF5 (0x1u << 5)
437#define ADC_COR_OFF6 (0x1u << 6)
438#define ADC_COR_OFF7 (0x1u << 7)
439#define ADC_COR_OFF8 (0x1u << 8)
440#define ADC_COR_OFF9 (0x1u << 9)
441#define ADC_COR_OFF10 (0x1u << 10)
442#define ADC_COR_OFF11 (0x1u << 11)
443#define ADC_COR_OFF12 (0x1u << 12)
444#define ADC_COR_OFF13 (0x1u << 13)
445#define ADC_COR_OFF14 (0x1u << 14)
446#define ADC_COR_OFF15 (0x1u << 15)
447#define ADC_COR_DIFF0 (0x1u << 16)
448#define ADC_COR_DIFF1 (0x1u << 17)
449#define ADC_COR_DIFF2 (0x1u << 18)
450#define ADC_COR_DIFF3 (0x1u << 19)
451#define ADC_COR_DIFF4 (0x1u << 20)
452#define ADC_COR_DIFF5 (0x1u << 21)
453#define ADC_COR_DIFF6 (0x1u << 22)
454#define ADC_COR_DIFF7 (0x1u << 23)
455#define ADC_COR_DIFF8 (0x1u << 24)
456#define ADC_COR_DIFF9 (0x1u << 25)
457#define ADC_COR_DIFF10 (0x1u << 26)
458#define ADC_COR_DIFF11 (0x1u << 27)
459#define ADC_COR_DIFF12 (0x1u << 28)
460#define ADC_COR_DIFF13 (0x1u << 29)
461#define ADC_COR_DIFF14 (0x1u << 30)
462#define ADC_COR_DIFF15 (0x1u << 31)
463/* -------- ADC_CDR[16] : (ADC Offset: 0x50) Channel Data Register -------- */
464#define ADC_CDR_DATA_Pos 0
465#define ADC_CDR_DATA_Msk (0xfffu << ADC_CDR_DATA_Pos)
466/* -------- ADC_ACR : (ADC Offset: 0x94) Analog Control Register -------- */
467#define ADC_ACR_TSON (0x1u << 4)
468#define ADC_ACR_IBCTL_Pos 8
469#define ADC_ACR_IBCTL_Msk (0x3u << ADC_ACR_IBCTL_Pos)
470#define ADC_ACR_IBCTL(value) ((ADC_ACR_IBCTL_Msk & ((value) << ADC_ACR_IBCTL_Pos)))
471/* -------- ADC_WPMR : (ADC Offset: 0xE4) Write Protect Mode Register -------- */
472#define ADC_WPMR_WPEN (0x1u << 0)
473#define ADC_WPMR_WPKEY_Pos 8
474#define ADC_WPMR_WPKEY_Msk (0xffffffu << ADC_WPMR_WPKEY_Pos)
475#define ADC_WPMR_WPKEY_PASSWD (0x414443u << 8)
476/* -------- ADC_WPSR : (ADC Offset: 0xE8) Write Protect Status Register -------- */
477#define ADC_WPSR_WPVS (0x1u << 0)
478#define ADC_WPSR_WPVSRC_Pos 8
479#define ADC_WPSR_WPVSRC_Msk (0xffffu << ADC_WPSR_WPVSRC_Pos)
480/* -------- ADC_RPR : (ADC Offset: 0x100) Receive Pointer Register -------- */
481#define ADC_RPR_RXPTR_Pos 0
482#define ADC_RPR_RXPTR_Msk (0xffffffffu << ADC_RPR_RXPTR_Pos)
483#define ADC_RPR_RXPTR(value) ((ADC_RPR_RXPTR_Msk & ((value) << ADC_RPR_RXPTR_Pos)))
484/* -------- ADC_RCR : (ADC Offset: 0x104) Receive Counter Register -------- */
485#define ADC_RCR_RXCTR_Pos 0
486#define ADC_RCR_RXCTR_Msk (0xffffu << ADC_RCR_RXCTR_Pos)
487#define ADC_RCR_RXCTR(value) ((ADC_RCR_RXCTR_Msk & ((value) << ADC_RCR_RXCTR_Pos)))
488/* -------- ADC_RNPR : (ADC Offset: 0x110) Receive Next Pointer Register -------- */
489#define ADC_RNPR_RXNPTR_Pos 0
490#define ADC_RNPR_RXNPTR_Msk (0xffffffffu << ADC_RNPR_RXNPTR_Pos)
491#define ADC_RNPR_RXNPTR(value) ((ADC_RNPR_RXNPTR_Msk & ((value) << ADC_RNPR_RXNPTR_Pos)))
492/* -------- ADC_RNCR : (ADC Offset: 0x114) Receive Next Counter Register -------- */
493#define ADC_RNCR_RXNCTR_Pos 0
494#define ADC_RNCR_RXNCTR_Msk (0xffffu << ADC_RNCR_RXNCTR_Pos)
495#define ADC_RNCR_RXNCTR(value) ((ADC_RNCR_RXNCTR_Msk & ((value) << ADC_RNCR_RXNCTR_Pos)))
496/* -------- ADC_PTCR : (ADC Offset: 0x120) Transfer Control Register -------- */
497#define ADC_PTCR_RXTEN (0x1u << 0)
498#define ADC_PTCR_RXTDIS (0x1u << 1)
499#define ADC_PTCR_TXTEN (0x1u << 8)
500#define ADC_PTCR_TXTDIS (0x1u << 9)
501/* -------- ADC_PTSR : (ADC Offset: 0x124) Transfer Status Register -------- */
502#define ADC_PTSR_RXTEN (0x1u << 0)
503#define ADC_PTSR_TXTEN (0x1u << 8)
504
506
507
508#endif /* _SAM4S_ADC_COMPONENT_ */
Adc hardware registers.
__I uint32_t ADC_WPSR
(Adc Offset: 0xE8) Write Protect Status Register
__IO uint32_t ADC_EMR
(Adc Offset: 0x40) Extended Mode Register
__O uint32_t ADC_PTCR
(Adc Offset: 0x120) Transfer Control Register
__IO uint32_t ADC_MR
(Adc Offset: 0x04) Mode Register
__I uint32_t ADC_CHSR
(Adc Offset: 0x18) Channel Status Register
__O uint32_t ADC_IDR
(Adc Offset: 0x28) Interrupt Disable Register
__I uint32_t ADC_ISR
(Adc Offset: 0x30) Interrupt Status Register
__IO uint32_t ADC_RCR
(Adc Offset: 0x104) Receive Counter Register
__O uint32_t ADC_CHER
(Adc Offset: 0x10) Channel Enable Register
__O uint32_t ADC_IER
(Adc Offset: 0x24) Interrupt Enable Register
__I uint32_t ADC_IMR
(Adc Offset: 0x2C) Interrupt Mask Register
__I uint32_t Reserved5[5]
__IO uint32_t ADC_CWR
(Adc Offset: 0x44) Compare Window Register
__IO uint32_t ADC_COR
(Adc Offset: 0x4C) Channel Offset Register
__IO uint32_t ADC_RPR
(Adc Offset: 0x100) Receive Pointer Register
__I uint32_t Reserved2[2]
__O uint32_t ADC_CR
(Adc Offset: 0x00) Control Register
__I uint32_t ADC_PTSR
(Adc Offset: 0x124) Transfer Status Register
__I uint32_t Reserved6[2]
__I uint32_t ADC_LCDR
(Adc Offset: 0x20) Last Converted Data Register
__IO uint32_t ADC_SEQR2
(Adc Offset: 0x0C) Channel Sequence Register 2
__I uint32_t ADC_OVER
(Adc Offset: 0x3C) Overrun Status Register
__I uint32_t Reserved3[1]
__I uint32_t Reserved1[1]
__I uint32_t Reserved7[2]
__IO uint32_t ADC_CGR
(Adc Offset: 0x48) Channel Gain Register
__IO uint32_t ADC_SEQR1
(Adc Offset: 0x08) Channel Sequence Register 1
__IO uint32_t ADC_WPMR
(Adc Offset: 0xE4) Write Protect Mode Register
__IO uint32_t ADC_RNCR
(Adc Offset: 0x114) Receive Next Counter Register
__I uint32_t Reserved4[19]
__IO uint32_t ADC_ACR
(Adc Offset: 0x94) Analog Control Register
__IO uint32_t ADC_RNPR
(Adc Offset: 0x110) Receive Next Pointer Register
__I uint32_t ADC_CDR[16]
(Adc Offset: 0x50) Channel Data Register
__O uint32_t ADC_CHDR
(Adc Offset: 0x14) Channel Disable Register