Exynos_4412——ADC实验

目录

一、ADC简介

二、Exynos_4412下的ADC控制器

三、ADC寄存器详解

四、ADC编程


一、ADC简介

 ADC(Analog to Digital Converter)即模数转换器,指一个能将模拟信号转化为数字信号的电子元件

对于CPU来说只能处理数字信号,而很多外围输入信号都是模拟信号,所以就有了ADC。

以前用51的时候这个单片机功能比较少在使用一些传感器时需要在额外买ADC芯片,但是后来我学32以及现在用这个4412他们都比较高级内部集成了ADC电路,我们直接把信号接到ADC引脚就行了。

模拟数字转换器_百度百科

分辨率

    ADC的分辨率一般以输出二进制数的位数来表示,当最大输入电压一定时,位数越高,分辨率越高; n位的ADC能区分输入电压的最小值为满量程输入的1/2^n; 比如一个12位的ADC,最大输入电压为1.8v,那么该ADC能区分的最小电压为1.8v/2^12≈0.00044v,当转换的结果为m时,则实际的电压值为m*(1.8v/2^12);

 

二、Exynos_4412下的ADC控制器

 

 

可选10位精度或者12位精度,有四个通道,最大转换速度1M s是采样 ps是秒,采样频率是1M/s。

他有一个前提ADC时钟是5MHz。每五个时钟采样一次。支持采样保持功能和低功耗模式

模拟输入范围是0-1.8v,我发现一个问题4412的电压都很低,这样功耗低,不容易发热,但是驱动一些硬件的能力也随着减弱了。

 PCLK是时钟源,是100M的,这里拿66M举例,当分频是65时,分频后的时钟频率就是1M

采样时间就是1M在除以5,因为他五个周期采样一次所以就是200kHz 也就是5us采样一次。

但是注意他不能超过5M因为他的极限速度是1M

三、ADC寄存器详解

控制寄存器、延时寄存器、数据寄存器、中断功能寄存器、选择通道

 

RES: 设置是10位还是12位

ECFLG:这个写的有问题它是只读的前面标错了,0正在转换1转换完成

PRSCEN: 1打开分频器0关闭分频器

PRSCVL:实际的分频倍数  一定要在19-255之间

STANDBY: 1待机模式(低功耗模式)0正常模式

READ_START:读走数据继续转化,不读就停止转化 1开启 0关闭

ENABLE_START:写1开始转化,然后自动变成0,开启READ_START模式此模式自动失效。

存储转化结果,读的时候要将高20位清零不然随机结果可能会影响结果。

由于ADC只有一个而我们有四个引脚支持ADC功能所以采取分时复用模式,同一时间只有一个通道可以转化

四、ADC编程

解压出一个新工程

 

#include "exynos_4412.h"

int main()
{
    unsigned int adc_value;
    //12
    ADCCON = ADCCON | (1 << 16);
    //使能ADC分频器
    ADCCON = ADCCON | (1 << 14);
    //100/(19+1)=5MHz 5 / 5 = 1MHz
    ADCCON = ADCCON & (~(0xFF << 6)) | (19 << 6);
    //关闭待机模式
    ADCCON = ADCCON & (~(1 << 2));
    //关闭通过读使能AD转换
    ADCCON = ADCCON & (~(1 << 1));

    ADCMUX = 3;

    while(1)
    {
        //开始
        ADCCON = ADCCON | 1;
        while(!(ADCCON & (1 << 15)));
        //读取
        adc_value = ADCDAT & 0xFFF;
        // 1800mV/2^12=1800/4096=0.44
        adc_value = adc_value * 0.44;
        printf("adc_value = %d mV\n",adc_value);
    }



    return 0;
}

 

 最大是1801差不多,因为这个0.44是约值。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇努力学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值