加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

《來實(shí)戰(zhàn)》第3期:手把手教你用單片機(jī)做一個(gè)過流過壓保護(hù)模塊

2020/08/14
4163
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
方塊圖(8)
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

此處最終顯示為電路方案的作者信息(僅在“來實(shí)戰(zhàn)”模板下生效)

大家好,作為電子愛好者,我們經(jīng)常需要自己搭建電路,測試電路的性能和參數(shù),在實(shí)驗(yàn)設(shè)備里面,電源是最重要的設(shè)備之一,一臺(tái)好的電源可以給我們的測試帶來極大的便利和安全,但是很多愛好者是沒有一臺(tái)正規(guī)的實(shí)驗(yàn)電源的,只能使用一些廉價(jià)的開關(guān)電源,或者適配器給電路供電,這樣操作存在一定的風(fēng)險(xiǎn)性,可能由于疏忽造成了電源短路,或者負(fù)載電流過大,導(dǎo)致電源承受不了這么大的功率,造成電源損壞甚至人身安全問題,這個(gè)項(xiàng)目的內(nèi)容就是給大家提供一個(gè)廉價(jià)的簡單的電源保護(hù)方案,保證大家在使用電源測試時(shí)的安全。

項(xiàng)目簡介:

       本項(xiàng)目是一個(gè)基于STM32的過壓過流保護(hù)模塊,用戶可以通過按鍵進(jìn)行屏幕交互,設(shè)置過壓過流值,當(dāng)過流或者過壓觸發(fā)后,屏幕會(huì)指示相應(yīng)故障,切斷輸出,用戶排除故障后,可通過按鍵復(fù)位故障,再次接通負(fù)載 。

模塊指標(biāo):

過流響應(yīng)時(shí)間:小于600uS

過壓響應(yīng)時(shí)間:小于1.3mS

輸入電壓范圍:9V~60V

通過電流范圍:0A~10A

步驟1:系統(tǒng)框架搭建及核心器件的選型


1.系統(tǒng)框圖

2.核心器件的選型

       整個(gè)項(xiàng)目其實(shí)我們一開始就考慮過要不要使用純硬件保護(hù)方案,然后STM32只做數(shù)據(jù)采樣顯示以及過壓過流參考值控制,后面仔細(xì)考慮了下,雖然反應(yīng)很迅速,但是我們希望加入數(shù)顯,用戶可以通過按鍵修改過壓過流值,同時(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è)很不好的地方就是工作電壓過高,7V以上才能工作,我初步設(shè)計(jì)決定這個(gè)模塊最好5V也能工作,很明顯這個(gè)屏幕是不符合需求的,但是負(fù)責(zé)硬件的朋友非要用這個(gè)屏幕,我也就沒干預(yù)太多,最終還是選用的0.73寸的,需要額外增加SX1308這顆升壓芯片,大家可以自行更換常見的中景園的0.96寸或者0.91寸的OLED這兩尺寸的,驅(qū)動(dòng)芯片SSD1306,需要自行更換驅(qū)動(dòng)庫,注意要更換成硬件IIC驅(qū)動(dòng),稍微有點(diǎn)費(fèi)時(shí)。其它芯片沒有太多注意的,用的常用的型號(hào)。

電源芯片:XL7005(BUCK降壓),LP2983(LDO降壓),SX1308(BOOST升壓);

MOS驅(qū)動(dòng)芯片:UCC27517;

MOS型號(hào):BSC093N15N85/CSD19534。

步驟2:硬件系統(tǒng)及GUI用戶界面設(shè)計(jì)

簡要講解下電源部分,輸入電壓通過XL7005進(jìn)行降壓后輸出5V電壓,然后再通過LP2983降壓到3.3V給單片機(jī)和INA226供電,另一路通過SX1308進(jìn)行升壓到12V給MOS驅(qū)動(dò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ì)的界面圖如上圖:

頂部內(nèi)容為“電路城的LOGO”+Protection Modual字樣;

第一欄顯示電壓;

第二欄顯示電流;

第三欄顯示狀態(tài)。

步驟3:程序設(shè)計(jì)

       按照預(yù)期的功能,我們需要使用單片機(jī)完成電壓電流的數(shù)據(jù)采樣,屏幕顯示內(nèi)容更新,數(shù)據(jù)處理這三個(gè)功能,其中屏幕顯示是一個(gè)比較占用處理器時(shí)間的過程,中景園官方例程提供的還是軟件IIC的驅(qū)動(dòng)代碼,為了提高顯示內(nèi)容單次更新速度,就必須將官方的代碼進(jìn)行更改,換成硬件IIC驅(qū)動(dòng),換成硬件IIC后,時(shí)鐘開到1MHz(實(shí)測IIC跑到1.2M以上屏幕驅(qū)動(dòng)就吃不消了),顯示一個(gè)8*16像素的數(shù)字需要11ms左右,這個(gè)時(shí)間過長,導(dǎo)致其它進(jìn)程循環(huán)周期過長,查看官方的驅(qū)動(dòng)代碼后,發(fā)現(xiàn)顯示內(nèi)容數(shù)據(jù)生成的算法過于低效,算法跟中景園他們家0.96寸的型號(hào)不一樣,我參考0.96寸的算法進(jìn)行了更改,將顯示一個(gè)8*16像素的數(shù)字提升到了1ms左右的刷新速度,這個(gè)速度還算可以,如果各位對(duì)這方面感興趣,也可以配合DMA+中斷,再換成SPI接口的硬件連接方式測試一下速度能不能更大幅度提高;電壓電流數(shù)據(jù)采樣部分采用的INA226這顆芯片,帶觸發(fā)輸出,但是只能限制一種觸發(fā)輸出,為了穩(wěn)定起見,在初始化INA226的時(shí)候,設(shè)置為過流觸發(fā),設(shè)置過流閾值,直接外部中斷觸發(fā)STM32并進(jìn)行保護(hù)動(dòng)作,電壓保護(hù)就采用寄存器輪詢方式進(jìn)行監(jiān)控,所以屏幕刷新速度直接影響電壓保護(hù)動(dòng)作速度,快則幾百uS,慢則1ms多,除了這兩個(gè)需要重點(diǎn)處理,其他部分就是常規(guī)的代碼編寫和優(yōu)化了。程序流程圖與部分程序截圖可在附件提供的資料中查看。

        代碼都做了大量的批注,有些地方大家不太理解的對(duì)照程序流程圖輔助理解就好,大家可以根據(jù)自己的需求在工程里面刪改一些內(nèi)容,自定義一些功能,有什么建議和問題可以在評(píng)論區(qū)討論。

步驟4:系統(tǒng)功能測試及項(xiàng)目總結(jié)


制作說明:

將附件內(nèi)容的PCB工程用AD打開,生成Genber文件或者直接把PCB文件交給PCB生產(chǎn)商打樣,然后按照BOM表單進(jìn)行元器件購買,程序文件使用的Keil 5進(jìn)行編寫的,需要安裝Keil 5才能打開,程序下載采用的SWD方式,使用JLINK或者DAPLINK等下載器下載

使用教程:

1.模塊說明:

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è)置模式界面(如果是過流過壓觸發(fā)了保護(hù),請排除故障再操作,以免多次復(fù)位保護(hù)導(dǎo)致MOS管損壞)

①按下“AN鍵”,即可復(fù)位

結(jié)語:

做這個(gè)項(xiàng)目和寫這個(gè)教學(xué)帖,目的是給一些電子愛好者提供一個(gè)過壓過流保護(hù)方案,可以直接用我們的DEMO工程去制作出來,對(duì)于有能力的朋友,完全可以在我們的基礎(chǔ)上進(jìn)行改進(jìn),這個(gè)項(xiàng)目的硬件部分還可以做很多的優(yōu)化,大家可以在我的程序框架基礎(chǔ)上或者仿照我這個(gè)程序系統(tǒng)的設(shè)計(jì)進(jìn)行自定義的功能設(shè)計(jì)和開發(fā),希望這篇教學(xué)帖子可以幫個(gè)各位,感興趣的朋友可以點(diǎn)個(gè)贊,留個(gè)評(píng)論,謝謝各位~

版權(quán)聲明:本文系電路城原創(chuàng)內(nèi)容,未經(jīng)授權(quán)禁止轉(zhuǎn)載,侵權(quán)必究!


  • 步驟2相關(guān)資料.zip
    描述:PCB文件
  • Protecion_Modual_V1.0.zip
    描述:源碼
  • 步驟1相關(guān)資料.zip
    描述:bom表和項(xiàng)目介紹

相關(guān)推薦

電子產(chǎn)業(yè)圖譜