English
Language : 

C8051F54X_14 Datasheet, PDF (37/275 Pages) Silicon Laboratories – Mixed Signal ISP Flash MCU Family
C8051F54x
5.3.2. Setting the Gain Value
The three programmable gain registers are accessed indirectly using the ADC0H and ADC0L registers
when the GAINEN bit (ADC0CF.0) bit is set. ADC0H acts as the address register, and ADC0L is the data
register. The programmable gain registers can only be written to and cannot be read. See Gain Register
Definition 5.1, Gain Register Definition 5.2, and Gain Register Definition 5.3 for more information.
The gain is programmed using the following steps:
1. Set the GAINEN bit (ADC0CF.0)
2. Load the ADC0H with the ADC0GNH, ADC0GNL, or ADC0GNA address.
3. Load ADC0L with the desired value for the selected gain register.
4. Reset the GAINEN bit (ADC0CF.0)
Notes:
1. An ADC conversion should not be performed while the GAINEN bit is set.
2. Even with gain enabled, the maximum input voltage must be less than VREGIN and the maximum
voltage of the signal after gain must be less than or equal to VREF.
In code, changing the value to 0.44 gain from the previous example looks like:
// in ‘C’:
ADC0CF |= 0x01;
ADC0H = 0x04;
ADC0L = 0x6C;
ADC0H = 0x07;
ADC0L = 0xA0;
ADC0H = 0x08;
ADC0L = 0x01;
ADC0CF &= ~0x01;
// GAINEN = 1
// Load the ADC0GNH address
// Load the upper byte of 0x6CA to ADC0GNH
// Load the ADC0GNL address
// Load the lower nibble of 0x6CA to ADC0GNL
// Load the ADC0GNA address
// Set the GAINADD bit
// GAINEN = 0
; in assembly
ORL ADC0CF,#01H
MOV ADC0H,#04H
MOV ADC0L,#06CH
MOV ADC0H,#07H
MOV ADC0L,#0A0H
MOV ADC0H,#08H
MOV ADC0L,#01H
ANL ADC0CF,#0FEH
; GAINEN = 1
; Load the ADC0GNH address
; Load the upper byte of 0x6CA to ADC0GNH
; Load the ADC0GNL address
; Load the lower nibble of 0x6CA to ADC0GNL
; Load the ADC0GNA address
; Set the GAINADD bit
; GAINEN = 0
Rev. 1.1
37