作者:bjxsdz 緊接(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 就足夠, 例如 ICL7107 ,輸入±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 ;==================================================================== 附件: |