22.3.5.3 APORT Conflicts
The ADC shares common analog buses connected to its APORTs (1-4) with other analog peripherals (see
). As the ADC performs single or scan conversions, it requests the shared buses and sends selections for the
control switches to connect the desired I/O pins. If another analog peripheral requests the same shared bus at the same time, there will
be a collision and none of the peripherals will be granted control of that bus.
To help debug over-utilization of APORT resources, the ADC hardware provides status information in local registers. The ADCn_APOR-
TREQ register gives the user visibility into which APORT(s) the ADC is requesting given the setting of the input selection registers.
ADCn_APORTCONFLICT reports any conflicts that occur. If PROGERR in ADCn_IEN is set, any conflict generates an interrupt. The
PROGERR field in the ADCn_STATUS register indicates whether the programming error happened as a result of an APORT bus con-
flict (BUSCONF) or from a negative-input selection conflict (NEGSELCONF). If the PROGERR interrupt occurred due to a negative se-
lection conflict, then the interrupt can be cleared by software only after correcting the conflict. If a software clear is attempted without
correcting the configuration, the interrupt will be cleared for one clock cycle but then it will trigger again as the invalid configuration still
persists.
Note:
The ADC requests shared bus connections as soon as that bus is selected in the input select registers, even if the ADC is not
performing any conversions. This means that by using the APORT request, the ADC will acquire the associated shared analog bus,
preventing other peripherals from using it. The bus will be released only when the input select registers are changed.
It is possible for the ADC to passively monitor shared bus signals without controlling the switches and creating bus conflicts. This can
be done by setting the ADCn_APORTMASTERDIS register. When ADCn_APORTMASTERDIS is used, channel selection defers to the
peripheral acting as the bus master for that shared bus, and no bus conflict will occur. The ADC will connect its input to the shared bus,
but the specific channel will be controlled by the peripheral designated as the bus master.
22.3.6 Reference Selection and Input Range Definition
The full scale voltage (VFS) of the ADC is defined as the full input range, from the lowest possible input voltage to the highest. For
single-ended conversions, the input range on the selected positive input is from 0 to VFS. For differential conversions, the input to the
converter is the difference between the positive and negative input selections. This can range from -VFS/2 to +VFS/2.
VFS for the converter is determined by a combination of the selected voltage reference (VREF) and programmable divider circuits on
the ADC input and voltage reference paths. Users have full control over the VREF and divider selections, offering a very flexible and
wide selection of VFS values. In most applications however, it is not necessary to adjust VFS beyond a set of common pre-defined
choices. For the simplest VFS configuration, refer to
22.3.6.1 Basic Full-Scale Voltage Configuration
. If the application requires a VFS
configuration not available in the pre-defined choices,
22.3.6.2 Advanced Full-Scale Voltage Configuration
covers additional configura-
tion options.
22.3.6.1 Basic Full-Scale Voltage Configuration
Basic configuration of the VFS (full scale voltage) for the converter is done by programming the REF bitfield in ADCn_SINGLECTRL
(for single channel mode) or ADCn_SCANCTRL (for scan mode) to any of the pre-defined options. The list of available pre-defined VFS
options is:
• VFS = 1.25 V using internal VBGR as the reference source
• VFS = 2.5 V using internal VBGR as the reference source
• VFS = AVDD using AVDD as the reference source (AVDD ≤ 3.6 V)
• VFS = 5 V using internal VBGR as the reference source
• VFS = ADCn_EXTP external pin as a single-ended reference source (1.2 V - 3.6 V)
• VFS = ADCn_EXTP - ADCn_EXTN external pins as a differential reference source. ( 1.2 V - 3.6 V difference)
• VFS = 2 x AVDD using AVDD as the reference source (AVDD ≤ 3.6 V)
The maximum and minimum input voltage which the ADC can recognize at any external pin is limited to the supply voltages. If VFS is
configured to be larger than the supply range, the full ADC range will not be available. For example, with a 3.3 V supply and VFS con-
figured to 5 V, the input voltage for single-ended conversions will be limited to 0 to 3.3 V, though the effective VFS is still 5 V.
The ADC uses a chip-level bias circuit to provide bias current for its operation. For highest accuracy when using a VBGR-derived inter-
nal bandgap reference source, GPBIASACC in ADCn_BIASPROG should be cleared to 0. This will allow the ADC to enable high-accu-
racy mode from the bias circuitry during conversions. When AVDD or an external pin reference option is used, software should set
GPBIASACC in ADCn_BIASPROG to 1 to conserve energy.
If the pre-defined VFS options do not suit the particular application, refer to
22.3.6.2 Advanced Full-Scale Voltage Configuration
more advanced VFS options.
EFM32JG1 Reference Manual
ADC - Analog to Digital Converter
silabs.com
| Smart. Connected. Energy-friendly.
Preliminary Rev. 0.6 | 729