大家好,作為電子愛(ài)好者,我們經(jīng)常需要自己搭建電路,測(cè)試電路的性能和參數(shù),在實(shí)驗(yàn)設(shè)備里面,電源是最重要的設(shè)備之一,一臺(tái)好的電源可以給我們的測(cè)試帶來(lái)極大的便利和安全,但是很多愛(ài)好者是沒(méi)有一臺(tái)正規(guī)的實(shí)驗(yàn)電源的,只能使用一些廉價(jià)的開(kāi)關(guān)電源,或者適配器給電路供電,這樣操作存在一定的風(fēng)險(xiǎn)性,可能由于疏忽造成了電源短路,或者負(fù)載電流過(guò)大,導(dǎo)致電源承受不了這么大的功率,造成電源損壞甚至人身安全問(wèn)題,這個(gè)項(xiàng)目的內(nèi)容就是給大家提供一個(gè)廉價(jià)的簡(jiǎn)單的電源保護(hù)方案,保證大家在使用電源測(cè)試時(shí)的安全。
項(xiàng)目簡(jiǎn)介:
本項(xiàng)目是一個(gè)基于STM32的過(guò)壓過(guò)流保護(hù)模塊,用戶可以通過(guò)按鍵進(jìn)行屏幕交互,設(shè)置過(guò)壓過(guò)流值,當(dāng)過(guò)流或者過(guò)壓觸發(fā)后,屏幕會(huì)指示相應(yīng)故障,切斷輸出,用戶排除故障后,可通過(guò)按鍵復(fù)位故障,再次接通負(fù)載 。
模塊指標(biāo):
過(guò)流響應(yīng)時(shí)間:小于600uS
過(guò)壓響應(yīng)時(shí)間:小于1.3mS
輸入電壓范圍:9V~60V
通過(guò)電流范圍:0A~10A
步驟1:系統(tǒng)框架搭建及核心器件的選型
1.系統(tǒng)框圖
2.核心器件的選型
整個(gè)項(xiàng)目其實(shí)我們一開(kāi)始就考慮過(guò)要不要使用純硬件保護(hù)方案,然后STM32只做數(shù)據(jù)采樣顯示以及過(guò)壓過(guò)流參考值控制,后面仔細(xì)考慮了下,雖然反應(yīng)很迅速,但是我們希望加入數(shù)顯,用戶可以通過(guò)按鍵修改過(guò)壓過(guò)流值,同時(shí)為了減小體積,最終還是選擇使用單片機(jī)處理的方案,32系列型號(hào)比較多,為了充分的利用芯片資源,節(jié)省成本,我們采用STM32F031F6這個(gè)型號(hào),TSSOP20封裝,Cortex-M0內(nèi)核,48M主頻,外設(shè)及性能足夠項(xiàng)目使用了。
為了方便采樣電流和電壓,我選用了TI公司的INA226,該器件可以監(jiān)視分流壓降和總線電源電壓,可編程校準(zhǔn)值,轉(zhuǎn)換時(shí)間和取平均值功能與內(nèi)部乘法器相結(jié)合,可實(shí)現(xiàn)電流值和功率值的直接讀取。
OLED屏使用中景園的0.73寸屏幕,分辨率128*88,驅(qū)動(dòng)芯片SH1107,這款屏幕有個(gè)很不好的地方就是工作電壓過(guò)高,7V以上才能工作,我初步設(shè)計(jì)決定這個(gè)模塊最好5V也能工作,很明顯這個(gè)屏幕是不符合需求的,但是負(fù)責(zé)硬件的朋友非要用這個(gè)屏幕,我也就沒(méi)干預(yù)太多,最終還是選用的0.73寸的,需要額外增加SX1308這顆升壓芯片,大家可以自行更換常見(jiàn)的中景園的0.96寸或者0.91寸的OLED這兩尺寸的,驅(qū)動(dòng)芯片SSD1306,需要自行更換驅(qū)動(dòng)庫(kù),注意要更換成硬件IIC驅(qū)動(dòng),稍微有點(diǎn)費(fèi)時(shí)。其它芯片沒(méi)有太多注意的,用的常用的型號(hào)。
電源芯片:XL7005(BUCK降壓),LP2983(LDO降壓),SX1308(BOOST升壓);
MOS驅(qū)動(dòng)芯片:UCC27517;
MOS型號(hào):BSC093N15N85/CSD19534。
步驟2:硬件系統(tǒng)及GUI用戶界面設(shè)計(jì)
簡(jiǎn)要講解下電源部分,輸入電壓通過(guò)XL7005進(jìn)行降壓后輸出5V電壓,然后再通過(guò)LP2983降壓到3.3V給單片機(jī)和INA226供電,另一路通過(guò)SX1308進(jìn)行升壓到12V給MOS驅(qū)動(dòng)芯片和屏幕供電。注:原理圖源文件請(qǐng)下載附件查看
GUI設(shè)計(jì):
為了節(jié)省屏幕刷新時(shí)間,每次只顯示一個(gè)數(shù)字,顯示為覆蓋式,即不更改之前顯示的內(nèi)容,只把目標(biāo)區(qū)域的內(nèi)容進(jìn)行替換,減少清屏和重復(fù)內(nèi)容顯示所占用的時(shí)間,如下面設(shè)計(jì)圖,只有“299”,“299”,“NORMAL”這些字樣位置會(huì)進(jìn)行數(shù)據(jù)替換,單位“V”,“A”,及背景,不需要顯示更新。
設(shè)計(jì)的界面圖如上圖:
頂部?jī)?nèi)容為“電路城的LOGO”+Protection Modual字樣;
第一欄顯示電壓;
第二欄顯示電流;
第三欄顯示狀態(tài)。
步驟3:程序設(shè)計(jì)
按照預(yù)期的功能,我們需要使用單片機(jī)完成電壓電流的數(shù)據(jù)采樣,屏幕顯示內(nèi)容更新,數(shù)據(jù)處理這三個(gè)功能,其中屏幕顯示是一個(gè)比較占用處理器時(shí)間的過(guò)程,中景園官方例程提供的還是軟件IIC的驅(qū)動(dòng)代碼,為了提高顯示內(nèi)容單次更新速度,就必須將官方的代碼進(jìn)行更改,換成硬件IIC驅(qū)動(dòng),換成硬件IIC后,時(shí)鐘開(kāi)到1MHz(實(shí)測(cè)IIC跑到1.2M以上屏幕驅(qū)動(dòng)就吃不消了),顯示一個(gè)8*16像素的數(shù)字需要11ms左右,這個(gè)時(shí)間過(guò)長(zhǎng),導(dǎo)致其它進(jìn)程循環(huán)周期過(guò)長(zhǎng),查看官方的驅(qū)動(dòng)代碼后,發(fā)現(xiàn)顯示內(nèi)容數(shù)據(jù)生成的算法過(guò)于低效,算法跟中景園他們家0.96寸的型號(hào)不一樣,我參考0.96寸的算法進(jìn)行了更改,將顯示一個(gè)8*16像素的數(shù)字提升到了1ms左右的刷新速度,這個(gè)速度還算可以,如果各位對(duì)這方面感興趣,也可以配合DMA+中斷,再換成SPI接口的硬件連接方式測(cè)試一下速度能不能更大幅度提高;電壓電流數(shù)據(jù)采樣部分采用的INA226這顆芯片,帶觸發(fā)輸出,但是只能限制一種觸發(fā)輸出,為了穩(wěn)定起見(jiàn),在初始化INA226的時(shí)候,設(shè)置為過(guò)流觸發(fā),設(shè)置過(guò)流閾值,直接外部中斷觸發(fā)STM32并進(jìn)行保護(hù)動(dòng)作,電壓保護(hù)就采用寄存器輪詢方式進(jìn)行監(jiān)控,所以屏幕刷新速度直接影響電壓保護(hù)動(dòng)作速度,快則幾百u(mài)S,慢則1ms多,除了這兩個(gè)需要重點(diǎn)處理,其他部分就是常規(guī)的代碼編寫(xiě)和優(yōu)化了。程序流程圖與部分程序截圖可在附件提供的資料中查看。
代碼都做了大量的批注,有些地方大家不太理解的對(duì)照程序流程圖輔助理解就好,大家可以根據(jù)自己的需求在工程里面刪改一些內(nèi)容,自定義一些功能,有什么建議和問(wèn)題可以在評(píng)論區(qū)討論。
步驟4:系統(tǒng)功能測(cè)試及項(xiàng)目總結(jié)
制作說(shuō)明:
將附件內(nèi)容的PCB工程用AD打開(kāi),生成Genber文件或者直接把PCB文件交給PCB生產(chǎn)商打樣,然后按照BOM表單進(jìn)行元器件購(gòu)買(mǎi),程序文件使用的Keil 5進(jìn)行編寫(xiě)的,需要安裝Keil 5才能打開(kāi),程序下載采用的SWD方式,使用JLINK或者DAPLINK等下載器下載
使用教程:
1.模塊說(shuō)明:
2.按鍵介紹:
SET鍵:進(jìn)入/退出設(shè)置模式
AN鍵:復(fù)位保護(hù)操作(未進(jìn)入設(shè)置模式);進(jìn)入/退出更改閾值模式
+ 鍵:選中下一個(gè)數(shù)字(未進(jìn)入更改閾值模式);當(dāng)前數(shù)字?jǐn)?shù)值+1(更改閾值模式)
-鍵:選中上一個(gè)數(shù)字(未進(jìn)入更改閾值模式);當(dāng)前數(shù)字?jǐn)?shù)值-1(更改閾值模式)
3.更改閾值 :
①按一下”SET鍵”,進(jìn)入設(shè)置狀態(tài)
②按“+鍵”或者“-鍵”移動(dòng)光標(biāo)選中的數(shù)字
③按下“AN鍵”,進(jìn)入更改數(shù)字狀態(tài)
④按“+鍵”或者“-鍵”更改數(shù)值大小
⑤按下“AN鍵”,退出更改數(shù)字狀態(tài)
⑥按一下“SET鍵”,退出設(shè)置狀態(tài)
4.復(fù)位保護(hù)動(dòng)作:
確保當(dāng)前為顯示電壓電流狀態(tài),不是設(shè)置模式界面(如果是過(guò)流過(guò)壓觸發(fā)了保護(hù),請(qǐng)排除故障再操作,以免多次復(fù)位保護(hù)導(dǎo)致MOS管損壞)
①按下“AN鍵”,即可復(fù)位
結(jié)語(yǔ):
做這個(gè)項(xiàng)目和寫(xiě)這個(gè)教學(xué)帖,目的是給一些電子愛(ài)好者提供一個(gè)過(guò)壓過(guò)流保護(hù)方案,可以直接用我們的DEMO工程去制作出來(lái),對(duì)于有能力的朋友,完全可以在我們的基礎(chǔ)上進(jìn)行改進(jìn),這個(gè)項(xiàng)目的硬件部分還可以做很多的優(yōu)化,大家可以在我的程序框架基礎(chǔ)上或者仿照我這個(gè)程序系統(tǒng)的設(shè)計(jì)進(jìn)行自定義的功能設(shè)計(jì)和開(kāi)發(fā),希望這篇教學(xué)帖子可以幫個(gè)各位,感興趣的朋友可以點(diǎn)個(gè)贊,留個(gè)評(píng)論,謝謝各位~
版權(quán)聲明:本文系電路城原創(chuàng)內(nèi)容,未經(jīng)授權(quán)禁止轉(zhuǎn)載,侵權(quán)必究!