2.1. ADC
Overview
提供ADC应用示例、常用相关API介绍和常见问题。
2.1.1. 应用实例
示例演示:
配置测量引脚
添加测量通道
example: 具体示例代码详见 apps/common/example/peripheral/adc/adc_test.c
,示例工程实现需在 apps/demo/demo_DevKitBoard/include/demo_config.h
中开启宏 USE_ADC_TEST_DEMO
。
2.1.2. 常见问题说明
一般初始化函数在
JL_AC79_DevKitBoard.c
的void board_init()
函数中已经声明调用添加测量通道之后,需延时操作,不能马上去读取ADC值。
8 bitADC(A/D转换器),其时钟最大不可超过2MHz。
电压测量范围是0~3.3V,测量精度为0~0.0032V。
使用
adc_get_voltage()
函数时,若数据不对,芯片需要经过杰理烧写器trim校准才行。
Important
测试IO误差每800mv误差累积是10mv,误差累积是线性的,用户可以据此自行估计所测的误差范围。
2.1.3. API参考
AD channel define
-
AD_CH_PA07
-
AD_CH_PA08
-
AD_CH_PA10
-
AD_CH_PB01
-
AD_CH_PB06
-
AD_CH_PB07
-
AD_CH_PC00
-
AD_CH_PC01
-
AD_CH_PC09
-
AD_CH_PC10
-
AD_CH_PH00
-
AD_CH_PH03
-
AD_CH_DM
-
AD_CH_DP
-
AD_CH_RTC
-
AD_CH_PMU
-
AD_CH_SYSPLL
-
AD_CH_AUDIO
-
AD_CH_WIFI
-
AD_CH_CTMU
-
ADC_PMU_CH_VBG
-
ADC_PMU_CH_VDC14
-
ADC_PMU_CH_SYSVDD
-
ADC_PMU_CH_VTEMP
-
ADC_PMU_CH_PROGF
-
ADC_PMU_CH_VBAT
-
ADC_PMU_CH_LDO5V
-
ADC_PMU_CH_WVDD
-
AD_CH_LDOREF
-
AD_CH_PMU_VBG
-
AD_CH_VDC14
-
AD_CH_SYSVDD
-
AD_CH_VTEMP
-
AD_CH_VBAT
-
AD_CH_LDO5V
-
AD_CH_WVDD
-
AD_AUDIO_VCM
-
AD_AUDIO_VOUTL
-
AD_AUDIO_VOUTR
-
AD_AUDIO_DACVDD
-
AD_CH_VCM
-
AD_CH_VOUTL
-
AD_CH_VOUTR
-
AD_CH_DACVDD
-
ADC_MAX_CH
-
void adc_init(void)
adc_init, adc初始化
-
void adc_pmu_detect_en(u32 ch)
adc_pmu_detect_en, 使能adc通道
- Parameters
ch – : ADC通道号, AD_CH_PA07
-
void adc_vdc14_save(void)
adc_vdc14_save, 存储vdc14的值
-
void adc_vdc14_restore(void)
adc_vdc14_restore, 再次存储vdc14的值,避免被中途修改
-
u32 adc_get_value(u32 ch)
adc_get_value, 获取adc通道测得的数值(3.3*数值/1024)即得对应的电压值采用等待的方式采值,直到转换结束,才出来,即死等
- Parameters
ch – : ADC通道号, AD_CH_PA07
- Returns
当前通道的AD值
-
u32 adc_add_sample_ch(u32 ch)
adc_add_sample_ch, 添加adc测试通道
- Parameters
ch – : ADC通道号
- Returns
当前通道值
-
u32 adc_remove_sample_ch(u32 ch)
adc_remove_sample_ch, 移除adc测试通道
- Parameters
ch – : ADC通道号
- Returns
当前通道值
-
u32 adc_get_voltage(u32 ch)
adc_get_voltage, 换算电压的公式函数, 获取adc通道电压值,如果测得与实际不符,则需留意芯片是否trim过,trim值是否正确。
- Parameters
ch – : ADC通道号
- Returns
当前通道的电压值,单位mv