imxrt_ral/blocks/imxrt1021/
cmp.rs1#[doc = "High-Speed Comparator (CMP), Voltage Reference (VREF) Digital-to-Analog Converter (DAC), and Analog Mux (ANMUX)"]
2#[repr(C)]
3pub struct RegisterBlock {
4 #[doc = "CMP Control Register 0"]
5 pub CR0: crate::RWRegister<u8>,
6 #[doc = "CMP Control Register 1"]
7 pub CR1: crate::RWRegister<u8>,
8 #[doc = "CMP Filter Period Register"]
9 pub FPR: crate::RWRegister<u8>,
10 #[doc = "CMP Status and Control Register"]
11 pub SCR: crate::RWRegister<u8>,
12 #[doc = "DAC Control Register"]
13 pub DACCR: crate::RWRegister<u8>,
14 #[doc = "MUX Control Register"]
15 pub MUXCR: crate::RWRegister<u8>,
16}
17#[doc = "CMP Control Register 0"]
18pub mod CR0 {
19 #[doc = "Comparator hard block hysteresis control"]
20 pub mod HYSTCTR {
21 pub const offset: u8 = 0;
22 pub const mask: u8 = 0x03 << offset;
23 pub mod R {}
24 pub mod W {}
25 pub mod RW {
26 #[doc = "Level 0"]
27 pub const HYSTCTR_0: u8 = 0;
28 #[doc = "Level 1"]
29 pub const HYSTCTR_1: u8 = 0x01;
30 #[doc = "Level 2"]
31 pub const HYSTCTR_2: u8 = 0x02;
32 #[doc = "Level 3"]
33 pub const HYSTCTR_3: u8 = 0x03;
34 }
35 }
36 #[doc = "Filter Sample Count"]
37 pub mod FILTER_CNT {
38 pub const offset: u8 = 4;
39 pub const mask: u8 = 0x07 << offset;
40 pub mod R {}
41 pub mod W {}
42 pub mod RW {
43 #[doc = "Filter is disabled. If SE = 1, then COUT is a logic 0. This is not a legal state, and is not recommended. If SE = 0, COUT = COUTA."]
44 pub const FILTER_CNT_0: u8 = 0;
45 #[doc = "One sample must agree. The comparator output is simply sampled."]
46 pub const FILTER_CNT_1: u8 = 0x01;
47 #[doc = "2 consecutive samples must agree."]
48 pub const FILTER_CNT_2: u8 = 0x02;
49 #[doc = "3 consecutive samples must agree."]
50 pub const FILTER_CNT_3: u8 = 0x03;
51 #[doc = "4 consecutive samples must agree."]
52 pub const FILTER_CNT_4: u8 = 0x04;
53 #[doc = "5 consecutive samples must agree."]
54 pub const FILTER_CNT_5: u8 = 0x05;
55 #[doc = "6 consecutive samples must agree."]
56 pub const FILTER_CNT_6: u8 = 0x06;
57 #[doc = "7 consecutive samples must agree."]
58 pub const FILTER_CNT_7: u8 = 0x07;
59 }
60 }
61}
62#[doc = "CMP Control Register 1"]
63pub mod CR1 {
64 #[doc = "Comparator Module Enable"]
65 pub mod EN {
66 pub const offset: u8 = 0;
67 pub const mask: u8 = 0x01 << offset;
68 pub mod R {}
69 pub mod W {}
70 pub mod RW {
71 #[doc = "Analog Comparator is disabled."]
72 pub const EN_0: u8 = 0;
73 #[doc = "Analog Comparator is enabled."]
74 pub const EN_1: u8 = 0x01;
75 }
76 }
77 #[doc = "Comparator Output Pin Enable"]
78 pub mod OPE {
79 pub const offset: u8 = 1;
80 pub const mask: u8 = 0x01 << offset;
81 pub mod R {}
82 pub mod W {}
83 pub mod RW {
84 #[doc = "CMPO is not available on the associated CMPO output pin. If the comparator does not own the pin, this field has no effect."]
85 pub const OPE_0: u8 = 0;
86 #[doc = "CMPO is available on the associated CMPO output pin. The comparator output (CMPO) is driven out on the associated CMPO output pin if the comparator owns the pin. If the comparator does not own the field, this bit has no effect."]
87 pub const OPE_1: u8 = 0x01;
88 }
89 }
90 #[doc = "Comparator Output Select"]
91 pub mod COS {
92 pub const offset: u8 = 2;
93 pub const mask: u8 = 0x01 << offset;
94 pub mod R {}
95 pub mod W {}
96 pub mod RW {
97 #[doc = "Set the filtered comparator output (CMPO) to equal COUT."]
98 pub const COS_0: u8 = 0;
99 #[doc = "Set the unfiltered comparator output (CMPO) to equal COUTA."]
100 pub const COS_1: u8 = 0x01;
101 }
102 }
103 #[doc = "Comparator INVERT"]
104 pub mod INV {
105 pub const offset: u8 = 3;
106 pub const mask: u8 = 0x01 << offset;
107 pub mod R {}
108 pub mod W {}
109 pub mod RW {
110 #[doc = "Does not invert the comparator output."]
111 pub const INV_0: u8 = 0;
112 #[doc = "Inverts the comparator output."]
113 pub const INV_1: u8 = 0x01;
114 }
115 }
116 #[doc = "Power Mode Select"]
117 pub mod PMODE {
118 pub const offset: u8 = 4;
119 pub const mask: u8 = 0x01 << offset;
120 pub mod R {}
121 pub mod W {}
122 pub mod RW {
123 #[doc = "Low-Speed (LS) Comparison mode selected. In this mode, CMP has slower output propagation delay and lower current consumption."]
124 pub const PMODE_0: u8 = 0;
125 #[doc = "High-Speed (HS) Comparison mode selected. In this mode, CMP has faster output propagation delay and higher current consumption."]
126 pub const PMODE_1: u8 = 0x01;
127 }
128 }
129 #[doc = "Windowing Enable"]
130 pub mod WE {
131 pub const offset: u8 = 6;
132 pub const mask: u8 = 0x01 << offset;
133 pub mod R {}
134 pub mod W {}
135 pub mod RW {
136 #[doc = "Windowing mode is not selected."]
137 pub const WE_0: u8 = 0;
138 #[doc = "Windowing mode is selected."]
139 pub const WE_1: u8 = 0x01;
140 }
141 }
142 #[doc = "Sample Enable"]
143 pub mod SE {
144 pub const offset: u8 = 7;
145 pub const mask: u8 = 0x01 << offset;
146 pub mod R {}
147 pub mod W {}
148 pub mod RW {
149 #[doc = "Sampling mode is not selected."]
150 pub const SE_0: u8 = 0;
151 #[doc = "Sampling mode is selected."]
152 pub const SE_1: u8 = 0x01;
153 }
154 }
155}
156#[doc = "CMP Filter Period Register"]
157pub mod FPR {
158 #[doc = "Filter Sample Period"]
159 pub mod FILT_PER {
160 pub const offset: u8 = 0;
161 pub const mask: u8 = 0xff << offset;
162 pub mod R {}
163 pub mod W {}
164 pub mod RW {}
165 }
166}
167#[doc = "CMP Status and Control Register"]
168pub mod SCR {
169 #[doc = "Analog Comparator Output"]
170 pub mod COUT {
171 pub const offset: u8 = 0;
172 pub const mask: u8 = 0x01 << offset;
173 pub mod R {}
174 pub mod W {}
175 pub mod RW {}
176 }
177 #[doc = "Analog Comparator Flag Falling"]
178 pub mod CFF {
179 pub const offset: u8 = 1;
180 pub const mask: u8 = 0x01 << offset;
181 pub mod R {}
182 pub mod W {}
183 pub mod RW {
184 #[doc = "Falling-edge on COUT has not been detected."]
185 pub const CFF_0: u8 = 0;
186 #[doc = "Falling-edge on COUT has occurred."]
187 pub const CFF_1: u8 = 0x01;
188 }
189 }
190 #[doc = "Analog Comparator Flag Rising"]
191 pub mod CFR {
192 pub const offset: u8 = 2;
193 pub const mask: u8 = 0x01 << offset;
194 pub mod R {}
195 pub mod W {}
196 pub mod RW {
197 #[doc = "Rising-edge on COUT has not been detected."]
198 pub const CFR_0: u8 = 0;
199 #[doc = "Rising-edge on COUT has occurred."]
200 pub const CFR_1: u8 = 0x01;
201 }
202 }
203 #[doc = "Comparator Interrupt Enable Falling"]
204 pub mod IEF {
205 pub const offset: u8 = 3;
206 pub const mask: u8 = 0x01 << offset;
207 pub mod R {}
208 pub mod W {}
209 pub mod RW {
210 #[doc = "Interrupt is disabled."]
211 pub const IEF_0: u8 = 0;
212 #[doc = "Interrupt is enabled."]
213 pub const IEF_1: u8 = 0x01;
214 }
215 }
216 #[doc = "Comparator Interrupt Enable Rising"]
217 pub mod IER {
218 pub const offset: u8 = 4;
219 pub const mask: u8 = 0x01 << offset;
220 pub mod R {}
221 pub mod W {}
222 pub mod RW {
223 #[doc = "Interrupt is disabled."]
224 pub const IER_0: u8 = 0;
225 #[doc = "Interrupt is enabled."]
226 pub const IER_1: u8 = 0x01;
227 }
228 }
229 #[doc = "DMA Enable Control"]
230 pub mod DMAEN {
231 pub const offset: u8 = 6;
232 pub const mask: u8 = 0x01 << offset;
233 pub mod R {}
234 pub mod W {}
235 pub mod RW {
236 #[doc = "DMA is disabled."]
237 pub const DMAEN_0: u8 = 0;
238 #[doc = "DMA is enabled."]
239 pub const DMAEN_1: u8 = 0x01;
240 }
241 }
242}
243#[doc = "DAC Control Register"]
244pub mod DACCR {
245 #[doc = "DAC Output Voltage Select"]
246 pub mod VOSEL {
247 pub const offset: u8 = 0;
248 pub const mask: u8 = 0x3f << offset;
249 pub mod R {}
250 pub mod W {}
251 pub mod RW {}
252 }
253 #[doc = "Supply Voltage Reference Source Select"]
254 pub mod VRSEL {
255 pub const offset: u8 = 6;
256 pub const mask: u8 = 0x01 << offset;
257 pub mod R {}
258 pub mod W {}
259 pub mod RW {
260 #[doc = "Vin1 is selected as resistor ladder network supply reference."]
261 pub const VRSEL_0: u8 = 0;
262 #[doc = "Vin2 is selected as resistor ladder network supply reference."]
263 pub const VRSEL_1: u8 = 0x01;
264 }
265 }
266 #[doc = "DAC Enable"]
267 pub mod DACEN {
268 pub const offset: u8 = 7;
269 pub const mask: u8 = 0x01 << offset;
270 pub mod R {}
271 pub mod W {}
272 pub mod RW {
273 #[doc = "DAC is disabled."]
274 pub const DACEN_0: u8 = 0;
275 #[doc = "DAC is enabled."]
276 pub const DACEN_1: u8 = 0x01;
277 }
278 }
279}
280#[doc = "MUX Control Register"]
281pub mod MUXCR {
282 #[doc = "Minus Input Mux Control"]
283 pub mod MSEL {
284 pub const offset: u8 = 0;
285 pub const mask: u8 = 0x07 << offset;
286 pub mod R {}
287 pub mod W {}
288 pub mod RW {
289 #[doc = "IN0"]
290 pub const MSEL_0: u8 = 0;
291 #[doc = "IN1"]
292 pub const MSEL_1: u8 = 0x01;
293 #[doc = "IN2"]
294 pub const MSEL_2: u8 = 0x02;
295 #[doc = "IN3"]
296 pub const MSEL_3: u8 = 0x03;
297 #[doc = "IN4"]
298 pub const MSEL_4: u8 = 0x04;
299 #[doc = "IN5"]
300 pub const MSEL_5: u8 = 0x05;
301 #[doc = "IN6"]
302 pub const MSEL_6: u8 = 0x06;
303 #[doc = "IN7"]
304 pub const MSEL_7: u8 = 0x07;
305 }
306 }
307 #[doc = "Plus Input Mux Control"]
308 pub mod PSEL {
309 pub const offset: u8 = 3;
310 pub const mask: u8 = 0x07 << offset;
311 pub mod R {}
312 pub mod W {}
313 pub mod RW {
314 #[doc = "IN0"]
315 pub const PSEL_0: u8 = 0;
316 #[doc = "IN1"]
317 pub const PSEL_1: u8 = 0x01;
318 #[doc = "IN2"]
319 pub const PSEL_2: u8 = 0x02;
320 #[doc = "IN3"]
321 pub const PSEL_3: u8 = 0x03;
322 #[doc = "IN4"]
323 pub const PSEL_4: u8 = 0x04;
324 #[doc = "IN5"]
325 pub const PSEL_5: u8 = 0x05;
326 #[doc = "IN6"]
327 pub const PSEL_6: u8 = 0x06;
328 #[doc = "IN7"]
329 pub const PSEL_7: u8 = 0x07;
330 }
331 }
332}