Analog to Digital Converter
There are 10-bit analog ports available on GSM modules based on MT6261 or MT2503. Input voltage range from 0-2.8v gives digital output of 0-1023. On RDA8955 based modules, Input voltage range is from 0-1.8v gives digital output of 0 - 1023.
However analog ports on NBIoT module are 12-but and input voltage range from 0-1.4v with digital output of 0-4095.
Example Usage
#include <hw/adc.h>
/* init ADC */
adc_config(ADC_CH0);
/* ADC Read raw */
raw_value = adc_read(ADC_CH0);
/* ADC Read voltage in millivolts */
mv_value = adc_read_mv(ADC_CH0);
Application Example
4G LTE Module ADC Channel Mapping
ADC Channel |
EC600U |
EC200U |
N58 |
N716 |
L610 |
EG915U |
|---|---|---|---|---|---|---|
ADC CH 0 |
Pin 19 |
Pin 45 |
Pin 89 |
Pin 31 |
Pin 45 |
Pin 24 |
ADC CH 1 |
Pin 20 |
Pin 44 |
Pin 88 |
Pin 30 |
Pin 44 |
Pin 2 |
ADC CH 2 |
Pin 133 |
Pin 43 |
– |
– |
Pin 43 |
– |
ADC CH 3 |
Pin 114 |
– |
– |
– |
– |
– |
GSM/NB-IoT Module ADC Channel Mapping
RDA8955 based modules
ADC Channel |
M590 Pin |
MC65 Pin |
A9 Pin |
|---|---|---|---|
ADC CH 0 |
Pin 16 |
Pin 6 |
Pin 15 |
ADC CH 1 |
Pin 17 |
Pin 47 |
Pin 16 |
MT2503/MT6261/MT2625 based modules
ADC Channel |
MC20U Pin |
M56 Pin |
MC60 Pin
|
M66 Pin |
BC20 Pin |
SIM868 Pin |
|---|---|---|---|---|---|---|
ADC CH 0 |
Pin 6 |
Pin 61 |
Pin 6 |
Pin 9 |
Pin 6 |
Pin 38 |
ADC CH 1 |
Pin 47 |
Pin 12 |
Pin 47 |
Pin 16 |
Pin 54 |
– |
ADC CH 2 |
Pin 66 |
Pin 3 |
Pin 30 |
Pin 28 |
– |
– |
ADC CH 3 |
Pin 30 |
Pin 2 |
Pin 29 |
Pin 29 |
– |
– |
ADC CH 4 |
Pin 29 |
Pin 13 |
– |
– |
– |
– |
ADC CH 5 |
– |
Pin 33 |
– |
– |
– |
– |
Header File
Source: include/hw/adc.h
#include <hw/adc.h>
Functions
-
int adc_config(int ch)
Configure ADC channel and setup pin-muxing
- Parameters:
ch – [in] ADC Channel to use adcch_e
- Returns:
0 on success, negative error otherwise
-
unsigned int adc_read(int ch)
Read ADC Channel
Note
8910 has 12-bit ADC, whereas MT6261 has 10-bit ADC resolution
- Parameters:
ch – [in] ADC Channel to read adcch_e
- Returns:
ADC raw value, If ADC channel is not configured prior to calling this function, return value is unreliable.
-
unsigned int adc_read_mv(int ch)
Read adc channel value in mV.
- Parameters:
ch – [in] ADC Channel to read adcch_e
- Returns:
ADC value in millivolts, If ADC channel is not configured prior to calling this function, return value is unreliable.
Note
Please refer header file for actual number of channels available for respective board.
Header File
Source: include/plat/def_adc.h
#include <plat/def_adc.h>
