历史上的今天
返回首页

历史上的今天

今天是:2025年03月16日(星期日)

正在发生

2018年03月16日 | 关于C8051F单片机的ADC注意事项

2018-03-16 来源:eefocus

F020的片内有1个1.2V、15×10-6/℃的带隙电压基准发生器和1个两倍增益的输出缓冲器。2.4V的基准电压(VREF)可通过外引脚分别接入ADC0、ADC1和DAC中。VREF对外带载能力为200μA(建议在驱动外部负载时,对地接1个负载电阻)。ADC使用偏置时,必须将参考源控制寄存器REFxCN中的位1置于"1";如置于"0",则关闭内部偏压,此时可通过VREF引脚(引脚12)使用外部基准电压,外部基准电压必须小于VAV±0.3V(还要大于1V)。不用ADC,也不用DAC时,可将REFxCN的位0置"0",使缓冲放大器处于省电方式(输出为高阻态)。

 

设置REF0CN的位4为"0"时,ADC0用VREF偏置,为"1"时,用DAC0输出偏置;设置为REF0CN的位3为"0"时,ADC1用VREF偏置,为"1"时,用AV+偏置。


在F020的ADC电路中,输入多路选择开关AMUX后面都带有1个可用编程设置增益的内部放大器(PGA)。当各模拟通道之间输入的电压信号范围差距较大时,或需要放大一个具有较大直流偏移的信号时(在差分输入方式,DAC可用于提供直流偏移)显得尤为有用。设置的方式是配置ADCxCF中的位2~0(000对应PGA的增益为1;001对应为2;010对应4;011对应为8;10x对应为16、11x对应为0.5)。这里的增益对温度传感器信号也起作用。当增益为1时,VTEMP=0.002 86(V/℃)(TEMPC)℃+0.776V。

      ADC的数据与控制

      对应单端输入,ADC结果数据字格式为:0V--0000,VREF--0FFF或FFF0。

      对应差分输入,ADC结果数据字格式为2的补码:VREF--07FF,0--0000,-VREF--F800或8000。

      将ADCxCN的位0置"0"可使结果右对齐;置"1"可使结果左对齐。当差分输入时,右对齐产生的多余高位是符号扩展位。

      C8051F系列单片机内还设有数据相关窗口中断发生器或称可编程窗口检测器,也叫ADC上(下)数据寄存器ADC0G(L)TH(L),用后台方式监视一个关键电压。当转换数据位于规定的窗口之内(或之外)时,向控制器申请转换结束中断。要求在窗口之内中断时,上限寄存器LT装入高位窗口数,下限寄存器GT装入低位窗口数;若要求在窗口之外中断时,则在下限寄存器GT中装入高位窗口数,在上限寄存器LT中装入下限窗口数。

      复位时,ADC部分的状态为:内部电压基准缓冲器关闭、内部偏压关闭、内部传感器关闭、ADC禁止、转换结果数据寄存器右对齐、12位的端口均为单端输入、端口指向AIN0、SAR转换时钟为33个系统时钟、内部放大器增益为1、下限数据寄存器为FFFFH、上限数据寄存器为0000H。

      综合F020中与ADC相关的各要素,要想正确应用ADC功能,应按下列顺序编程:设置参考电压>设置允许ADC>设置跟踪(启动)方式>设定数据对齐>配置通道>选择通道>设置转换时钟和增益>设定窗口检测上、下限>启动转换。操作SFR的顺序(以12位为例)为:REF0CN>ADC0CN>AMX0CF>AMUX0SL>ADC0CF>ADC0GTH>ADC0GTL>ADC0LTH>ADC0LTL>ADC0CN或其它启动方式。 C8051F020(简称F020)是美国德州Cygnal 公司推出的一种混合信号SOC型8位单片机。它属于C8051F系列中的F02X子系列。其性能价格比在目前应用领域极具竞争力。F020具有8路12位A/D转换(简称ADC)接口和8路8位在线可编程(ISP)的ADC电路,片上的特殊功能寄存器(简称SFR)有15个与ADC的控制相关,它们是:

      AMUX0SL-AMUX0通道选择寄存器,复位值为00000000;

      AMX0CF-AMUX0配置寄存器,复位值为00000000;

      ADC0CF-ADC0配置寄存器,复位值为11111000;

      ADC0CN-ADC0控制寄存器,复位值为00000000;

      ADC0H-ADC0数据字MSB寄存器,复位值为00000000;

      ADC0L-ADC0数据字LSB寄存器,复位值为00000000;

      ADC0GTH-ADC0下限数据高字节寄存器,复位值为11111111;

      ADC0GTL-ADC0下限数据低字节寄存器,复位值为11111111;

      ADC0LTH-ADC0上限数据高字节寄存器,复位值为00000000;

      ADC0LTL-ADC0上限数据低字节寄存器,复位值为00000000;

      AMX1SL-AMUX1通道选择寄存器,复位值为00000000;

      ADC1CN-ADC1控制寄存器,复位值为00000000;

      ADC1CF-ADC1配置寄存器,复位值为11111000;

      ADC1-ADC1数据字寄存器,复位值为00000000;

      REF0CN-基准电压控制寄存器,复位值为00000000;

      ADC是混合信号控制器的重要功能,如欲在应用编程中得心应手,就必须对其相关的要素有较清晰的整体认识。

      1) ADC的精度与通道

      F020采用TQFP100封装,芯片引脚有8个(引脚18-25)专用于模拟输入,是8路12位ADC的输入端。每路12位的转换精度都是其自身的±1LSB(最低位)。实际上,对应12位逐次逼近寄存器型(SAR)ADC只有1个,在它与各输入端之间有1个具有9 通道输入的多路选择开关(可配置模拟多路开关AMUX)。AMUX的第9通道连接温度传感器。在F020是中,12位ADC称为ADC0,另有8路8位在系统可编程(ISP)的ADC电路称为ADC1。其8个外接引脚与P1口复用,片内结构与ADC0相近,只是转换的位数为8位,转换精度为8位的±1LSB。

      ADC0端口的每一对均可用编程设置成分别地单端输入或差分输入。差分输入时的端口配对为0-1、2-3、4-5、6-7,此设置由通道选择寄存器AMUX0SL的低4位和通道配置寄存器AMUX0CF的低4位确定。在AMX0CF中,位3~0各对应2个引脚通道。位值=0,表示是独立的单端输入(复位值均为单端输入);位值=1,表示是差分输入对。对应AMX0CF选差分输入时,AMUX0SL中只有在选双数(含0)通道时才有效(注:AMUX0SL低4位为1xxx时,不论AMX0CF低4位为何值,均选温度传感器)。

      将REF0CN的位3置"1"时,允许使用温度传感器;置 "0"时,温度传感器的输出为高阻态。温度传感器的值可用于修正参数的非线性或记录、调整与温度相关的数据。

      2) ADC的速率与启动

      C8051F系列单片机中ADC的速率都是可用编程设置的,但最少要用16个系统时钟。一般在转换之前还自动加上3个系统时钟的跟踪/保持捕获时间(>1.5μs)。设置F020内ADC速率的方法是通过配置寄存器ADCxCF(x为0或1)的位7~3来进行的,其复位值为11111(位7~3=SYSCLK/CLKSAR-1)。

      一般在启动ADC之前都要处于跟踪方式,控制寄存器ADCxCN的位6如果为"0",则一直处于跟踪方式(此时启动4种启动方式都可比跟踪启动快3个系统时钟);如为"1",则有4种跟踪启动方式可选择,即对ADCxCN中的位3~2赋值;00为向ADBUSY写1时跟踪(软件命令);01为定时器3溢出跟踪;10为CNVSTR上升沿跟踪(外部信号);11为定时器2溢出跟踪。

      复位时,ADCxCN的位7为0,处于关断状态。每次转换结束时,ADCxCN的位5为"1",位4(忙标志)的下降沿触发结束中断,也可用软件查询这些状态位。


推荐阅读

史海拾趣

EPCOS (TDK)公司的发展小趣事

面对数字化转型和能源转型的市场趋势,TDK-EPC公司积极调整战略方向,加大在传感器系统、新能源技术等领域的研发投入。通过与全球各大高校和研究机构的紧密合作,公司成功开发出了多款高性能的传感器系统和新能源产品,为客户提供了更加全面、高效的解决方案。这些成果不仅彰显了TDK-EPC公司的技术实力和市场竞争力,也为公司的未来发展奠定了坚实的基础。

Everett Charles Technologies (ECT)公司的发展小趣事

1965年,Everett Charles Technologies (ECT) 公司正式成立,标志着其在电子测试系统硬件与软件领域的起点。ECT的创始人凭借对电子技术的深刻理解和市场需求的敏锐洞察,成功开发出了一系列符合工业标准的产品,包括POGO探针、ValuGrid测试治具等。这些产品的推出,不仅奠定了ECT在电子测试领域的基础,也为公司的后续发展提供了强大的动力。

ADTech公司的发展小趣事

AdTech公司一直注重创新,不断投入研发资源以推出新产品和解决方案。公司通过优化芯片结构设计、提升器件封装技术等手段,不断提升QCL的性能和稳定性。此外,公司还积极探索QCL在新能源、环保等领域的应用潜力,开发出了一系列具有创新性和实用性的产品。这些创新成果不仅提升了公司的核心竞争力,也为行业的发展注入了新的活力。

E-T-A Circuit Breakers公司的发展小趣事

自1970年代起,E-T-A公司开始积极拓展全球市场,逐渐在国际上建立了知名度。公司设立了多个分支机构和办事处,覆盖了全球60多个国家,为当地客户提供优质的销售和技术支持。这一举措不仅增强了公司的国际竞争力,也为其在全球范围内推广先进的电路保护技术提供了有力支持。

Fremont_Micro_Devices_USA公司的发展小趣事

1961年,E-T-A公司推出了其第一款电子式保险丝,这一创新引领了电气保护设备的新时代。这款电子式保险丝采用了可编程技术,可以根据电路需求进行精确的保护和控制。它的出现大大提高了电气系统的安全性和可靠性,并为E-T-A公司在电路保护领域奠定了坚实的基础。

Hmc Inc公司的发展小趣事

“Global Memory Tech”公司在HMC技术的研发过程中,深刻认识到国际合作的重要性。该公司积极与全球各地的科研机构、高校和行业标准组织合作,共同推动HMC技术的标准化进程。通过不懈努力,Global Memory Tech成功推动了HMC相关标准的制定,为HMC技术的广泛应用奠定了坚实基础。同时,该公司还通过技术授权和合作生产的方式,与多家国际企业建立了紧密的合作关系。

问答坊 | AI 解惑

Windows Mobile取消自动休眠问题

Windows Mobile系统怎么取消自动休眠,就是要关闭掉 请大家要看是,windows mobile系统的 …

查看全部问答>

求助:vxworks启动盘 总是不成功

                各位大侠帮帮忙啊! 我把启动盘插入后,显示器上显示:v1.6+++++++++++++++。几行加号以后就停在那里不动了。 我的目标机处理器是p3的,网卡类型是Intel 8255x ethernet interface. ...…

查看全部问答>

LM3SLib_QEI

LM3SLib_QEI 我记不得中文叫啥了, [ 本帖最后由 yuhua8688 于 2010-8-24 12:44 编辑 ]…

查看全部问答>

verilog -- inout 测试问题

verilog 的代码: module bi4b(q,dout,din,ctr1); parameter wide = 3; inout[wide:0] q; input ctr1; input[wide:0] din; output[wide:0] dout; wire[3:0] q,dout; assign dout = (!ctr1) ? q : 4\'bz; assign q = (ctr1) ? din : 4\'bz; ...…

查看全部问答>

模电知识

1.为什么当D1开路是T1、T2管会因功耗过大而损坏? 2.为什么当T1管集电极开路T2管会因功耗过大而损坏? 麻烦各位大侠帮忙讲解一下,谢谢喽 …

查看全部问答>

请教:LM3S9B96以太网发送函数调用问题

EthernetPacketPut这个函数要怎么用啊?它里面的参数都要怎么设置呢?我要发送一个1214大小的以太网包,可是fcs校验总是0000,不知道为什么?…

查看全部问答>

小弟准备升大三,想搞嵌入式,纠结考研呢,大家帮我,对编程有兴趣,想搞嵌入式 LINUX

请教前辈们 小弟准备升大三,想搞嵌入式,纠结考研呢,大家帮我,对编程有兴趣,想搞嵌入式 LINUX,这些偏软的工作, 现在经常参加竞赛,明年有个全国电子设计大赛,如果考研就没时间参加了。还有就是,很多人说考研对以后长远发展还是很有好处的 ...…

查看全部问答>

Beaglebone学习之外围电路设计参考资料最全汇总贴

我把外围电路设计过程中的参考资料全部汇总了放上来,欢迎大家下载,有商业板的资料,有开源的资料,有原厂的资料,有我们坛子里网友分享的资料,下一步准备把全部原件库和封装库发上来,这个我还在整理,等我画完了就上传,希望大家都更贴补充 ...…

查看全部问答>

低级bug耗费12小时Fix

本帖最后由 lzwml 于 2016-5-4 16:34 编辑 调试某程序非常简单的程序,简单到认为不可能存在缺陷,但该BUG处理时间超过12小时: 程序属于后台进程,监控系统每隔15秒检查外设IO状态,IO异常后发出报警或复位外设,外设都在linux下有/sys/class等 ...…

查看全部问答>