,因?yàn)橥瑫r(shí)只有一組電池可以充電,所以必須依序?qū)?/span> STANDY BY的電池充電。在電池充電完成時(shí),只要在電池未取下,就不將充電電池設(shè)為 STANDY BY,避免重複對(duì)以充飽的電池充電。 鎳鎘及鎳氫充電電池放電時(shí),我們以0.1C電流放電,當(dāng)電池電壓放到低於2.2V時(shí),將自動(dòng)轉(zhuǎn)為充電狀態(tài),鋰電池則無須放電。
鎳鎘及鎳氫電池充電曲線說明如下圖
1: 若是充電電池電壓小於0.3V時(shí),則不做充電,當(dāng)電壓大於0.3V時(shí),則以0.1C定電流充電,當(dāng)電池充電到2.5V時(shí),則以1C定電流充電,當(dāng)偵測有VPEAK現(xiàn)象或是ΔV發(fā)生時(shí),則表示電池已經(jīng)充飽。
2: 若是充電電池電壓大於VMAX,(VMAX=4.8V),則表示充電電池電壓過大,原因可能為使用者放錯(cuò)電池,充電器停止充電,避免發(fā)生危險(xiǎn)。
3: 若是充電時(shí)間到達(dá)80分鐘,則表示電池容量太大,必須要充超過80分鐘以上才會(huì)充飽,還有一個(gè)原因是電池特性不好,沒有偵測到VPEAK現(xiàn)象或是ΔV,但是電池已經(jīng)充飽,設(shè)定充電時(shí)間到達(dá)80分鐘停止充電,也有避免電池因過度充電,而損害電池及預(yù)防危險(xiǎn)的一個(gè)保護(hù)措施。
鋰電池充電曲線說明如下圖
1: 若是鋰充電電池電壓小於0.3V時(shí),則不做充電,當(dāng)電壓大於0.3V時(shí),則以0.1C定電流充電,當(dāng)電池充電到2.5V時(shí),則以1C定電流充電,當(dāng)電壓到達(dá)4.1V時(shí),則以定電壓4.1V對(duì)鋰電池充電,充電電流此時(shí)會(huì)慢慢下降,當(dāng)充電電流小於0.1C時(shí),則表示電池已經(jīng)充飽,停止對(duì)鋰電池充電。
2: 若是充電電池電壓大於4.8V,則表示充電電池電壓過大,原因可能為使用者放錯(cuò)電池,充電器停止充電,避免發(fā)生危險(xiǎn)。
3: 若是充電時(shí)間到達(dá)80分鐘,則表示電池容量太大,必須要充超過80分鐘以上才會(huì)充飽,還有一個(gè)原因是電池電壓充不上去,設(shè)定充電時(shí)間到達(dá)80分鐘停止充電以避免危險(xiǎn)。
HT46R47微控制器應(yīng)用實(shí)例
以下就對(duì)於該微控制器做一個(gè)簡單扼要的說明,我們先看此微控制器的方塊圖﹕
以下為該微控制器腳位圖
從整個(gè)方塊圖及腳位圖,我們就可以大略了解此顆微控制器所提供的功能:
一: HT46R47使用盛群半導(dǎo)體的8位元精簡指令集微控制器,內(nèi)含63個(gè)功能強(qiáng)大的精簡指令,有6層硬體做成的堆疊(STACK),在呼叫副程式時(shí),可以呼叫到6層之多。內(nèi)建一個(gè)看門狗計(jì)時(shí)器(WDT),可以預(yù)防微控制器誤動(dòng)作時(shí),將微控制器重新RESET,一個(gè)低電壓偵測器(LVR),當(dāng)電壓過低時(shí),會(huì)自動(dòng)將微控制器RESET,避免微控制器的誤動(dòng)作。程式記憶體(PROGRAM MEMORY)的空間有2K可以使用,對(duì)於寫程式來說,有很大的應(yīng)用空間,另外也提供OPTION ROM,提供OPTION在燒錄的時(shí)候,視需求來選擇哪一種功能,內(nèi)建有64 bytes的資料記憶體(DATA MEMORY)空間,在中斷部分提供了三種中斷,外部中斷接腳的中斷,內(nèi)部計(jì)時(shí)器或外部計(jì)數(shù)器的中斷,還有一個(gè)是9位元ADC的中斷。
二: 輸入數(shù)出腳共有13根,其中PA有8根,PB有4根,PD有1根,其中PA3與PFD輸出共用接腳,PA4與外部計(jì)數(shù)器輸入腳共用,PA5與外部中斷輸入腳共用,PD0與PWM輸出共用接腳,PB0~PB3與ADC類比輸入腳AN0~AN3共用﹔其中PA3與PFD輸出功能共用,PD0則與PWM共用,是由燒錄程式時(shí),由OPTION項(xiàng)目所選擇的,我們也可以只選擇使用一般的I/O功能就好。PA4當(dāng)外部計(jì)數(shù)器輸入腳時(shí),PA4必須設(shè)為輸入腳,PA5當(dāng)外部中斷輸入腳時(shí), PA5也必須設(shè)為輸入腳。至於PB0~PB3與AN0~AN3 ADC類比訊號(hào)輸入,可以由軟體選擇要當(dāng)類比或是數(shù)位訊號(hào)輸入。
三: 8位元的計(jì)時(shí)計(jì)數(shù)器輸入,可以選擇由外部計(jì)數(shù)器輸入腳輸入,或是選擇內(nèi)部計(jì)時(shí)器當(dāng)計(jì)時(shí)的參考頻率。由系統(tǒng)頻率經(jīng)過一個(gè)預(yù)除器,可以選擇8個(gè)參考計(jì)時(shí)頻率給8位元的計(jì)時(shí)計(jì)數(shù)器,這8個(gè)計(jì)時(shí)頻率,從系統(tǒng)頻率到系統(tǒng)頻率除以128。選擇適當(dāng)?shù)念l率給計(jì)時(shí)計(jì)數(shù)器,使用可以較彈性。另外PFD的輸出頻率,也是由8位元計(jì)時(shí)計(jì)數(shù)器來控制,PFD的頻率為8位元計(jì)時(shí)計(jì)數(shù)器溢位的頻率除2,假設(shè)8位元計(jì)時(shí)記數(shù)器的輸入為1μ秒,假設(shè)我們?cè)O(shè)定8位元計(jì)時(shí)計(jì)數(shù)器內(nèi)容為6,則計(jì)數(shù)250次就會(huì)發(fā)生溢位,則PFD輸出的週期為 1μ秒×(256-6)×2=500μ秒, 所以PFD的頻率為 1/500μ秒 = 2kHz ,由以上可知只要設(shè)定8位元計(jì)時(shí)計(jì)數(shù)器的頻率,就可決定PFD的輸出頻率。
四:提供PWM之功能,對(duì)於電流的控制提供一個(gè)佳的解決方案,電流的控制可以參考HT46R47規(guī)格書上所附錄的應(yīng)用線路如下
PD0/PWM接腳輸出串聯(lián)一個(gè)電阻及電容接到一個(gè)NPN電晶體,來控制上面PNP電晶體是否導(dǎo)通,在PWM輸出高準(zhǔn)位時(shí),NPN及PNP皆在導(dǎo)通的狀態(tài),12V電壓對(duì)電感充電。當(dāng)PWM輸出低準(zhǔn)位時(shí),NPN及PNP皆在不導(dǎo)通的狀態(tài),12V電壓不對(duì)電感充電,電感經(jīng)由蕭特基二極體放電。當(dāng)控制PWM輸出的DUTY,可以讓電感儲(chǔ)存的電流能量,維持在一定的大小,由此來做定電流控制。
當(dāng)使用PWM功能時(shí),需要在OPTION選項(xiàng)選擇使用PWM功能,當(dāng)寫入PWM 暫存器之?dāng)?shù)值改變時(shí)則PWM輸出之DUTY隨之改變,該注意的是,PWM之頻率是不可調(diào)整,其頻率是固定系統(tǒng)頻率除以64(其PWM輸出是(6+2)模式,其定義為PWM輸出之頻率為一般輸出的4倍,其原理為將 PWM輸出分為四段,輸出低準(zhǔn)位的部分及輸出高準(zhǔn)位的部分,平均各分為四段,若是無法分為四段的餘數(shù),就補(bǔ)在其中的一段。),若是要改變PWM之頻率,只能改變系統(tǒng)頻率來改變PWM之頻率。要讓PWM之輸出由PD0/PWM輸出,必須將PD0輸出設(shè)定為輸出腳,且必須寫1到PD0暫存器的位置,寫0會(huì)讓PD0/PWM接腳,輸出在LOW的狀態(tài)。
請(qǐng)看下圖的說明:
五:4通道的9位元ADC,提供4個(gè)類比訊號(hào)的輸入與I/O接腳共用,使得產(chǎn)品的開發(fā)更具有彈性,ADC轉(zhuǎn)換的時(shí)脈來源有三個(gè)選擇,可以依實(shí)際需求的ADC轉(zhuǎn)換速度來使用,若是只需要8位元的ADC,也可以直接當(dāng)成8位元的ADC來使用,而不需要經(jīng)過轉(zhuǎn)換。
一般在做ADC轉(zhuǎn)換時(shí),需注意到在轉(zhuǎn)換時(shí)電源的處理,輸出腳盡可能不要改變,以防止在ADC轉(zhuǎn)換受到干擾時(shí)造成誤差,在ADC轉(zhuǎn)換完成之後再恢復(fù)原來的狀態(tài),在電源及ADC類比訊號(hào)輸入腳位加上一個(gè)RC濾波電路,是解決ADC轉(zhuǎn)換受雜訊干擾而產(chǎn)生誤差的有效解決辦法,一個(gè)電阻加上一個(gè)電容的低階濾波器,應(yīng)是一個(gè)常用簡單又有效的解決辦法,在PCB板上的LAYOUY需注意電源與地線的拉線和ADC 類比訊號(hào)輸入的拉線,要避免受到雜訊的干擾,建議在VDD與VSS接一個(gè) 0.1μF的電容,來減低電源雜訊的干擾。
盡可能以滿足規(guī)格的慢速度來做ADC轉(zhuǎn)換,ADC 時(shí)脈來源選擇1MHz以下,可有較好的精確度,ADC的轉(zhuǎn)換特性與ADC時(shí)脈的速度有關(guān),速度愈快轉(zhuǎn)換的精確度比轉(zhuǎn)換速度慢的精確度較差。
介紹完盛群半導(dǎo)體公司的微控制器之後,我們就以其產(chǎn)品的規(guī)格書上的一個(gè)應(yīng)用線路,來做一個(gè)2組2顆鎳氫,鎳鎘電池快速充電器或是鋰充電電池的快速充電器,規(guī)格如下:
1: 雙槽充電器
2: 兩個(gè)DIP SW;
3: 每一槽由兩個(gè)LED燈代表其狀態(tài);
一 原理 : 在做電池充電器之前,我們先瞭解各種充電電池的特性,其中鎳鎘及鎳氫電池充飽時(shí),有幾個(gè)判斷的依據(jù),一個(gè)是電池電壓會(huì)瞬間下降,一是電池溫度會(huì)上升,電池溫度上升,因?yàn)橹茉猸h(huán)境溫度變化不同,而有可能產(chǎn)生誤判,所以我們以電池電壓瞬間下降,來做電池充飽的依據(jù),是較可靠的一種方法。我們又加上定時(shí)的保護(hù),只要超過80分鐘沒有充飽,我們也停止充電,以防止過度電而損害電池。鋰電池充飽時(shí),電壓會(huì)維持在4.1V,所以我們以鋰電池在4.1V時(shí),以定電壓充電,充電電流小於50mA來當(dāng)鋰電池充飽的依據(jù),同時(shí)也加上定時(shí)的保護(hù),只要80分鐘沒有充飽,我們也停止充電。
若是以鎳氫鎳鎘電池充電,還需要一個(gè)開關(guān)來表示在充電之前是否要放電,偶爾以先放電方式再充電,可以消除電池的記憶效應(yīng)。鋰電池則沒有記憶效應(yīng),所以可不放電,直接充電,以鎳氫鎳鎘電池充電,必須串聯(lián)兩顆電池,否則無法正常充電。
二 充電電流 : 以500mA 快速充電及50mA 慢速充電,以電池電壓是否大於2.5V來做分隔,充電電池電壓若大於2.5V 則以500mA 做快速充電,若是充電電池小於2.5V 則以50mA電流充電,等充到電壓大於2.5V時(shí)再以500mA電流充電。充電電流的控制方式,可以以HT46R47的PWM功能再加上一個(gè)類比轉(zhuǎn)數(shù)位電壓輸入腳位,來做一個(gè)定電流的控制功能。
三 應(yīng)用線路分析,我們對(duì)照充電器的電路分析如下:
對(duì)電池0充電時(shí),需將電池0放電電路關(guān)掉,並將電池1之充電及放電電路關(guān)掉。 LED顯示對(duì)電池0充電的狀態(tài),PD0 輸出PWM 訊號(hào),藉由PB2/A2的電壓值,算出對(duì)充電電池0充電的電流,若是得到的電流,小於我們?cè)O(shè)計(jì)的充電電流,則可以增加PWM值,來增加對(duì)電感的電流,相對(duì)的對(duì)電池0充電的電流也會(huì)增加。若是得到的電流大於我們?cè)O(shè)計(jì)的充電電流,則可以減少PWM值,來減少對(duì)電感的電流,相對(duì)的對(duì)電池0充電的電流也會(huì)減少。一直控制電流在我們?cè)O(shè)計(jì)的範(fàn)圍之內(nèi),維持定電流充電。至於控制50mA或是500mA電流充電,其原理都相同,只是PB2/AN2的電壓值和PWM值不同而已。 每充電1秒,放電10m秒,然後偵測電池0的電壓,每次得到的電壓都和之前的三組電壓作平均,然後在判斷電池是否充飽,充飽時(shí)停止充電,並顯示充飽訊息,沒充飽就繼續(xù)充電。
對(duì)電池0放電時(shí),需將電池0充電電路關(guān)掉,並將電池1之充電及放電電路關(guān)掉。 LED顯示對(duì)電池0放電的狀態(tài),一直放電,放到電池0的電壓小於2.2V,就去執(zhí)行電池0充電的動(dòng)作。 電池1的動(dòng)作與電池0充電的動(dòng)作類似,可以以同樣的流程來做。鋰電池的充電方式除了不需放電及充飽的依據(jù)不同之外,其他動(dòng)作與鎳鎘鎳氫電池充電方式大同小異。
四:4個(gè)LED及2個(gè)開關(guān)的輸入,可以用其他未使用的I/O接腳來做,計(jì)時(shí)器可以用來做VPEAK 維持1分鐘的計(jì)時(shí)及充電時(shí)間80分鐘的計(jì)時(shí)。系統(tǒng)頻率為4MHz RC 震盪器。
五:在做充電器之前,我們先要選擇使用HT46R47的哪些功能:
PB0/AN0 : 充電電池電壓,槽的輸入腳,使用當(dāng)作類比ADC輸入的功能。
PB1/AN1 : 充電電池電壓,**槽的輸入腳,使用當(dāng)作類比ADC輸入的功能。
PB2/AN2 : 充電時(shí)充電電池的偵測,使用當(dāng)作類比ADC輸入的功能。
PB3/AN3和PA7 : 兩個(gè)輸入開關(guān),使用當(dāng)作數(shù)位輸入的功能。
PA4,PA5和PA6 : 以掃描方式做4個(gè)LED燈顯示,使用當(dāng)作輸出的功能。
PA0 : 控制對(duì)**槽的電池充電,由一個(gè)電晶體做開關(guān),使用當(dāng)作輸出的功能。
PA1 : 控制對(duì)槽的電池充電,由一個(gè)電晶體做開關(guān),使用當(dāng)作輸出的功能。
PA2 : 控制對(duì)槽的電池放電,由一個(gè)電晶體做開關(guān),使用當(dāng)作輸出的功能。
PA3 : 控制對(duì)**槽的電池放電,由一個(gè)電晶體做開關(guān),使用當(dāng)作輸出的功能。
PD0/PWM : 控制充電電流的大小,由一個(gè)電晶體做開關(guān),使用當(dāng)作PWM輸出的功能。
TIMER : 計(jì)時(shí)每0.04秒中斷一次,做計(jì)時(shí)及掃描顯示LED。
看門狗計(jì)時(shí)器*(WDT) : 避免程式執(zhí)行錯(cuò)誤做一個(gè)保護(hù)的動(dòng)作。
低電壓重置功能啟動(dòng) : 只要電壓小於3V 微控制器就不動(dòng)作。
系統(tǒng)頻率選擇RC震盪器的方式 : OSC1 接一個(gè)75kΩ的電阻到地,頻率約4MHz。
實(shí)做的充電器電路如下:
以上對(duì)充電器微控制器就簡單介紹到此,希望對(duì)讀者能對(duì)充電器的原理及製作有些助益。
作者: 劉溫良
畢業(yè)於逢甲大學(xué) 電子工程學(xué)系
目前服務(wù)於 盛群半導(dǎo)體 微控制器應(yīng)用部