OPAMP - Operational Amplifier
Description
Operational Amplifier (OPAMP) peripheral API.
This module contains functions to:
- OPAMP_Enable() Configure and enable OPAMP.
- OPAMP_Disable() Disable OPAMP.
All OPAMP functions assume that the DAC clock is running. If DAC is not used, the clock can be turned off when OPAMPs are configured.
If the available gain values don't suit the application at hand, the resistor ladders can be disabled and external gain programming resistors used.
A number of predefined OPAMP setup macros are available for configuration of the most common OPAMP topologies (see figures below).
- Note
- The terms POSPAD and NEGPAD in the figures are used to indicate that these pads should be connected to a suitable signal ground.
Unity gain voltage follower.
Use predefined macros
OPA_INIT_UNITY_GAIN
and
OPA_INIT_UNITY_GAIN_OPA2
.
|\ ___________|+\ | \_______ ___|_ / | | | / | | |/ | |___________|
Non-inverting amplifier.
Use predefined macros
OPA_INIT_NON_INVERTING
and
OPA_INIT_NON_INVERTING_OPA2
.
|\ ___________|+\ | \_______ ___|_ / | | | / | | |/ | |_____R2____| | R1 | NEGPAD
Inverting amplifier.
Use predefined macros
OPA_INIT_INVERTING
and
OPA_INIT_INVERTING_OPA2
.
_____R2____ | | | |\ | ____R1_|___|_\ | | \____|___ ___| / | |+/ | |/ | POSPAD
Cascaded non-inverting amplifiers.
Use predefined macros
OPA_INIT_CASCADED_NON_INVERTING_OPA0
,
OPA_INIT_CASCADED_NON_INVERTING_OPA1
and
OPA_INIT_CASCADED_NON_INVERTING_OPA2
.
|\ |\ |\ ___________|+\ OPA0 ___________|+\ OPA1 ___________|+\ OPA2 | \_________| | \_________| | \_______ ___|_ / | ___|_ / | ___|_ / | | | / | | | / | | | / | | |/ | | |/ | | |/ | |_____R2____| |_____R2____| |_____R2____| | | | R1 R1 R1 | | | NEGPAD NEGPAD NEGPAD
Cascaded inverting amplifiers.
Use predefined macros
OPA_INIT_CASCADED_INVERTING_OPA0
,
OPA_INIT_CASCADED_INVERTING_OPA1
and
OPA_INIT_CASCADED_INVERTING_OPA2
.
_____R2____ _____R2____ _____R2____ | | | | | | | |\ | | |\ | | |\ | ____R1_|___|_\ | ____R1_|___|_\ | ____R1_|___|_\ | | \____|____| | \____|___| | \____|__ ___| / ___| / ___| / | |+/ OPA0 | |+/ OPA1 | |+/ OPA2 | |/ | |/ | |/ | | | POSPAD POSPAD POSPAD
Differential driver with two opamp's.
Use predefined macros
OPA_INIT_DIFF_DRIVER_OPA0
and
OPA_INIT_DIFF_DRIVER_OPA1
.
__________________________ | + | _____R2____ |\ | | | ___________|+\ OPA0 | | |\ OPA1 | | \_________|____R1_|___|_\ | _ ___|_ / | | \____|______ | | / | ___| / | |/ | | |+/ |________________| | |/ | POSPAD
Differential receiver with three opamp's.
Use predefined macros
OPA_INIT_DIFF_RECEIVER_OPA0
,
OPA_INIT_DIFF_RECEIVER_OPA1
and
OPA_INIT_DIFF_RECEIVER_OPA2
.
|\ __________|+\ OPA1 _ | \_________ ___|_ / | | _____R2____ | | / | | | | | |/ | | | |\ | |___________| |____R1_|___|_\ | | \____|___ |\ ____R1_ ___| / +__________|+\ OPA0 | | |+/ OPA2 | \_________| | |/ ___|_ / | R2 | | / | | | |/ | NEGPAD OPA0 |___________|
Data Structures |
|
struct | OPAMP_Init_TypeDef |
OPAMP init structure.
|
|
Functions |
|
void | OPAMP_Disable (DAC_TypeDef *dac, OPAMP_TypeDef opa) |
Disable an Operational Amplifier.
|
|
void | OPAMP_Enable (DAC_TypeDef *dac, OPAMP_TypeDef opa, const OPAMP_Init_TypeDef *init) |
Configure and enable an Operational Amplifier.
|
|
Macros |
|
#define | OPA_INIT_UNITY_GAIN |
Configuration of OPA0/1 in unity gain voltage follower mode.
|
|
#define | OPA_INIT_UNITY_GAIN_OPA2 |
Configuration of OPA2 in unity gain voltage follower mode.
|
|
#define | OPA_INIT_NON_INVERTING |
Configuration of OPA0/1 in non-inverting amplifier mode.
|
|
#define | OPA_INIT_NON_INVERTING_OPA2 |
Configuration of OPA2 in non-inverting amplifier mode.
|
|
#define | OPA_INIT_INVERTING |
Configuration of OPA0/1 in inverting amplifier mode.
|
|
#define | OPA_INIT_INVERTING_OPA2 |
Configuration of OPA2 in inverting amplifier mode.
|
|
#define | OPA_INIT_CASCADED_NON_INVERTING_OPA0 |
Configuration of OPA0 in cascaded non-inverting amplifier mode.
|
|
#define | OPA_INIT_CASCADED_NON_INVERTING_OPA1 |
Configuration of OPA1 in cascaded non-inverting amplifier mode.
|
|
#define | OPA_INIT_CASCADED_NON_INVERTING_OPA2 |
Configuration of OPA2 in cascaded non-inverting amplifier mode.
|
|
#define | OPA_INIT_CASCADED_INVERTING_OPA0 |
Configuration of OPA0 in cascaded inverting amplifier mode.
|
|
#define | OPA_INIT_CASCADED_INVERTING_OPA1 |
Configuration of OPA1 in cascaded inverting amplifier mode.
|
|
#define | OPA_INIT_CASCADED_INVERTING_OPA2 |
Configuration of OPA2 in cascaded inverting amplifier mode.
|
|
#define | OPA_INIT_DIFF_DRIVER_OPA0 |
Configuration of OPA0 in two-opamp differential driver mode.
|
|
#define | OPA_INIT_DIFF_DRIVER_OPA1 |
Configuration of OPA1 in two-opamp differential driver mode.
|
|
#define | OPA_INIT_DIFF_RECEIVER_OPA0 |
Configuration of OPA0 in three-opamp differential receiver mode.
|
|
#define | OPA_INIT_DIFF_RECEIVER_OPA1 |
Configuration of OPA1 in three-opamp differential receiver mode.
|
|
#define | OPA_INIT_DIFF_RECEIVER_OPA2 |
Configuration of OPA2 in three-opamp differential receiver mode.
|
|
Enumerations |
|
enum |
OPAMP_TypeDef
{
OPA0 = 0, OPA1 = 1, OPA2 = 2 } |
OPAMP selector values.
|
|
enum |
OPAMP_NegSel_TypeDef
{
opaNegSelDisable = DAC_OPA0MUX_NEGSEL_DISABLE, opaNegSelUnityGain = DAC_OPA0MUX_NEGSEL_UG, opaNegSelResTap = DAC_OPA0MUX_NEGSEL_OPATAP, opaNegSelNegPad = DAC_OPA0MUX_NEGSEL_NEGPAD } |
OPAMP negative terminal input selection values.
|
|
enum |
OPAMP_PosSel_TypeDef
{
opaPosSelDisable = DAC_OPA0MUX_POSSEL_DISABLE, opaPosSelDac = DAC_OPA0MUX_POSSEL_DAC, opaPosSelPosPad = DAC_OPA0MUX_POSSEL_POSPAD, opaPosSelOpaIn = DAC_OPA0MUX_POSSEL_OPA0INP, opaPosSelResTapOpa0 = DAC_OPA0MUX_POSSEL_OPATAP } |
OPAMP positive terminal input selection values.
|
|
enum |
OPAMP_OutMode_TypeDef
{
opaOutModeDisable = DAC_OPA0MUX_OUTMODE_DISABLE, opaOutModeMain = DAC_OPA0MUX_OUTMODE_MAIN, opaOutModeAlt = DAC_OPA0MUX_OUTMODE_ALT, opaOutModeAll = DAC_OPA0MUX_OUTMODE_ALL } |
OPAMP output terminal selection values.
|
|
enum |
OPAMP_ResSel_TypeDef
{
opaResSelDefault = DAC_OPA0MUX_RESSEL_DEFAULT, opaResSelR2eq0_33R1 = DAC_OPA0MUX_RESSEL_RES0, opaResSelR2eqR1 = DAC_OPA0MUX_RESSEL_RES1, opaResSelR1eq1_67R1 = DAC_OPA0MUX_RESSEL_RES2, opaResSelR2eq2R1 = DAC_OPA0MUX_RESSEL_RES3, opaResSelR2eq3R1 = DAC_OPA0MUX_RESSEL_RES4, opaResSelR2eq4_33R1 = DAC_OPA0MUX_RESSEL_RES5, opaResSelR2eq7R1 = DAC_OPA0MUX_RESSEL_RES6, opaResSelR2eq15R1 = DAC_OPA0MUX_RESSEL_RES7 } |
OPAMP gain values.
|
|
enum |
OPAMP_ResInMux_TypeDef
{
opaResInMuxDisable = DAC_OPA0MUX_RESINMUX_DISABLE, opaResInMuxOpaIn = DAC_OPA0MUX_RESINMUX_OPA0INP, opaResInMuxNegPad = DAC_OPA0MUX_RESINMUX_NEGPAD, opaResInMuxPosPad = DAC_OPA0MUX_RESINMUX_POSPAD, opaResInMuxVss = DAC_OPA0MUX_RESINMUX_VSS } |
OPAMP resistor ladder input selector values.
|
|
Function Documentation
◆ OPAMP_Disable()
void OPAMP_Disable | ( | DAC_TypeDef * |
dac,
|
OPAMP_TypeDef |
opa
|
||
) |
Disable an Operational Amplifier.
- Parameters
-
[in] dac
A pointer to the DAC peripheral register block. [in] opa
Selects an OPA, valid values are OPA0, OPA1, and OPA2.
◆ OPAMP_Enable()
void OPAMP_Enable | ( | DAC_TypeDef * |
dac,
|
OPAMP_TypeDef |
opa,
|
||
const OPAMP_Init_TypeDef * |
init
|
||
) |
Configure and enable an Operational Amplifier.
- Note
-
The value of the alternate output enable bit mask in the
OPAMP_Init_TypeDef
structure should consist of one or more of the DAC_OPA[opa#]MUX_OUTPEN_OUT[output#] flags (defined in <part_name>_dac.h) OR'ed together.
For OPA0:- DAC_OPA0MUX_OUTPEN_OUT0
- DAC_OPA0MUX_OUTPEN_OUT1
- DAC_OPA0MUX_OUTPEN_OUT2
- DAC_OPA0MUX_OUTPEN_OUT3
- DAC_OPA0MUX_OUTPEN_OUT4
- DAC_OPA1MUX_OUTPEN_OUT0
- DAC_OPA1MUX_OUTPEN_OUT1
- DAC_OPA1MUX_OUTPEN_OUT2
- DAC_OPA1MUX_OUTPEN_OUT3
- DAC_OPA1MUX_OUTPEN_OUT4
- DAC_OPA2MUX_OUTPEN_OUT0
- DAC_OPA2MUX_OUTPEN_OUT1
init.outPen = DAC_OPA0MUX_OUTPEN_OUT0 | DAC_OPA0MUX_OUTPEN_OUT4;
- Parameters
-
[in] dac
A pointer to the DAC peripheral register block. [in] opa
Selects an OPA, valid values are OPA0, OPA1, and OPA2. [in] init
A pointer to a structure containing OPAMP initialization information.
Macro Definition Documentation
◆ OPA_INIT_UNITY_GAIN
#define OPA_INIT_UNITY_GAIN |
Configuration of OPA0/1 in unity gain voltage follower mode.
◆ OPA_INIT_UNITY_GAIN_OPA2
#define OPA_INIT_UNITY_GAIN_OPA2 |
Configuration of OPA2 in unity gain voltage follower mode.
◆ OPA_INIT_NON_INVERTING
#define OPA_INIT_NON_INVERTING |
Configuration of OPA0/1 in non-inverting amplifier mode.
◆ OPA_INIT_NON_INVERTING_OPA2
#define OPA_INIT_NON_INVERTING_OPA2 |
Configuration of OPA2 in non-inverting amplifier mode.
◆ OPA_INIT_INVERTING
#define OPA_INIT_INVERTING |
Configuration of OPA0/1 in inverting amplifier mode.
◆ OPA_INIT_INVERTING_OPA2
#define OPA_INIT_INVERTING_OPA2 |
Configuration of OPA2 in inverting amplifier mode.
◆ OPA_INIT_CASCADED_NON_INVERTING_OPA0
#define OPA_INIT_CASCADED_NON_INVERTING_OPA0 |
Configuration of OPA0 in cascaded non-inverting amplifier mode.
◆ OPA_INIT_CASCADED_NON_INVERTING_OPA1
#define OPA_INIT_CASCADED_NON_INVERTING_OPA1 |
Configuration of OPA1 in cascaded non-inverting amplifier mode.
◆ OPA_INIT_CASCADED_NON_INVERTING_OPA2
#define OPA_INIT_CASCADED_NON_INVERTING_OPA2 |
Configuration of OPA2 in cascaded non-inverting amplifier mode.
◆ OPA_INIT_CASCADED_INVERTING_OPA0
#define OPA_INIT_CASCADED_INVERTING_OPA0 |
Configuration of OPA0 in cascaded inverting amplifier mode.
◆ OPA_INIT_CASCADED_INVERTING_OPA1
#define OPA_INIT_CASCADED_INVERTING_OPA1 |
Configuration of OPA1 in cascaded inverting amplifier mode.
◆ OPA_INIT_CASCADED_INVERTING_OPA2
#define OPA_INIT_CASCADED_INVERTING_OPA2 |
Configuration of OPA2 in cascaded inverting amplifier mode.
◆ OPA_INIT_DIFF_DRIVER_OPA0
#define OPA_INIT_DIFF_DRIVER_OPA0 |
Configuration of OPA0 in two-opamp differential driver mode.
◆ OPA_INIT_DIFF_DRIVER_OPA1
#define OPA_INIT_DIFF_DRIVER_OPA1 |
Configuration of OPA1 in two-opamp differential driver mode.
◆ OPA_INIT_DIFF_RECEIVER_OPA0
#define OPA_INIT_DIFF_RECEIVER_OPA0 |
Configuration of OPA0 in three-opamp differential receiver mode.
◆ OPA_INIT_DIFF_RECEIVER_OPA1
#define OPA_INIT_DIFF_RECEIVER_OPA1 |
Configuration of OPA1 in three-opamp differential receiver mode.
◆ OPA_INIT_DIFF_RECEIVER_OPA2
#define OPA_INIT_DIFF_RECEIVER_OPA2 |
Configuration of OPA2 in three-opamp differential receiver mode.
Enumeration Type Documentation
◆ OPAMP_TypeDef
enum OPAMP_TypeDef |
◆ OPAMP_NegSel_TypeDef
enum OPAMP_NegSel_TypeDef |
◆ OPAMP_PosSel_TypeDef
enum OPAMP_PosSel_TypeDef |
◆ OPAMP_OutMode_TypeDef
◆ OPAMP_ResSel_TypeDef
enum OPAMP_ResSel_TypeDef |
OPAMP gain values.