應廣科技單片機PMS171B比較器測試供電電源VDD電壓很實用的功能,LED輸出高電平,兩個信號進行比較,一個是正輸入,另一個是負輸
入,比較器的負輸入可以是 PA3,PA4
應廣PMS171B單片機有很實用的功能,不占用端口就可以測試供電的電源電壓.!當電池低壓的時候可以做相應的動作.比如休眠,進入低功耗等,就是可以用內部的分壓電阻,Band-gap 電路提供 1.2V 參考電壓,和比較器一起,測試單片機VDD電壓.不使用任何外部器件,。當低于4.2V時候,LED輸出低電平,高于4.2V時候,LED輸出高電平。
比較器硬件原理框圖
PMS171B 內置一個硬件比較器,如圖所示比較器硬件原理框圖。它可以比較兩個引腳之間的信號或者
與內部參考電壓 Vinternal R 或者與內置 bandgap(1.2v)做比較。兩個信號進行比較,一個是正輸入,另一個是負輸
入。比較器的負輸入可以是 PA3,PA4,內置 bandgap(1.2v),PB6,PB7,或者內部參考電壓 Vinternal R,并由寄
存器 gpcc 的[3:1]位來選擇。比較器的正輸入可以是 PA4 或者 Vinternal R,并由 gpcc 寄存器的位 0 來選擇。
比較器輸出的結果可以用 gpcs.7 選擇性的送到 PA0,此時無論 PA0 是輸入還是輸出狀態,比較器結果都
會被強制輸出;輸出結果信號可以用 gpcc.5 選擇為直接輸出,或是通過 Timer2 從定時器時鐘模塊(TM2_CLK)
采樣。另外,信號是否反極性也可由 gpcc.4 選擇。比較輸出結果可以用來產生中斷信號或通過 gpcc.6 讀取出來。
使用比較器
例 1:
選擇 PA3 為負輸入和 Vinternal R 的電壓為(18/32)*VDD 作為正輸入。Vinternal R 選擇上圖 gpcs[5:4] = 2b’00
的配置方式,gpcs [3:0] = 4b’1001 (n=9)以得到 Vinternal R = (1/4)*VDD + [(9+1)/32]*VDD = [(9+9)/32]*VDD =
(18/32)*VDD 的參考電壓。
gpcs = 0b0_0_00_1001; // Vinternal R = VDD*(18/32)
gpcc = 0b1_0_0_0_000_0; //
啟用比較器,負輸入:PA3
,正輸入:Vinternal R
padidr = 0bxxxx_0_xxx; //
停用 PA3
數字輸入防止漏電(x
:由客戶自定)
或者
$ GPCS VDD*18/32;
$ GPCC Enable, N_PA3, P_R; // N_xx
是負輸入,P_R
代表正輸入是內部參考電壓
PADIER = 0bxxxx_0_xxx;
例 2:
選擇 Vinternal R 為負輸入,Vinternal R 的電壓為(22/40)*VDD v,選擇 PA4 為正輸入, 比較器的結果將反極性
并輸出到 PA0。Vinternal R 選擇上圖的配置方式 “gpcs[5:4] = 2b’10” 和 gpcs[3:0] = 4b’1101 (n=13) 得到 Vinternal
R = (1/5)*VDD + [(13+1)/40]*VDD = [(13+9)/40]*VDD = (22/40)*VDD。
gpcs = 0b1_0_10_1101; //
輸出到 PA0
,Vinternal R = VDD*(22/40)
gpcc = 0b1_0_0_1_011_1; //
反極性輸出,負輸入:Vinternal R
,正輸入:PA4
padidr = 0bxxx_0_xxxx; //
停用 PA4
數字輸入防止漏電(x
:由客戶自定)
或者
$ GPCS Output, VDD*22/40;
$ GPCC Enable, Inverse, N_R, P_PA4; // N_R
代表負輸入是內部參考電壓,P_xx
是正輸入
PADIER=0bxxx_0_xxxx;
注意:當選擇 PA0 做比較器結果輸出時,GPCS 會影響 PA3 的仿真輸出功能,但不影響實際 IC 的功能,
請在仿真時需避開這個情況。
內部參考電壓 (Vinternal R)
內部參考電壓 Vinternal R 由一連串電阻所組成,可以產生不同層次的參考電壓,gpcs 寄存器的位 4 和位 5
是用來選擇 Vinternal R 的最高和最低值,位[3:0]用于選擇所要的電壓水平,這電壓水平是由 Vinternal R 的最高和
最低值均分 16 等份,由位[3:0]選擇出來。顯示四個條件下有不同的參考電壓 Vinternal R。內部參
考電壓 Vinternal R 可以通過 gpcs 寄存器來設置,范圍從(1/32)*VDD 到 (3/4)*VDD。
Vinternal R 硬件接法(gpcs.5=0 & gpcs.4=0)
Vinternal R 硬件接法(gpcs.5=0 & gpcs.4=1)
比較器測供電電源VDD電壓完整代碼
#include "extern.h"//是程序的頭文件。
BIT LED : PA.7;
#define f_Com !p_Com_Out
BIT p_Com_Out : gpcc.6
BIT f_getBat;
/*比較器初始化*/
void InitCompare ( void )
{
/*b7@1=開啟比較器
b6@0=負輸入大于正輸入
b5@0=比較器不用tm2_ck采樣
b4@0=比較結果沒有極性相反
b3:1@ 010=內部Band-gap電壓
b0@1=PA4輸入0=內部電阻輸入*/
gpcc=0b1_0_0_0_010_0;
//$ padier 0b111_0_100_1;
/*
b7@0=不輸出到PA0
b6@0保留
b5@0=高R
b4@0=低R
b3:0@0000-1111內部r值
*/
gpcs=0B0_0_0_0_0000;
}
void GetBat ( void )
{
/*設置模式為Case 4,檢測4.2V*/
gpcs=0B0_0_11_1000;
.delay 10;
if ( f_Com )
{
/*電壓低于4.2V,執行LED低電平*/
f_getBat=1;
}
else//LED高電平
{
f_getBat=0;
}
}
void FPPA0 (void)//相當于程序的 main() 函數。
{
/*單片機內部RC震動時鐘為 IHRC默認為16M,因此,IHRC/4=4M,系統時鐘為4M*/
.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
/*端口設置為輸出*/
pa.7=0;
pac.7=1;/*輸入*/
paph.7=0;/*上拉*/
/***********電壓比較器****************/
InitCompare();
while (1)
{
GetBat();
if(f_getBat)
LED = 0;
else
LED = 1;
.delay 4000*10;
}
}
演示效果
可以看到,4.2V以上為LED輸出高電平,4.2以下為LED輸出低電平,由于4.2V左右會抖動,建議后期加防抖保證穩定運行。
PMS171B 的燒錄方法
燒錄引腳為:PA3,PA4,PA5,PA6,VDD,GND。
如用 3S-P-002 燒錄器,請把背后 Jumper 插在 CN39 的位置,同時:16 PIN 封裝的 IC,請放在正面 IC 座
的頂格;14 PIN 封裝的 IC,請放在正面 IC 座的頂格下移 1 行;10 PIN 封裝的 IC(如 MSOP10),請放在正面
IC 座的頂格下移三行;8 PIN 封裝的 IC,請放在正面 IC 座的頂格下移 4 行。其他封裝客戶自己根據情況處理,
所有 Jumper 位的左邊都是一樣的腳位排列,從上到下為 VDD,PA0(不需要用到),PA3,PA4,PA5,PA6,
PA7(不需要用到),GND。
應廣單片機產品應用領域
玩具類:
RF/IR遙控直升飛機,遙控車,PS游戲機,兒童智能玩具,動物語音玩具,游戲方向盤,兒童學習機等
電子消費類:
電子萬年歷、溫度濕度計、跑步計速器、按摩器、數碼復讀錄音、筆電子禮品、電子密碼鎖,鎳氫,鋰電池充電器,超聲波測距,防盜報警器,燈飾控制,舵機
深圳市逐高電子有限公司
我們是一家單片機代理、方案設計、芯片燒錄、配單等一條龍電子元器件服務商。公司擁有強大的資源優勢和完整的產品線, 是臺灣應廣單片機、 臺灣義隆單片機、臺灣九齊單片機一級代理。主要應用于小家電、消費類電子產品,LED照明控制等領域。
我公司設有專門的研發部門,具有雄厚的單片機開發實力,工程師都是具有多年單片機開發應用經驗,可為您提供較強的技術支援。
有先進的開發能力,完善的售后服務及技術支援,現已成功開發出一系列電子產品方案。