Peripheral Simulation
For STMicroelectronics STM32F103VB — Analog/Digital Converter 1 (ADC1)
Simulation support for this peripheral or feature is comprised of:
- Dialog boxes which display and allow you to change peripheral configuration.
- VTREGs (Virtual Target Registers) which support I/O with the peripheral.
These simulation capabilities are described below.
Analog / Digital Converter Dialog
The Analog / Digital Converter dialog displays and configures
the A/D converter. The controls in this dialog are separated into
several logical groups.
Control and Status
-
ADC_CSR (ADC Control & Status Register)
contains the following control and status settings:
-
A (Channel Address) selects the channel to be
sampled when external addressing (AXT) is enabled.
-
OR (Overrun) is set when one of the data channels is
overwritten before being read.
-
AXT (Addressing External Enable) is set to allow
single-channel conversion. If reset, channels are addressed in a
round-robin fashion.
-
IEn (Interrupt Enable - Channel n) is
set to enable interrupts for the corresponding channel
n.
-
DAn (Data Available - Channel n) is
set when new sample data is ready to be read for channel
n.
Prescaler
-
ADC_CPR (ADC Prescaler Register) contains the following
prescaler settings:
-
PRESC (Prescaler Value) is the 12-bit PCLK2 clock
divisor used to produce the oversampling clock.
-
Fmod(Hz) (Modulator Oversampling Frequency) is the
sampling frequency input to the ADC.
-
Rate(Hz) (Modulator Oversampling Rate) is oversampling
rate based on the prescaling factor (PRESC).
Data
-
ADC_DATAn (ADC Data Register) contains the raw
converted result of the ADC conversion for channel n.
-
DATAn (Converted Data) contains the converted
data value for channel n.
Analog Inputs
-
AINn (Analog Input) contains the simulated
analog input voltage (VTREG AINn) for channel
n.
Reference & Center
-
VREF is the feedback reference voltage used for the
ADC.
-
VCM is the midpoint between the voltage range of the ADC
converter and the feedback reference voltage (VREF).
A/D Converter Clock VTREG
Data Type: unsigned long
ADC1_INx Input Voltage VTREG
Data Type: float
The ADC1_INx VTREGs set the analog input voltages for simulated
A/D converters. The ADC1_INx VTREGs represent the inputs to the
analog input pins of the MCU for analog input 0, 1, 2, and so on.
ADC1_IN0 sets the input voltage for analog input #0, ADC1_IN1 sets
the input voltage for analog input #1, etc. If you have properly
configured the analog inputs, the following commands (typed in the
debugger's Command Window) input the voltages specified.
ADC1_IN0 = 0.000 /* Analog Input 0 = 0.000 volts */
ADC1_IN1 = 2.500 /* Analog Input 1 = 2.500 volts */
ADC1_IN2 = 4.999 /* Analog Input 2 = 4.999 volts */
You may create a debugger signal function to periodically change
the value of the A/D input. The following signal function increases
the A/D Channel 1 input voltage by 0.1 volts each second.
signal void ADC1_IN1_sig (void) {
float f;
for (f = 0.0; f < 5.0; f += 0.1)
{
swatch (1.0); // Delay 1 second
ADC1_IN1 = f; // Set ADC1_INx1 Voltage
}
}