历史上的今天
返回首页

历史上的今天

今天是:2024年12月10日(星期二)

正在发生

2021年12月10日 | Exynos4412裸机开发 —— A/D转换器

2021-12-10 来源:eefocus

一、Exynos4412 A/D转换器概述

1、简述

10位或12位CMOS再循环式模拟数字转换器,它具有10通道输入,并可将模拟量转换至10位或12位二进制数。5Mhz A/D 转换时钟时,最大1Msps的转换速度。A/D转换具备片上采样保持功能,同时也支持待机工作模式。


2、特性

ADC接口包括如下特性。

1)10bit/12bit输出位可选。

2)微分误差  1.0LSB。

3)积分误差  2.0LSB。

4)最大转换速率5Msps.

5) 功耗少,电压输入1.8V。

6)电压输入范围 0~1.8V。

7)支持偏上样本保持功能。

8)通用转换模式。


3、模块图

4412A/D转换器的控制器接口框图如下:



二、Exynos4412 A/D 控制器寄存器

1、A/D控制寄存器ADCCON



2、A/D转换数据寄存器ADCDAT0



3、A/D转换的转换时间计算

例如: PCLK为100MHz,PRESCALER = 65 ;所有10位转换时间为

100MHz/(99+1) = 1MHz

转化时间为1/(1MHz/5 cycles) = 5us。

完成一次A/D转换需要5个时钟周期。A/D转换器的最大工作时钟为5MHz,所以最大采样率可以达到1Mit/s.


三、A/D转换器实例

1、电路连接如下:

利用一个电位计输出电压到4412的AIN3管脚。输入的电压范围为0~1.8V。



2、程序编写

1、相关寄存器定义

  1. /***********************  ADC ******************************************/  

  2.   

  3. #define     ADC_CFG     __REG(0x10010118)  

  4.   

  5.   

  6. #define     ADCCON      __REG(0x126C0000)  

  7. #define     ADCDLY      __REG(0x126C0008)  

  8. #define     ADCDAT      __REG(0x126C000C)  

  9. #define     CLRINTADC   __REG(0x126C0018)  

  10. #define     ADCMUX      __REG(0x126C001C)  

2、具体代码如下:

注:这里使用读-启动模式

  1. #include "exynos_4412.h"  

  2. #include "pwm.h"  

  3. #include "uart.h"  

  4.   

  5. unsigned char table[10] = {'0','1','2','3','4','5','6','7','8','9'};  

  6. void mydelay_ms(int time)  

  7. {  

  8.     int i, j;  

  9.     while(time--)  

  10.     {  

  11.         for (i = 0; i < 5; i++)  

  12.             for (j = 0; j < 514; j++);  

  13.     }  

  14. }  

  15.   

  16. adc_init(int temp)  

  17. {  

  18.     ADCCON = (1 << 16 | 1 << 14 | 99 <<6 | 1 << 1);  

  19.     ADCMUX = 3;  

  20.     temp = ADCDAT & 0xfff;  

  21. }  

  22.   

  23. /* 

  24.  *  裸机代码,不同于LINUX 应用层, 一定加循环控制 

  25.  */  

  26. int main (void)  

  27. {  

  28.     unsigned char bit4,bit3,bit2,bit1;  

  29.     uart_init();  

  30.     unsigned int temp = 0;  

  31.     adc_init(temp);  

  32.     puts("开始转换n");  

  33.     while(1)  

  34.     {  

  35.         while(!(ADCCON & 0x8000));  

  36.         temp = ADCDAT & 0xfff;  

  37.         printf("U = %dn",temp);  

  38.         temp = 1.8 * 1000 * temp/0xfff;  

  39.         bit4 = temp /1000;  

  40.         putc(table[bit4]);  

  41.         bit3 = (temp % 1000)/100;  

  42.         putc(table[bit3]);  

  43.         bit2 = ((temp % 1000)%100)/10;  

  44.         putc(table[bit2]);  

  45.         bit1 = ((temp % 1000)%100)%10;  

  46.         putc(table[bit1]);  

  47.         puts("mV");  

  48.         putc('n');  

  49.         mydelay_ms(1000);  

  50.     }  

  51.    return 0;  

  52. }  

推荐阅读

史海拾趣

晨晶电子(Chenjing Electronics)公司的发展小趣事

晨晶电子自成立以来,始终坚持以技术创新为核心竞争力。公司拥有一支高素质的研发团队,致力于石英晶体元器件的研发与生产。通过不断的技术创新和产品升级,晨晶电子在行业内逐渐树立了技术领先的地位。其产品广泛应用于通信、计算机、消费电子等领域,赢得了众多客户的信赖和好评。

GAIA Converter Inc公司的发展小趣事

在环保意识日益增强的今天,锋鸣电子(深圳分公司)积极响应国家号召,致力于绿色电子产品的研发与生产。公司投入大量资金引进环保设备和生产工艺,确保产品从原材料采购到生产制造的全过程都符合环保标准。同时,锋鸣电子还积极推广节能减排理念,为客户提供绿色、低碳的电子产品解决方案。凭借在绿色环保方面的突出表现,锋鸣电子赢得了业界的广泛赞誉。

FDK AMERICA公司的发展小趣事

随着环保意识的日益增强,FDK AMERICA公司积极响应绿色制造理念。公司投入大量资金研发环保型电子产品,采用环保材料和绿色生产工艺,减少对环境的影响。同时,公司还积极参与各类环保活动,倡导绿色消费理念。这种环保举措不仅提升了公司的社会形象,也为公司赢得了更多消费者的青睐。

Gigabit Logic Inc公司的发展小趣事
采用集成电路等现代电子元器件,提高了电路的可靠性和稳定性。
Eris Technology Corp公司的发展小趣事

在当今日新月异的科技时代,Eris Tech始终坚持以创新驱动为发展动力。公司不断加大研发投入力度,积极引进新技术、新材料和新工艺,推动产品升级和产业升级。同时,Eris Tech还注重人才培养和团队建设,吸引了一批高素质的人才加入公司。随着技术的不断创新和人才的不断积累,Eris Tech将在未来电子行业中继续发挥重要作用。

请注意,以上故事为虚构内容,旨在展示Eris Technology Corp公司可能的发展路径和成就。实际情况可能因市场变化、技术演进和公司策略调整而有所不同。

DBS Microwave Inc公司的发展小趣事

在DBS Microwave的发展过程中,技术创新一直是其核心竞争力。公司不断投入研发资源,突破技术瓶颈,推出了一系列具有创新性的产品。例如,在XXXX年,公司成功研发出了一款高性能的微波滤波器,其性能指标在当时的市场上处于领先地位。这一创新不仅为公司赢得了大量订单,也进一步巩固了其在行业内的技术领先地位。

问答坊 | AI 解惑

运算放大器技术几大趋势

虽然早先有关“分立元件运算放大器产品将与其它产品进行更高级别的集成或其市场将有所收缩”这一预言令人忧心忡忡,但这类产品仍旧保持着勃勃生机。   事实上,目前运算放大器显示着前所未有的良好势头。而且,在未来几年内,分立元件运算放大器 ...…

查看全部问答>

安检门原理及常见问题和维修方法

一、安检门原理由晶振产生3.5-4.95M的正弦振荡,由分频器分频为7.8K左右正弦波,经三极管与线圈进行功率放大后输入门板(7区)大线圈进行电磁波发射,由门内1-6区线圈分别进行接收。接收后,将接收到的信号与基准信号进行了比较,发现变化后,改变采 ...…

查看全部问答>

一张电路图

研究了半天同学的电路图没有弄懂哇,帮我呀扭一下哇…

查看全部问答>

使用BSP建立的SDK所写的程序

各位前辈好! 目前我在练习的一些CE的程式 是套用我PB所建立的SDK所写! 这SDK的project是使用厂商的BSP所创 请问这样我程序撰写出来可用的平台是所有CE平台都可用吗? 还是会有所限制! 因为我目前 有一个对话盒的程序,在别块母板上执行会出现 ...…

查看全部问答>

【关注】《ARM嵌入式常用模块与综合系统设计实例精讲》练习题与答案

本文转引自 广告,被过滤 ARM技术讨论版 广告,被过滤 非常详细的问题集锦,相信朋友们看过之后会对整个嵌入式ARM有一个更高远更深刻的认识。 第1章: 填空题 1.ARM内核有四个功能模块,即______、______、______、______,可供生产厂商根据不 ...…

查看全部问答>

NAND FLASH坏块检测时不同块的检测时间不同

    pxa255+wce4.2系统,nand flash一共8192个block,开机检测坏块时,前面1000个左右非常慢,后面的非常快,不知道什么原因?我把FMD_GetBlockStatus设置为固定值还是同样的结果...是不是FAL层对不同的block处理过程不一样,导致检测时 ...…

查看全部问答>

如何获取进程内各句柄的属性

在使用process explorer时,发现它能够显示出某个进程的所有句柄,例如该进程打开的所有文件句柄,请问这是怎么实现的。使用了哪个api函数…

查看全部问答>

招人STMCU马达控制FAE

ST代理商招马达控制应用FAE 一人。如有兴趣的可将简历发到我的邮箱(grant_jx@163.com),会帮忙推荐的。简历需注明薪资要求。 要求: 1、熟悉电机控制应用(PMSM、BLDC...); 2、至少使用过一种MCU、DSP开发过电机控制应用的产品, ...…

查看全部问答>

单片机C语言程序设计实训100例

单片机C语言程序设计实训100例…

查看全部问答>

量变到质变的道理,在fpga学习的过程中,同样适用

从去年接触fpga到现在,也有近一年的时间了,虽然这一年中乱七八糟的事很分心,真正拿来学习fpga的时间也不是很多,但是,还是收获不小……也不记得当初为什么选择fpga了,反正现在的感觉就是,我喜欢这东西,虽然我很笨,但是,我就是想学好这东西 ...…

查看全部问答>