问:我能把一个高阻抗模拟信号源直接接到ADmC812的输入端吗?是否必须先把信号缓冲?
答:对高阻抗信号源的主要限制是ADmC812模拟输入端的输入漏电流, 它的典型值是±1mA。这个电流流过610Ω的信号源内阻时,将会产生610mV的误差。在2.5V基准源的情况下, 这是1LSB(或2.5V/4096) 。因此, 大于610Ω的信号源内阻就能够产生直流测量误差。
问:听说了有关ADmC812“自校准” 功能的一些特点, 我如何使用这些功能?它能校准ADmC812的ADC失调误差和增益误差吗?
答:ADmC812的“自校准” 涉及到一些软件程序的使用, 在应用技术笔记mC005中作了说明,该应用笔记可在网址www.analog.com/microconverter/technotes code.html 找到。校准过程能校准ADmC812的ADC失调误差和增益误差。
问:ADmC812要求的采样时间是多少?我应如何确定ADCCON1中采样时间选择位的值?
答:几乎在所有情况下,ADmC812一个ADC时钟周期的采样时间(ADCCON1.2=0, ADCCON1.3=0) 就足以在内部跟踪/保持放大器切换到保持方式前捕获到输入信号。唯一例外是高阻抗信号源的模拟输入。但是,由于大于610Ω的信号源内阻会导致直流误差,因此在这种情况下,无论如何要先进行缓冲。
问:我应如何选择ADmC812的ADCCON1寄存器中的转换时间?什么是ADC的时钟分频位?
答:ADmC812的遂次逼近型ADC由主时钟分频后驱动,为了保证ADC的正确工作,ADC时钟必须在400kHz至4MHz之间,当ADC时钟在400kHz至3MHz之间时获得最佳性能。这个范围的频率很容易从400kHz主时钟频率获得, 对于16MHz的主时钟只需4分频就行了。例如,对于12MHz的主时钟,可以通过设置ADCCON1中的相应位(ADCCON1.5=1,ADCCON1.4=0),把ADC时钟的分频系数设为4(也就是ADCCLK=MCLK/4=3MHz) 。
ADC总转换时间是15个ADC时钟, 外加1个ADC同步时钟, 再加上选择的采样时间(1、2、3或4个ADC时钟)。以上面例子为例, 设采样时间为1个ADC时钟,那末总的转换时间是17个ADC时钟周期(对于3MHz ADC时钟来说,是5.67ms)。
问:我怎样确定ADmC812在连续转换模式下的采样速率?
答:在连续转换模式下, 前一个转换结束后,便开始一次新的转换。采样速率就是上述总的转换时间的倒数。在上面的例子中, 连续转换模式下的采样速率为176.5kHz。
问:在硬件CONVST模式下,ADmC812的孔径延迟是什么?孔径误差我能预知吗?
答:在硬件CONVST模式下,用一个外部逻辑输入来触发ADC转换。 ADmC812的孔径延迟是从外部触发信号的上升沿到采样保持放大器切换到保持状态瞬间的时间间隔,这个时间等于采集时间(通过ADCCON1选择) 加上0.5到1.5个ADC时钟周期的同步时间。
当CONVST触发与ADC时钟不同步时,会引起一个ADC时钟周期的孔径误差,这个孔径误差能够通过外界CONVST信号与ADC时钟同步来避免。由于ADC时钟是由主时钟简单分频而成的,你无法直接得到它。因此,为了使你的CONVST信号与ADC时钟同步, 你必须使CONVST与另一个被分频的主时钟同步,这个分频主时钟的分频系数应是产生ADC时钟的分频系数(由ADCCON1选择)的整倍数。
问:如果ADmC812在还没有完成一次转换的期间,接收到第二个CONVST触发信号(软件SCONV,定时器2触发,或硬件CONVST触发),会产生什么结果?
答:第二个CONVST触发信号将被忽略不计。在这种情况下, 第二个触发信号将被丢失。为了避免采样信号的丢失,在启动转换前,应确保你的软件检查ADC的忙标志(ADCCON3.7)。在定时器驱动或硬件驱动模式下,应确保定时器溢出速率或输入信号边沿速率大于ADC转换时间加上采样时间(由ADCCON1控制) 。
问:我要用ADmC812的内部电压基准源,我应如何使用VREF和CREF 引脚?
答:二者到地各接一个0.1mF瓷片电容进行去耦,接线要短。
问:我想用ADmC812的内部电压基准源驱动其他电路, 我应该从VREF引脚还是从CREF 引脚获取电压?这些引脚流出/吸收电流的能力如何?
答:用VREF引脚。CREF 引脚是缓冲器的一个内部节点,它的电压不等于VREF。 关于VREF引脚的流出和吸收电流的能力,实际上等于零,它是一个具有50kΩ内阻的2.5V电源。如果你想用该电压去驱动其他电路, 那末必须在这个引脚上加一个电压缓冲器。当然,和通常的做法一样,VREF和CREF 引脚应通过0.1mF瓷片电容接地进行去耦。
问:ADmC812能使用外部电压基准源吗?
答:可以,你可用外部电压基准源直接驱动VREF引脚,这看起来像一个50kΩ负载接到2.5V电压上。你是否想用电容对VREF结点去耦,取决于你所选取的电压基准源。然而,CREF 引脚和任何其他线路接法一样,必须用一个0.1mF瓷片电容接地进行去耦。
虽然外部电压基准源高达AVDD是允许的,即VREF=AVDD,但此时VREF引脚和CREF 引脚应该短接在一起, 以便将它们内部缓冲器傍路掉。
问:我怎样使ADmC812的内部电压基准源有效和无效?内部电压基准源有效后,基准电压稳定时间有多长?
答:每当你允许ADC(通过ADCCON1) 或者允许DAC(通过DACCON)时,ADmC812的内部电压基准源就会自动有效。一旦有效,电压基准源需要65ms接通时间才能稳定到精确值。
问:我需要为ADmC812提供一个外部复位电路吗?
答:你必须提供一个外部上电复位(POR)电路来驱动ADmC812的RESET引脚。在电源电压(AVDD和DVDD) 低于2.5V时,你的复位电路必须使RESET引脚保持高电位。另外,VDD保持在2.5V以上至少超过10ms,RESET信号才允许变低。外部POR电路必须能在1.2V或更低的电压下工作,详细情况见ADmC812用户手册。
问:ADmC812有两个DAC, 我如何使两个DAC的输出电压同步更新?
答:ADmC812有一个同步更新位(在DACCON中),可用来确保两个DAC输出值同时被更新。使用该功能时, 在新值重装到两个DAC寄存器前,应将同步更新位清零。一旦新数据载入两个DAC寄存器中,将该位重新置1,这样两个DAC的输出同步变成新值。
问:如何使用ETIM寄存器?
答:Flash/EE的擦除/编程定时是从主时钟得来的,当主时钟频率为11.0592MHz时,你完全不需要写ETIM寄存器。 但是,在其他主时钟频率(FCLK)下运行时, 你必须改变ETIM1和ETIM2的值,以避免降低Flash/EE的寿命和数据保存能力。 ETIM1和ETIM2形成16位字,ETIM2为高字节,ETIM1为低字节, 这个16位字必须如下设置,以确保最佳的Flash/EE寿命和数据保存能力。
ETIM2,ETIM1=100ms·FCLK
ETIM3应该始终保持其默认值201(C9H)。
问:使用片内的看门狗定时器时,数据手册说必须设置两个刷新位来复位定时器, 我需要按什么顺序来设置这两位?在将它们设置为1后,还需要将每位清零吗?
答:为了刷新看门狗定时器,你只需要设置WDR1和WDR2这两位,从这两位读出的总是零。设置这两位的顺序必须先设置WDR1, 然后立刻设置WDR2。相关的例子见www.analog.com/microconverter上的示例程序目录中的“WDtimer.asm” 。
问:有人告诉我ADmC812有加密位来限制对Flash/EE程序存储器和数据存储器的访问。为什么我在ADmC812数据手册中找不到关于该特征的任何介绍?
答:ADmC812中有加密位,但是它们功能不正确,因此没有把它们作为这个片子的功能提供。加密位存放在Flash/EE数据区的第160页(A0H),而手册中正式给出的运行区域是从0到159页(00—9FH)。应当避免将数据写到未公开的第160页,因为它可能使芯片锁死。详见ADmC812堪误表。
问:我如何使用ADmC812片内温度传感器?
答:ADmC812的温度传感器输出电压与芯片的温度成反比。在25℃时,输出电压大约为600mV, 随着温度的改变, 输出电压以-3mV/℃变化。所以,当工作温度升高时,温度传感器的输出电压减小。当然,用ADC将温度传感器的输出电压转换为数字量。
应当注意:上面所述的两个数字25℃时的600mV和-3mV/℃是典型值, 不同芯片的这些数值有差异。温度传感器具有良好的线性,因此,用校准程序在两个温度下进行校准之后(一个针对失调,另一个针对温度梯度),就可以完成相当准确的温度测量。
要记住片内温度传感器测量的是芯片的温度, 而不是环境温度, 如果要确定周围空气温度, 不要忘了把自身发热的因数加到公式中。
问:我怎样计算在给定条件下ADmC812消耗的总功率?
答:下面是ADmC812总电流的简单计算表,下面所有的值都是典型值。在你给定的主时钟频率(MCLK) 下,只要把所有有效的外设电流简单地加上芯片内核(正常模式)消耗电流就可以了。
|
VDD=5V |
VDD=3V |
芯片内核(正常模式) |
1.6ms·MCLK+5mA |
0.8ms·MCLK+1.5mA |
芯片内核(空载模式) |
0.75ms·M CLK+5mA |
0.25ms·MCLK+1.5mA |
ADC |
1.3mA |
1.0mA |
DAC |
250mA |
200mA |
电压基准源 |
200mA |
150mA |
问:ADmC812的模拟和数字电源有各自独立的引脚,我能用分离的电源运行吗?例如3.3V的DVDD和5V的AVDD。关于电源我还需要知道那些事项?
答:不能,你不能用分离电源运行ADmC812,DVDD和AVDD之间的最大绝对差值是±0.3V。因此,ADmC812最好用单电源运行,只在必要的时候,在DVDD和AVDD之间用一个小的铁氧体磁珠(0805芯片大小) 或者是一个小电阻(1Ω或2Ω) 进行隔离 。当然, 在靠近每一电源引脚与地之间应接一个0.1mF瓷片电容去耦,在印制板的某些地方还应有大容量电解电容接在电源与地之间进行去耦。如果你选择了带铁氧体磁珠或小电阻隔离的分离电源,那么必须确保在分离电源的每一边都有本地的瓷片电容和电解电容。
问:我能用多快的主时钟运行?
答:ADmC812的8052内核能够在比规定的最大主时钟16MHz快得多的时钟频率下运行,不会有任何错误。可是,当采用比规定速度快得多的主时钟运行时,ADmC812的模拟性能会降低。所以, 我们不推荐使用高于16MHz的晶振或时钟振荡器。
问:ADmC812具有静态MCU芯片特点吗?我能用多慢的主时钟运行?
答:是,ADmC812具有静态8052内核特点。这个内核运行的主时钟频率可以降低到直流(DC)。可是,ADC时钟信号是从主时钟分频得到的, ADC时钟频率过低会降低ADC性能。为了确保ADC性能,最低的ADC时钟频率是400kHz。ADC时钟等于主时钟除以1,2,4或8(由ADCCON1选择), 所以, 为了确保ADC工作,最低主时钟频率也是400kHz。
问:在ADmC812中,P1口主要用于模拟输入,我能把P1口的引脚用作数字输入/输出吗?
答:P1口的引脚能用作模拟输入或数字输入, 但不能用于数字输出。所有P1口引脚的默认配置为模拟输入。在这种状态下, P1口寄存器保持为FFH(全为1)。为了把某些P1口引脚配置为数字输入,只要简单地把P1口寄存器中的相应位清零就行了。