1.目的
adc在项目中经常需要用到
2.分析
da14580 是一个10位的adc,1.2v的参考电压。可以设置为单端输入也可以设置为查分输入
3.平台:
协议栈版本:DA1458x_SDK
编译软件:keil 5.20
硬件平台:开发板
例子:DA1458x_SDK5.0.3\DA1458x_SDK5.0.3\DA1458x_SDK\5.0.3\projects\target_apps\ble_examples\prox_reporter\Keil_4
4.步骤
ADC的特性
ADC
DA14580配有高速超低功耗的10位通用模拟-数字转换器(GPADC)。它拥有单极模式以及双相(微分)模式。ADC有自己的大小为1.2 V的稳压器(LDO)。
-10位动态ADC 65 ns转换时间
-最大采样率3.3 Msample / s
-超低功耗
-两个单端和差分输入
•四单端或两个微分外部输入
•电池监控功能
•斩波函数
•抵消和零刻度调整
•共模输入电平调整
a.da14580有4路10位的adc,
b.adc对应的管脚映射如下
ADC0--P0_0
ADC1_P0_1
ADC2--P0_2
ADC3--P0_3
c.adc参考电压.输入电压范围
可以看出adc的参考有一个1.2v的参考电压
1.当GP_ADC_ATTN3X =0 的时候,输入电压最大为1.2v
当GP_ADC_ATTN3X =1 的时候,输入电压最大为3.6v,输入电压衰减3倍即输入电压的1/3作为输入
测量的通道有如下:
通道有如下选择:
P0_0 P0_1 P0_2 P0_3
AVS
VDD_REF :参考电压
VDDRTT VBAT3V VDCDC VBAT1V 几种选项
/*******************************************************************************
*???? : battery_init
*?? : µç³Ø³õʼ»¯
* ronny
*? ? : void
*? ? : void
*? ? : void
*???? : 20160322
*******************************************************************************/
void battery_init(void)
{
adc_init(GP_ADC_SE,0,0/*GP_ADC_ATTN3X*/);
adc_enable_channel(ADC_BATTERY_CHANNNAL);
}
adc_init() 设置的是 单端输入 输入端信号不衰减
adc_enable_channel: 是能通道
/*******************************************************************************
*???? : Get_battery_adc
*?? : »ñµÃadc
* ronny
*? ? : void
*? ? : void
*? ? : void
*???? : 20160322
*******************************************************************************/
uint16_t Get_battery_adc(void)
{
uint16_t adc_value = adc_get_sample();
return adc_value;
}
#ifndef __BATTERY__H
#define __BATTERY__H
#include "stdio.h"
#include "adc.h"
#define ADC_BATTERY_CHANNNAL ADC_CHANNEL_P02 //通道选择
void battery_init(void);
uint16_t Get_battery_adc(void);
#endif