內容標題導覽:|前言|電池與充電器|HT46R47微控制器應用實例| 前言
由於目前無線通信的盛行,在台灣幾乎人手一隻大哥大,除了帶來了便利之外,也帶來了不少的商機,除了手機的製造商之外,另外一個與手機相關的商機就是大哥大的充電器。尤其無線上網的趨勢,已經開始醞釀中,已有不少的手機,增加了無線上網的功能,更造成大哥大的普及與流行,因此充電電池及充電器需求量也逐漸的增加。另外一方面,手持裝備的流行,如PDA, MP3隨身聽,數位相機等,需要大量使用電池,所以可重複使用的充電電池就顯得十分重要,所以本文將介紹充電電池的特性,及介紹如何製作一個快速充電的充電器。
由於盛群半導體目前發表一顆專為充電電池充電器所設計的微控制器,該產品編號為HT46R47,對於目前市面上的大哥大鎳鎘,鎳氫及鋰充電電池或是一般隨身聽, PDA等使用電池的產品,都可以使用此產品開發該充電電池之快速充電器。本文也順便介紹此顆微控制器的功能給讀者,並以此探討鎳隔,鎳氫及鋰電池充電器的原理及實做方案,盼望讀者能讀完此篇文章之後,能夠自行設計自己所需要的充電器,也能了解及判別目前市面上充電電池及充電器的優劣。 HT46R47的主要規格如表一所示︰ HT46R47這顆微控制器,在盛群半導體公司主要定位,雖然是在充電器專用的微控制器上,但就其整個功能來說,精簡且多樣的功能,對於其他方面的應用也非常適合,就算只拿來做一個簡單的9位元ADC控制器,也是非常方便的一個應用方案,只要有用到ADC且所需的I/O數又不需要太多的產品,非常適合用這顆微控制器開發其產品。尤其是對於電源雜訊的處理,該微控制器擁有極佳的抗雜訊能力,非常適合家電產品的應用﹔內含的PWM輸出功能,用來做電流,電壓控制是非常適宜的。 電池與充電器
現在就先介紹市面上常見的充電電池,有鎳鎘﹑鎳氫及鋰充電電池三種,其容量單位是mAh,例如充電電池500mAh,代表電流輸出500mA,可以連續使用1小時,如果電流50mA,那就是可以使用500mAh/50mA=10h,所以可以使用十小時。所以選擇容量愈大的充電電池,則相��的使用時間也就愈久,但是為了達到充電電池的使用效率,使用充飽的充電電池,相對的也就愈經濟划算。所以有一個能快速充電,且能在電池充飽時自動檢知的充電器就非常重要。為了在1小時快速充電完畢,相對的充電電流就必須要500mAh/1h=500mA,一般稱500mAh容量的電池,充電電流500mA稱為1C。鎳鎘﹑鎳氫充電電池,若沒有完全放電之後再充電,幾次之後電池的容量便減少,此種現象稱為記憶效應。鋰電池則沒有記憶效應,所以鋰電池在沒有放電完全之後就充電,也不會影響電池的容量。
在鎳鎘﹑鎳氫及鋰電池的充電過程中,如何檢知電池已經充電完畢是重要的一件事,如果無法知道電池已經充飽,則充電過程就會無法自動停止,很容易就把電池充壞,也容易發生危險,以下就介紹鎳鎘﹑鎳氫及鋰電池充電完成的檢知方式:
首先定義幾個名詞
VBAT: 電池的電壓,每一次所量測到的新電壓與與前3次的算數平均
VMAX: 為電池電壓高之**值
VPEAK: VBAT 之大值
ΔV : VPEAK-VBAT 鎳鎘及鎳氫電池充飽的檢知方式是一樣的,共有以下幾種方式來做充電電池充飽完成的檢知方式: 1: 利用ΔV的檢知方式:在電池充飽時,電池電壓會下降,若是偵測電池連續下降10mV 8次(ΔV > 10mV 8次),則認定充電已經完成。
2: 利用VPEAK 檢知方式 : 在一分鐘之內VBAT<VPEAK成立,只要VBAT≧VPEAK時,1分鐘的時間就必須重新計算。
3: VMAX方式 : VBAT到達VMAX,我們就認定電池已經充電完畢。
4: Safe Timer : 只要充電時間大於我們指定的時間,我們及認定充電結束。
5: 利用電池充飽時,溫度會上升的特性,來當作電池充飽的依據。 鋰電池充飽的檢知方式,有以下幾種方式來做充電電池充飽完成的檢知方式: 1: 利用鋰電池在充電完成時電壓會維持在4.1V的特性,首先以定電流1C充電,當電池電壓等於4.1V時,則改以定電壓4.1V充電,若是電壓大於4.1V,則減少充電電流,若是電壓大於4.1V,則充電電流不變,直到偵測充電電流小於0.1C時,就表示鋰電池已經充電完成。
2: VMAX方式 : VBAT到達VMAX,我們就認定電池已經充電完畢。
3: Safe Timer : 只要充電時間大於我們指定的時間,我們及認定充電結束。
鎳鎘、鎳氫及鋰電池快速充電的限制必須在充電電池電壓大於2.5V,才可以做快速充電,在電壓小於2.5V時,我們先以0.1C充電,等到電池電壓大於2.5V時我們才以1C電流做快速充電。 當充電電池置入時,我們也需要能做自動檢測電池的功能,其做法是每隔一段時間,就去偵測電池座的電壓是否大於0.3V,若是小於0.3V則表示未置入電池,若是大於0.3V則表示偵測到電池已經置入,則準備開始對該充電電池充電,充電電池在 STANDY BY,因為同時只有一組電池可以充電,所以必須依序對 STANDY BY的電池充電。在電池充電完成時,只要在電池未取下,就不將充電電池設為 STANDY BY,避免重複對以充飽的電池充電。 鎳鎘及鎳氫充電電池放電時,我們以0.1C電流放電,當電池電壓放到低於2.2V時,將自動轉為充電狀態,鋰電池則無須放電。 鎳鎘及鎳氫電池充電曲線說明如下圖 1: 若是充電電池電壓小於0.3V時,則不做充電,當電壓大於0.3V時,則以0.1C定電流充電,當電池充電到2.5V時,則以1C定電流充電,當偵測有VPEAK現象或是ΔV發生時,則表示電池已經充飽。 2: 若是充電電池電壓大於VMAX,(VMAX=4.8V),則表示充電電池電壓過大,原因可能為使用者放錯電池,充電器停止充電,避免發生危險。 3: 若是充電時間到達80分鐘,則表示電池容量太大,必須要充超過80分鐘以上才會充飽,還有一個原因是電池特性不好,沒有偵測到VPEAK現象或是ΔV,但是電池已經充飽,設定充電時間到達80分鐘停止充電,也有避免電池因過度充電,而損害電池及預防危險的一個保護措施。 鋰電池充電曲線說明如下圖 1: 若是鋰充電電池電壓小於0.3V時,則不做充電,當電壓大於0.3V時,則以0.1C定電流充電,當電池充電到2.5V時,則以1C定電流充電,當電壓到達4.1V時,則以定電壓4.1V對鋰電池充電,充電電流此時會慢慢下降,當充電電流小於0.1C時,則表示電池已經充飽,停止對鋰電池充電。 2: 若是充電電池電壓大於4.8V,則表示充電電池電壓過大,原因可能為使用者放錯電池,充電器停止充電,避免發生危險。 3: 若是充電時間到達80分鐘,則表示電池容量太大,必須要充超過80分鐘以上才會充飽,還有一個原因是電池電壓充不上去,設定充電時間到達80分鐘停止充電以避免危險。 HT46R47微控制器應用實例
以下就對於該微控制器做一個簡單扼要的說明,我們先看此微控制器的方塊圖﹕
以下為該微控制器腳位圖 從整個方塊圖及腳位圖,我們就可以大略了解此顆微控制器所提供的功能: 一: HT46R47使用盛群半導體的8位元精簡指令集微控制器,內含63個功能強大的精簡指令,有6層硬體做成的堆疊(STACK),在��叫副程式時,可以呼叫到6層之多。內建一個看門狗計時器(WDT),可以預防微控制器誤動作時,將微控制器重新RESET,一個低電壓偵測器(LVR),當電壓過低時,會自動將微控制器RESET,避免微控制器的誤動作。程式記憶體(PROGRAM MEMORY)的空間有2K可以使用,對於寫程式來說,有很大的應用空間,另外也提供OPTION ROM,提供OPTION在燒錄的時候,視需求來選擇哪一種功能,內建有64 bytes的資料記憶體(DATA MEMORY)空間,在中斷部分提供了三種中斷,外部中斷接腳的中斷,內部計時器或外部計數器的中斷,還有一個是9位元ADC的中斷。 二: 輸入數出腳共有13根,其中PA有8根,PB有4根,PD有1根,其中PA3與PFD輸出共用接腳,PA4與外部計數器輸入腳共用,PA5與外部中斷輸入腳共用,PD0與PWM輸出共用接腳,PB0~PB3與ADC類比輸入腳AN0~AN3共用﹔其中PA3與PFD輸出功能共用,PD0則與PWM共用,是由燒錄程式時,由OPTION項目所選擇的,我們也可以只選擇使用一般的I/O功能就好。PA4當外部計數器輸入腳時,PA4必須設為輸入腳,PA5當外部中斷輸入腳時, PA5也必須設為輸入腳。至於PB0~PB3與AN0~AN3 ADC類比訊號輸入,可以由軟體選擇要當類比或是數位訊號輸入。 三: 8位元的計時計數器輸入,可以選擇由外部計數器輸入腳輸入,或是選擇內部計時器當計時的參考頻率。由系統頻率經過一個預除器,可以選擇8個參考計時頻率給8位元的計時計數器,這8個計時頻率,從系統頻率到系統頻率除以128。選擇適當的頻率給計時計數器,使用可以較彈性。另外PFD的輸出頻率,也是由8位元計時計數器來控制,PFD的頻率為8位元計時計數器溢位的頻率除2,假設8位元計時記數器的輸入為1μ秒,假設我們設定8位元計時計數器內容為6,則計數250次就會發生溢位,則PFD輸出的週期為 1μ秒×(256-6)×2=500μ秒, 所以PFD的頻率為 1/500μ秒 = 2kHz ,由以上可知只要設定8位元計時計數器的頻率,就可決定PFD的輸出頻率。 四:提供PWM之功能,對於電流的控制提供一個佳的解決方案,電流的控制可以參考HT46R47規格書上所附錄的應用線路如下 PD0/PWM接腳輸出串聯一個電阻及電容接到一個NPN電晶體,來控制上面PNP電晶體是否導通,在PWM輸出高準位時,NPN及PNP皆在導通的狀態,12V電壓對電感充電。當PWM輸出低準位時,NPN及PNP皆在不導通的狀態,12V電壓不對電感充電,電感經由蕭特基二極體放電。當控制PWM輸出的DUTY,可以讓電感儲存的電流能量,維持在一定的大小,由此來做定電流控制。 當使用PWM功能時,需要在OPTION選項選擇使用PWM功能,當寫入PWM 暫存器之數值改變時則PWM輸出之DUTY隨之改變,該注意的是,PWM之頻率是不可調整,其頻率是固定系統頻率除以64(其PWM輸出是(6+2)模式,其定義為PWM輸出之頻率為一般輸出的4倍,其原理為將 PWM輸出分為四段,輸出低準位的部分及輸出高準位的部分,平均各分為四段,若是無法分為四段的餘數,就補在其中的一段。),若是要改變PWM之頻率,只能改變系統頻率來改變PWM之頻率。要讓PWM之輸出由PD0/PWM輸出,必須將PD0輸出設定為輸出腳,且必須寫1到PD0暫存器的位置,寫0會讓PD0/PWM接腳,輸出在LOW的狀態。 請看下圖的說明: 五:4通道的9位元ADC,提供4個類比訊號的輸入與I/O接腳共用,使得產品的開發更具有彈性,ADC轉換的時脈來源有三個選擇,可以依實際需求的ADC轉換速度來使用,若是只需要8位元的ADC,也可以直接當成8位元的ADC來使用,而不需要經過轉換。 一般在做ADC轉換時,需注意到在轉換時電源的處理,輸出腳盡可能不要改變,以防止在ADC轉換受到干擾時造成誤差,在ADC轉換完成之後再恢復原來的狀態,在電源及ADC類比訊號輸入腳位加上一個RC濾波電路,是解決ADC轉換受雜訊干擾而產生誤差的有效解決辦法,一個電阻加上一個電容的低階濾波器,應是一個常用簡單又有效的解決辦法,在PCB板上的LAYOUY需注意電源與地線的拉線和ADC 類比訊號輸入的拉線,要避免受到雜訊的干擾,建議在VDD與VSS接一個 0.1μF的電容,來減低電源雜訊的干擾。 盡可能以滿足規格的慢速度來做ADC轉換,ADC 時脈來源選擇1MHz以下,可有較好的精確度,ADC的轉換特性與ADC時脈的速度有關,速度愈快轉換的精確度比轉換速度慢的精確度較差。 介紹完盛群半導體公司的微控制器之後,我們就以其產品的規格書上的一個應用線路,來做一個2組2顆鎳氫,鎳鎘電池快速充電器或是鋰充電電池的快速充電器,規格如下: 1: 雙槽充電器
2: 兩個DIP SW; 3: 每一槽由兩個LED燈代表其狀態; 一 原理 : 在做電池充電器之前,我們先瞭解各種充電電池的特性,其中鎳鎘及鎳氫電池充飽時,有幾個判斷的依據,一個是電池電壓會瞬間下降,一是電池溫度會上升,電池溫度上升,因為周遭環境溫度變化不同,而有可能產生誤判,所以我們以電池電壓瞬間下降,來做電池充飽的依據,是較可靠的一種方法。我們又加上定時的保護,只要超過80分鐘沒有充飽,我們也停止充電,以防止過度電而損害電池。鋰電池充飽時,電壓會維持在4.1V,所以我們以鋰電池在4.1V時,以定電壓充電,充電電流小於50mA來當鋰電池充飽的依據,同時也加上定時的保護,只要80分鐘沒有充飽,我們也停止充電。 若是以鎳氫鎳鎘電池充電,還需要一個開關來表示在充電之前是否要放電,偶爾以先放電方式再充電,可以消除電池的記憶效應。鋰電池則沒有記憶效應,所以可不放電,直接充電,以鎳氫鎳鎘電池充電,必須串聯兩顆電池,否則無法正常充電。 二 充電電流 : 以500mA 快速充電及50mA 慢速充電,以電池電壓是否大於2.5V來做分隔,充電電池電壓若大於2.5V 則以500mA 做快速充電,若是充電電池小於2.5V 則以50mA電流充電,等充到電壓大於2.5V時再以500mA電流充電。充電電流的控制方式,可以以HT46R47的PWM功能再加上一個類比轉數位電壓輸入腳位,來做一個定電流的控制功能。 三 應用線路分析,我們對照充電器的電路分析如下: 對電池0充電時,需將電池0放電電路關掉,並將電池1之充電及放電電路關掉。 LED顯示對電池0充電的狀態,PD0 輸出PWM 訊號,藉由PB2/A2的電壓值,算出對充電電池0充電的電流,若是得到的電流,小於我們設計的充電電流,則可以增加PWM值,來增加對電感的電流,相對的對電池0充電的電流也會增加。若是得到的電流大於我們設計的充電電流,則可以減少PWM值,來減少對電感的電流,相對的對電池0充電的電流也會減少。一直控制電流在我們設計的範圍之內,維持定電流充電。至於控制50mA或是500mA電流充電,其原理都相同,只是PB2/AN2的電壓值和PWM值不同而已。 每充電1秒,放電10m秒,然後偵測電池0的電壓,每次得到的電壓都和之前的三組電壓作平均,然後在判斷電池是否充飽,充飽時停止充電,並顯示充飽訊息,沒充飽就繼續充電。 對電池0放電時,需將電池0充電電路關掉,並將電池1之充電及放電電路關掉。 LED顯示對電池0放電的狀態,一直放電,放到電池0的電壓小於2.2V,就去執行電池0充電的動作。 電池1的動作與電池0充電的動作類似,可以以同樣的流程來做。鋰電池的充電方式除了不需放電及充飽的依據不同之外,其他動作與鎳鎘鎳氫電池充電方式大同小異。 四:4個LED及2個開關的輸入,可以用其他未使用的I/O接腳來做,計時器可以用來做VPEAK 維持1分鐘的計時及充電時間80分鐘的計時。系統頻率為4MHz RC 震盪器。 五:在做充電器之前,我們先要選擇使用HT46R47的哪些功能: PB0/AN0 : 充電電池電壓,槽的輸入腳,使用當作類比ADC輸入的功能。 PB1/AN1 : 充電電池電壓,**槽的輸入腳,使用當作類比ADC輸入的功能。 PB2/AN2 : 充電時充電電池的偵測,使用當作類比ADC輸入的功能。 PB3/AN3和PA7 : 兩個輸入開關,使用當作數位輸入的功能。 PA4,PA5和PA6 : 以掃描方式做4個LED燈顯示,使用當作輸出的功能。 PA0 : 控制對**槽的電池充電,由一個電晶體做開關,使用當作輸出的功能。 PA1 : 控制對槽的電池充電,由一個電晶體做開關,使用當作輸出的功能。 PA2 : 控制對槽的電池放電,由一個電晶體做開關,使用當作輸出的功能。 PA3 : 控制對**槽的電池放電,由一個電晶體做開關,使用當作輸出的功能。 PD0/PWM : 控制充電電流的大小,由一個電晶體做開關,使用當作PWM輸出的功能。 TIMER : 計時每0.04秒中斷一次,做計時及掃描顯示LED。 看門狗計時器*(WDT) : 避免程式執行錯誤做一個保護的動作。 低電壓重置功能啟動 : 只要電壓小於3V 微控制器就不動作。 系統頻率選擇RC震盪器的方式 : OSC1 接一個75kΩ的電阻到地,頻率約4MHz。 實做的充電器電路如下: 以上對充電器微控制器就簡單介紹到此,希望對讀者能對充電器的原理及製作有些助益。 作者: 劉溫良 畢業於逢甲大學 電子工程學系 目前服務於 盛群半導體 微控制器應用部 |