紧接(2)SN8P2743 的比较器初试:
接着,对能够一个引脚就用起来的比较器 1 进行测验,经过软件挑选内部参阅的 CM1M 寄存器如下:
09DH 位7 位6 位5 位4 位3 位2 位1 位0
CM1M CM1EN CM1OEN CM1OUT CM1SF CM1G CM1RS2 CM1RS1 CM1RS0
读/写 R/W R/W R/W R/W R/W R/W R/W R/W
复位后 0 0 0 0 0 0 0 0
位[2:0] CM1RS[2:0]:比较器CM1 正极电压挑选操控位。
000=CM1P 引脚为比较器正极输入引脚,GPIO 功用被屏蔽,
001=内部0.2*Vdd,CM1P 是I/O引脚,
010=内部0.3*Vdd,CM1P 是I/O引脚,
011=内部0.4*Vdd,CM1P 是I/O引脚,
100=内部0.5*Vdd,CM1P 是I/O引脚,
101=内部0.6*Vdd,CM1P 是I/O引脚,
110=内部0.7*Vdd,CM1P 是I/O引脚,
111=内部0.8*Vdd,CM1P 是I/O引脚。
每一种内部参阅我都试过,动作速率十分快!
工作到这儿,我就联想到其在实践丈量电路上是否能够满意运用要求 —— 分辩力能够到达多少呢?
我搭接了一个恒流源,大约电流在 10 uA , 对一个 47u 的电容器恒流充电,这就能够发生一个随时刻升高的电压,把这个电压输入到比较器 1 的反相输入引脚.
处理了充电问题,还得有放电通道啊! 刚好, 2743 有一个开漏输出引脚 P01 —— 什么叫开漏? 便是只是具有输出低电平的拉电流功用,不能输出高电平,用在这儿给电容器放电几乎天衣无缝! 适可而止!
我运用内部 16/4MHZ 的时钟,使用定时器 T0 协助计数,得到下面一份表格:—– 每一个数据都是实测来的哦!
从内部参阅 1.0V 开端, 到内部参阅 4.0V 停止, 一共丈量到 7 个数据, 每 2 格数据之差便是输入电压 0.5V 之差的读数, 依照核算,其最大分辩力到达了 21.746uV/字 . 核算一下, 12 位 AD 的最大分辩力是多少 ? 即使是丈量 K 热电偶, 40uV/℃ 的细小电压,都能够分辩 出差不多 2 个字来! —— 比较器 2 与比较器 1 差不多性质,就没有重复测验了!
可是,这么好的分辩力,要使用到实践项目,还有许多问题需求处理 .比较显着的对错线性, 输入电压越高, 分辩力越好,阐明恒流源出了问题, 很可能现已遭到饱满搅扰了! (由于内部参阅输入电压现已 4.0V ) .
可是,实践工程上并不需求那么大跨度的输入电压,往往几百 mV 就满足, 例如 %&&&&&%L7107 ,输入±200mV 就能够了! 这就会让恒流源非线性得到很大改进!
测验表格的数据,现已展示了十分夸姣的使用远景!进一步的使用,有待下次再发帖子了!
为了便利我们参阅,我把芯片手册里有关比较器和放大器的内容摘抄出来, 把图片尽量加大,提供给我们参阅!(简体中文的呢!)
需求的请下载: 2743 的比较器与放大器.pdf
=========================================================汇编测验程序
上面的比较器测验数据表格,由下面测验程序而来,彪炳弥补:
.CODE
ORG 0
JMP B_RESET
ORG 8
JMP B_IRS
ORG 10H
;=====================================================================
B_RESET:;42_3:ROM:4K*16位。RAM:128字节。8层仓库。
@RST_WDT
MOV_ STKP,#07FH
ZM0 PFLAG
ZM0 OSCM
ZM0 INTRQ
ZM0 INTEN
@RST_WDT
ZM0 Y; RAM 库 0=128RAM
MOV_ Z,#7FH
@@:
CLR @YZ
DECMS Z
JMP @B
CLR @YZ
;———————————————–
MOV A,#00H
MOV P0,A
MOV P4,A
MOV P1,A
MOV_ P0M,#00H
MOV_ P4M,#0FFH
MOV_ P1M,#00H
MOV A,#0FFH
MOV P4UR,A
MOV P1UR,A
MOV P0UR,A
ZB0 FP01 ;6P,;// P0.1/PWM0,I/O P01:;漏极开路的输出引脚。PWM0WM输出引脚和脉冲输出引脚。
;————————————————————–
;FT0初始化
ZB0 FT0ENB
MOV_ T0M,#70H ;16US——-70H=2,60H=4,50H=8,40H=16,30H=32
MOV_ T0C,#0;//8*250=2mS—30H=4mS.—20H=8mS–00H=32mS
;TC1初始化
ZB0 FTC0ENB
MOV_ ZZZ,#60H
/*OPEN:OP Amp 放大器操控位。
0=制止,P1.0、P1.1、P1.2 是I/O形式,
1=使能,P1.0、P1.1、P1.2 为OP-AMP 引脚。*/
; ZB1 FOPEN
; CALL B_COM0SS;测验比较器0
CALL B_COM0SS_1;测验比较器1
ZB1 FGIE;开中止
;==============================================================
B_LOOP:
@RST_WDT
NOP
NOP
NOP
NOP
BS0 FT0IEN
JMP B_LOOP
BS1 FCM1OUT
JMP B_LOOP
Z3M0 SSSH,SSSM,SSSL
ZB0 FT0IRQ
ZB1 FP01
CLR T0C ;,#0
ZB1 FCM1IEN
Z2B1 FT0IEN,FT0ENB
NOP
NOP
NOP
NOP
JMP B_LOOP
;====================================================================