SN8P2743 是一较新的类型,内部含有扩大器,比较器,AD 转化器而且有外部基准电压参阅输入…..4K*16位 空间,感觉上比较”价廉物美!”
一般,咱们运用SN单片机的 AD 功用时,假如挑选外部基准电压,能够运用廉价的 TL431 供给 2.5V 左右的高安稳度电压,即便通着电的240℃高温电烙铁靠上去,TL431 的输出动摇也只是 1~3mV ,此刻,体系能够把 5V 基按时得到的 12BIT AD 变成 2.5V 基准得到了 12BIT AD,这是十分合算的行动! —- 一方面,等同于运用了一只 2 倍扩大的无偏移,无失调,无温飘的扩大电路,别的一方面,让AD 的参阅值具有高达 50ppm 的温度系数!
我就在最近运用 2743 的外部基准和 AD 功用时,遇见一个问题:
AD 读数远远相差期望值很远很远!仿真器的转接板上,AVREFH 丈量到的基准电压不是 2.5V,而是 5.0V ,怎么回事呢?
检查仿真器上外部/内部基准 AVREFH 插头,现已拔开!(有必要拔开!)
以为是需求外接基准电压,所以,把转接板上 AVREFH 的插针与外部基准 TL431 直接衔接,看看是否正确? 成果,电压变成比 2.5V 稍大了 0.1~0.3V ,不安稳.因为事前有预备,不断摸一下 TL431,发现其温度上升,感觉此举过错,赶忙脱开 AVREFH 与 TL431 的衔接.
转接板与方针板是具有引脚1对1联系的,外部基准实践现已抵达芯片对应引脚,为什么转接板上 AVREFH 丈量不到呢?
检查转接板上,本来这些接口是运用一种 NLAS4501DFT2G 通用单刀单掷模仿开关来切换的!为此,暂时上网查阅该芯片的手册.费了不少劲!
当心丈量 NLAS4501DFT2G 芯片的操控引脚,发现与”挑选外部基准”的指令不同,怎么回事?
再从头阅览 2743 的数据手册,在 ADM 寄存器里,比一般的 SN 带 AD 单片机多了一个 FAVREFH 位,它 =1 则是挑选外部基准! —- 这儿,一般不会犯错!指令是正确的!
再看看它给出的示例:
ADC操作举例
ADC:
; 复位ADC。
CLR ADM ; 清ADM 寄存器。
; 设置ADC 时钟Rate 和ADC 分辨率。
MOV A, #0nmn0000b ; nn:ADCKS[1:0]代表ADC 时钟Rate。
B0MOV ADR, A ; m 代表ADC 分辨率。
; 设置ADC 参阅高电压。
B0BCLR FAVREFH ; 内部VDD。
or
B0BSET FAVREFH ; 外部参阅源。
; 设置ADC 输入通道。
MOV A, #value1 ; 设置P4CON 挑选ADC 输入通道。
B0MOV P4CON, A
MOV A, #value2 ; 设置ADC 输入通道为输入形式。
B0MOV P4M, A
MOV A, #value3 ; 制止ADC 输入通道的内部上拉电阻。
B0MOV P4UR, A
; 使能ADC。
B0BSET FADCENB
; 履行ADC 100us 发动时刻推迟循环。
CALL 100usDLY ; 100us 推迟循环。
; 挑选ADC 输入通道。
MOV A, #value ; 设置ADCHS[2:0]挑选ADC 输入通道。
OR ADM, A
; 使能ADC 输入通道。
B0BSET FGCHS
; 使能ADC 中止功用。
B0BCLR FADCIRQ ; 清ADC 中止请求。
B0BSET FADCIEN ; 使能ADC 中止功用。
; 开端AD 转化。
B0BSET FADS
好了!问题找到了! —– 看看这一句:CLR ADM ; 清ADM 寄存器。—- 这儿就把 BIT3 从头变成 0 了!
一个单片机体系,除了 AD 转化之外,大部分时刻都在运转其它程序,FAVREFH (ADM.3)在程序指令下,会从 1 变成 0,又从 0 变成 1 ! 不断切换外部基准/内部基准,当然就会让外部基准不断变化了!
所以,删去这一句: ” CLR ADM ; 清ADM 寄存器 ” !
而且,在上电后最早的体系初始化时,就让 FAVREFH (ADM.3)=1 ! 今后,就有必要紧记不能动这一位!挑选AD通道时,能够运用 OR 指令或 AND 指令去改动 ADM ,当然,假如充沛留心,依然能够运用 MOV ADM,#value 去赋值!
例如:;B3:FAVREFH=1 外部参阅源。
;挑选ADC 输入通道:
MOV A,#098H ;=P40—-FAVREFH (ADM.3)=1
;或
MOV A,#099H ;=P41—-FAVREFH (ADM.3)=1
;或
MOV A,#09AH ;=P42—-FAVREFH (ADM.3)=1
;或
MOV ADM,A
ZB1 FADS; 开端AD 转化。
;…………….
通过这样处理,丈量转接板上 AVREFH 的插针上便是 2.5V ,安稳不动! AD 转化读数也变成正常了!
—— 当然了,P4M,P4UR,P4CON 这些相关寄存器依然需求当心正确设置的!
此阅历特别贴出,供朋友们运用 2743 时留心参阅! —- 跟着使用深化,假如再发现有比较乖僻的问题,再行贴出!