pub struct OpAmp<'d, T: Instance> { /* private fields */ }
Expand description
OpAmp driver.
Implementations§
Source§impl<'d, T: Instance> OpAmp<'d, T>
impl<'d, T: Instance> OpAmp<'d, T>
Sourcepub fn new(opamp: Peri<'d, T>, speed: OpAmpSpeed) -> Self
pub fn new(opamp: Peri<'d, T>, speed: OpAmpSpeed) -> Self
Create a new driver instance.
Does not enable the opamp, but does set the speed mode on some families.
Sourcepub fn buffer_ext(
&mut self,
in_pin: Peri<'_, impl NonInvertingPin<T> + Pin>,
out_pin: Peri<'_, impl OutputPin<T> + Pin>,
) -> OpAmpOutput<'_, T>
pub fn buffer_ext( &mut self, in_pin: Peri<'_, impl NonInvertingPin<T> + Pin>, out_pin: Peri<'_, impl OutputPin<T> + Pin>, ) -> OpAmpOutput<'_, T>
Configure the OpAmp as a buffer for the provided input pin, outputting to the provided output pin, and enable the opamp.
The input pin is configured for analogue mode but not consumed, so it may subsequently be used for ADC or comparator inputs.
The output pin is held within the returned OpAmpOutput
struct,
preventing it being used elsewhere. The OpAmpOutput
can then be
directly used as an ADC input. The opamp will be disabled when the
OpAmpOutput
is dropped.
Sourcepub fn pga_ext(
&mut self,
in_pin: Peri<'_, impl NonInvertingPin<T> + Pin>,
out_pin: Peri<'_, impl OutputPin<T> + Pin>,
gain: OpAmpGain,
) -> OpAmpOutput<'_, T>
pub fn pga_ext( &mut self, in_pin: Peri<'_, impl NonInvertingPin<T> + Pin>, out_pin: Peri<'_, impl OutputPin<T> + Pin>, gain: OpAmpGain, ) -> OpAmpOutput<'_, T>
Configure the OpAmp as a PGA for the provided input pin, outputting to the provided output pin, and enable the opamp.
The input pin is configured for analogue mode but not consumed, so it may subsequently be used for ADC or comparator inputs.
The output pin is held within the returned OpAmpOutput
struct,
preventing it being used elsewhere. The OpAmpOutput
can then be
directly used as an ADC input. The opamp will be disabled when the
OpAmpOutput
is dropped.
Sourcepub fn buffer_dac(
&mut self,
out_pin: Peri<'_, impl OutputPin<T> + Pin>,
) -> OpAmpOutput<'_, T>
pub fn buffer_dac( &mut self, out_pin: Peri<'_, impl OutputPin<T> + Pin>, ) -> OpAmpOutput<'_, T>
Configure the OpAmp as a buffer for the DAC it is connected to, outputting to the provided output pin, and enable the opamp.
The output pin is held within the returned OpAmpOutput
struct,
preventing it being used elsewhere. The OpAmpOutput
can then be
directly used as an ADC input. The opamp will be disabled when the
OpAmpOutput
is dropped.
Sourcepub fn buffer_int(
&mut self,
pin: Peri<'_, impl NonInvertingPin<T> + Pin>,
) -> OpAmpInternalOutput<'_, T>
pub fn buffer_int( &mut self, pin: Peri<'_, impl NonInvertingPin<T> + Pin>, ) -> OpAmpInternalOutput<'_, T>
Configure the OpAmp as a buffer for the provided input pin, with the output only used internally, and enable the opamp.
The input pin is configured for analogue mode but not consumed, so it may be subsequently used for ADC or comparator inputs.
The returned OpAmpInternalOutput
struct may be used as an ADC input.
The opamp output will be disabled when it is dropped.
Sourcepub fn pga_int(
&mut self,
pin: Peri<'_, impl NonInvertingPin<T> + Pin>,
gain: OpAmpGain,
) -> OpAmpInternalOutput<'_, T>
pub fn pga_int( &mut self, pin: Peri<'_, impl NonInvertingPin<T> + Pin>, gain: OpAmpGain, ) -> OpAmpInternalOutput<'_, T>
Configure the OpAmp as a PGA for the provided input pin, with the output only used internally, and enable the opamp.
The input pin is configured for analogue mode but not consumed, so it may be subsequently used for ADC or comparator inputs.
The returned OpAmpInternalOutput
struct may be used as an ADC input.
The opamp output will be disabled when it is dropped.
Sourcepub fn standalone_dac_int(
&mut self,
m_pin: Peri<'_, impl InvertingPin<T> + Pin>,
) -> OpAmpInternalOutput<'_, T>
pub fn standalone_dac_int( &mut self, m_pin: Peri<'_, impl InvertingPin<T> + Pin>, ) -> OpAmpInternalOutput<'_, T>
Configure the OpAmp as a standalone DAC with the inverting input connected to the provided pin, and the output is connected internally to an ADC channel.
The input pin is configured for analogue mode but not consumed, so it may be subsequently used for ADC or comparator inputs.
The returned OpAmpInternalOutput
struct may be used as an ADC
input. The opamp output will be disabled when it is dropped.
Sourcepub fn standalone_dac_ext(
&mut self,
m_pin: Peri<'_, impl InvertingPin<T> + Pin>,
out_pin: Peri<'_, impl OutputPin<T> + Pin>,
) -> OpAmpOutput<'_, T>
pub fn standalone_dac_ext( &mut self, m_pin: Peri<'_, impl InvertingPin<T> + Pin>, out_pin: Peri<'_, impl OutputPin<T> + Pin>, ) -> OpAmpOutput<'_, T>
Configure the OpAmp as a standalone DAC with the inverting input connected to the provided pin, and the output connected to the provided pin.
The input pin is configured for analogue mode but not consumed, so it may be subsequently used for ADC or comparator inputs.
The output pin is held within the returned OpAmpOutput
struct,
preventing it being used elsewhere. The opamp will be disabled when
the OpAmpOutput
is dropped.
Sourcepub fn standalone_ext(
&mut self,
p_pin: Peri<'d, impl NonInvertingPin<T> + Pin>,
m_pin: Peri<'d, impl InvertingPin<T> + Pin>,
out_pin: Peri<'d, impl OutputPin<T> + Pin>,
) -> OpAmpOutput<'_, T>
pub fn standalone_ext( &mut self, p_pin: Peri<'d, impl NonInvertingPin<T> + Pin>, m_pin: Peri<'d, impl InvertingPin<T> + Pin>, out_pin: Peri<'d, impl OutputPin<T> + Pin>, ) -> OpAmpOutput<'_, T>
Configure the OpAmp in standalone mode with the non-inverting input
connected to the provided p_pin
, the inverting input connected to
the m_pin
, and output to the provided out_pin
.
The input pins are configured for analogue mode but not consumed, allowing their subsequent use for ADC or comparator inputs.
The output pin is held within the returned OpAmpOutput
struct,
preventing it being used elsewhere. The opamp will be disabled when
the OpAmpOutput
is dropped.
Sourcepub fn standalone_int(
&mut self,
p_pin: Peri<'d, impl NonInvertingPin<T> + Pin>,
m_pin: Peri<'d, impl InvertingPin<T> + Pin>,
) -> OpAmpOutput<'_, T>
pub fn standalone_int( &mut self, p_pin: Peri<'d, impl NonInvertingPin<T> + Pin>, m_pin: Peri<'d, impl InvertingPin<T> + Pin>, ) -> OpAmpOutput<'_, T>
Configure the OpAmp in standalone mode with the non-inverting input
connected to the provided p_pin
, the inverting input connected to
the m_pin
, and output is connected to the DAC.
The input pins are configured for analogue mode but not consumed, allowing their subsequent use for ADC or comparator inputs.
The returned OpAmpOutput
struct may be used as an ADC
input. The opamp output will be disabled when it is dropped.
Sourcepub fn calibrate(&mut self)
pub fn calibrate(&mut self)
Calibrates the operational amplifier.
This function enables the opamp and sets the user trim mode for calibration. Depending on the speed mode of the opamp, it calibrates the differential pair inputs. For normal speed, both the P and N differential pairs are calibrated, while for high-speed mode, only the P differential pair is calibrated.
Calibrating a differential pair requires waiting 12ms in the worst case (binary method).