开发板FS4412-ADC实验

本文介绍了模数转换器ADC的工作原理,重点关注了Exynos4412下的ADC控制器,包括其电路图、转换时间、寄存器详细说明以及编程示例,展示了如何设置精度和控制转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ADC简介

电子元器件

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

 CPU只能处理数字信号

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

 二、Exynos4412下的ADC控制器

1.2.2. 电路图:

 引脚

看到这几个引脚只有一个名字,是ADC专用的引脚

 芯片手册中的ADC功能:

 

 2.A/ D C 转换时间 :实际使用的时钟5us/5

 

三、ADC寄存器详解

 1.寄存器描述2.ADC控制寄存器

 3.ADC 存储转化结果寄存器

4.选择转换通道

4412内部只有一个ADC转换器,通过分时复用,同一时间只能转一个,不能同时转换

四 、ADC编程

#include"exynos_4412.h"
int main()
{
	unsigned int AdcValue;

	//将ADC的精度设置成12bit
	ADCCON = ADCCON | (1<<16);	
	//使能ADC的分频器
	ADCCON = ADCCON |(1<<14);
	//设置ADC的分频值 ADC时钟频率= PLCK/(19+1)=5MHZ
	//ADC的采样频率=5MHZ/5=1MHZ 
	ADCCON = ADCCON &(~(0xFF << 6)) | (19<<6);
	//关闭待机模式,使能正常模式
	ADCCON = ADCCON &(~(1<<2));
	//关闭通过读使能AD转换
	ADCCON = ADCCON & (~(1<<1));

	//选择转化通道 3通道
	ADCMUX = 3;

	while(1)
	{
		//开始转化
		ADCCON = ADCCON | 1;
		//等待转换结束
		while(!(ADCCON & (1<<15)));//非0为真
		//读取转换结果
		AdcValue = ADCDAT & 0xFFF;//高22位清0
		//将结果转换成实际的电压值,mv毫伏
		AdcValue = AdcValue * 0.44;
		//打印实验结果
		printf("AdcValue = %dmv\n",AdcValue);

		}
	return 0;
}

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值