33 #ifndef __SILICON_LABS_EM_OPAMP_H__
34 #define __SILICON_LABS_EM_OPAMP_H__
37 #if defined(OPAMP_PRESENT) && (OPAMP_COUNT == 1)
60 #define DAC_OPA_VALID(opa) ((opa) <= OPA2)
79 opaNegSelDisable = DAC_OPA0MUX_NEGSEL_DISABLE,
80 opaNegSelUnityGain = DAC_OPA0MUX_NEGSEL_UG,
81 opaNegSelResTap = DAC_OPA0MUX_NEGSEL_OPATAP,
82 opaNegSelNegPad = DAC_OPA0MUX_NEGSEL_NEGPAD
83 } OPAMP_NegSel_TypeDef;
88 opaPosSelDisable = DAC_OPA0MUX_POSSEL_DISABLE,
89 opaPosSelDac = DAC_OPA0MUX_POSSEL_DAC,
90 opaPosSelPosPad = DAC_OPA0MUX_POSSEL_POSPAD,
91 opaPosSelOpaIn = DAC_OPA0MUX_POSSEL_OPA0INP,
92 opaPosSelResTapOpa0 = DAC_OPA0MUX_POSSEL_OPATAP
93 } OPAMP_PosSel_TypeDef;
98 opaOutModeDisable = DAC_OPA0MUX_OUTMODE_DISABLE,
99 opaOutModeMain = DAC_OPA0MUX_OUTMODE_MAIN,
100 opaOutModeAlt = DAC_OPA0MUX_OUTMODE_ALT,
101 opaOutModeAll = DAC_OPA0MUX_OUTMODE_ALL
102 } OPAMP_OutMode_TypeDef;
107 opaResSelDefault = DAC_OPA0MUX_RESSEL_DEFAULT,
108 opaResSelR2eq0_33R1 = DAC_OPA0MUX_RESSEL_RES0,
109 opaResSelR2eqR1 = DAC_OPA0MUX_RESSEL_RES1,
110 opaResSelR1eq1_67R1 = DAC_OPA0MUX_RESSEL_RES2,
111 opaResSelR2eq2R1 = DAC_OPA0MUX_RESSEL_RES3,
112 opaResSelR2eq3R1 = DAC_OPA0MUX_RESSEL_RES4,
113 opaResSelR2eq4_33R1 = DAC_OPA0MUX_RESSEL_RES5,
114 opaResSelR2eq7R1 = DAC_OPA0MUX_RESSEL_RES6,
115 opaResSelR2eq15R1 = DAC_OPA0MUX_RESSEL_RES7
116 } OPAMP_ResSel_TypeDef;
121 opaResInMuxDisable = DAC_OPA0MUX_RESINMUX_DISABLE,
122 opaResInMuxOpaIn = DAC_OPA0MUX_RESINMUX_OPA0INP,
123 opaResInMuxNegPad = DAC_OPA0MUX_RESINMUX_NEGPAD,
124 opaResInMuxPosPad = DAC_OPA0MUX_RESINMUX_POSPAD,
125 opaResInMuxVss = DAC_OPA0MUX_RESINMUX_VSS
126 } OPAMP_ResInMux_TypeDef;
135 OPAMP_NegSel_TypeDef negSel;
136 OPAMP_PosSel_TypeDef posSel;
137 OPAMP_OutMode_TypeDef outMode;
138 OPAMP_ResSel_TypeDef resSel;
139 OPAMP_ResInMux_TypeDef resInMux;
169 bool lpfPosPadDisable;
170 bool lpfNegPadDisable;
178 } OPAMP_Init_TypeDef;
181 #define OPA_INIT_UNITY_GAIN \
183 opaNegSelUnityGain, \
187 opaResInMuxDisable, \
189 _DAC_BIASPROG_BIASPROG_DEFAULT, \
190 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
203 #define OPA_INIT_UNITY_GAIN_OPA2 \
205 opaNegSelUnityGain, \
209 opaResInMuxDisable, \
210 DAC_OPA0MUX_OUTPEN_OUT0, \
211 _DAC_BIASPROG_BIASPROG_DEFAULT, \
212 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
225 #define OPA_INIT_NON_INVERTING \
230 opaResSelR2eq0_33R1, \
233 _DAC_BIASPROG_BIASPROG_DEFAULT, \
234 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
247 #define OPA_INIT_NON_INVERTING_OPA2 \
252 opaResSelR2eq0_33R1, \
254 DAC_OPA0MUX_OUTPEN_OUT0, \
255 _DAC_BIASPROG_BIASPROG_DEFAULT, \
256 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
269 #define OPA_INIT_INVERTING \
277 _DAC_BIASPROG_BIASPROG_DEFAULT, \
278 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
291 #define OPA_INIT_INVERTING_OPA2 \
298 DAC_OPA0MUX_OUTPEN_OUT0, \
299 _DAC_BIASPROG_BIASPROG_DEFAULT, \
300 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
313 #define OPA_INIT_CASCADED_NON_INVERTING_OPA0 \
318 opaResSelR2eq0_33R1, \
321 _DAC_BIASPROG_BIASPROG_DEFAULT, \
322 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
335 #define OPA_INIT_CASCADED_NON_INVERTING_OPA1 \
340 opaResSelR2eq0_33R1, \
343 _DAC_BIASPROG_BIASPROG_DEFAULT, \
344 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
357 #define OPA_INIT_CASCADED_NON_INVERTING_OPA2 \
362 opaResSelR2eq0_33R1, \
364 DAC_OPA0MUX_OUTPEN_OUT0, \
365 _DAC_BIASPROG_BIASPROG_DEFAULT, \
366 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
379 #define OPA_INIT_CASCADED_INVERTING_OPA0 \
387 _DAC_BIASPROG_BIASPROG_DEFAULT, \
388 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
401 #define OPA_INIT_CASCADED_INVERTING_OPA1 \
409 _DAC_BIASPROG_BIASPROG_DEFAULT, \
410 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
423 #define OPA_INIT_CASCADED_INVERTING_OPA2 \
430 DAC_OPA0MUX_OUTPEN_OUT0, \
431 _DAC_BIASPROG_BIASPROG_DEFAULT, \
432 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
445 #define OPA_INIT_DIFF_DRIVER_OPA0 \
447 opaNegSelUnityGain, \
451 opaResInMuxDisable, \
453 _DAC_BIASPROG_BIASPROG_DEFAULT, \
454 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
467 #define OPA_INIT_DIFF_DRIVER_OPA1 \
475 _DAC_BIASPROG_BIASPROG_DEFAULT, \
476 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
489 #define OPA_INIT_DIFF_RECEIVER_OPA0 \
491 opaNegSelUnityGain, \
497 _DAC_BIASPROG_BIASPROG_DEFAULT, \
498 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
511 #define OPA_INIT_DIFF_RECEIVER_OPA1 \
513 opaNegSelUnityGain, \
517 opaResInMuxDisable, \
519 _DAC_BIASPROG_BIASPROG_DEFAULT, \
520 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
533 #define OPA_INIT_DIFF_RECEIVER_OPA2 \
536 opaPosSelResTapOpa0, \
540 DAC_OPA0MUX_OUTPEN_OUT0, \
541 _DAC_BIASPROG_BIASPROG_DEFAULT, \
542 _DAC_BIASPROG_HALFBIAS_DEFAULT, \
558 void OPAMP_Disable(DAC_TypeDef *dac, OPAMP_TypeDef opa);
559 void OPAMP_Enable(DAC_TypeDef *dac, OPAMP_TypeDef opa,
const OPAMP_Init_TypeDef *init);
CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories microcontroller devices.
Digital to Analog Converter (DAC) peripheral API.