秀操作:從硬件到軟件,一個(gè)外包產(chǎn)品的設(shè)計(jì)過程
網(wǎng)站:bbs.21ic.com
這個(gè)設(shè)備需要對(duì)工業(yè)電源的輸出進(jìn)行OCP,OVP,OTP檢測(cè)等相關(guān)功能,并對(duì)相關(guān)測(cè)試量的信息實(shí)時(shí)顯示在數(shù)碼管(由于是幾年前的設(shè)備,液晶比較貴,只能選擇數(shù)碼管的)。由于客戶給出的信息比較寬泛,所以設(shè)計(jì)起來比較自由,首先完成基本參數(shù)的定義,完成原理圖和PCB的設(shè)計(jì)。
一,基本參數(shù)
1.額定電壓:220V 2.額定頻率:50Hz 3.額定功率:20W 4.輸入信號(hào):由連接器接到相應(yīng)的檢測(cè)負(fù)載 CN1:電源負(fù)載1溫度傳感器 CN2:電源負(fù)載2溫度傳感器 CN3:電源負(fù)載1電流檢測(cè)信號(hào) CN4:電源負(fù)載2電流檢測(cè)信號(hào) KEY1:Stop按鍵 KEY2:Dec按鍵 KEY3:Inc按鍵 KEY4:Star按鍵 5.輸出控制: SEG1:溫度顯示數(shù)碼管 SEG2:電流顯示數(shù)碼管 CN5:電源負(fù)載1 PWM控制信號(hào) CN6:電源負(fù)載2 PWM控制信號(hào) CN7:散熱風(fēng)扇PWM控制信號(hào) CN8:水冷泵PWM控制信號(hào) led1:關(guān)斷指示燈(紅色) led2:電源負(fù)載1正常工作指示燈(綠色) led3:電源負(fù)載2過熱指示燈(黃色) led4:電源負(fù)載1正常工作指示燈(綠色) led5:電源負(fù)載2過熱指示燈(黃色)
相關(guān)的輸出控制單元,比如散熱風(fēng)扇,水冷泵,數(shù)碼顯示管,都是安裝在客戶工業(yè)電源的外觀結(jié)構(gòu)上面,用線束和開發(fā)的控制板連接到一起,隨后和客戶定義了這些控制單元的DC電壓,開始進(jìn)行原理如的設(shè),使用AD繪制。根據(jù)相關(guān)功能的需求,使用STM32F103C8可以滿足需求,而且也沒有overdesign,基本所有的外設(shè)都用上了。
AC-DC電源部分TNY278為電源芯片,輸出DC-12V,隨后選用LDO輸出DC-5V。雖然12V轉(zhuǎn)3V3的壓差畢竟大,但經(jīng)過計(jì)算3V3的耗電50mA左右,LDO芯片功耗越過400mW左右,選用TO220的插件封裝,再加裝散熱片可以滿足要求。以下是電源部分的電路圖
關(guān)于layout圖紙參考意義就不是很大,由于我們是小樣產(chǎn)品,不會(huì)有EMC和安規(guī)認(rèn)證方面的要求,所以畫的圖紙就很粗糙,就不在這里展示了,哈哈。完成了layout后,發(fā)到大家都喜歡打板的廠家-嘉立創(chuàng),五天后就收到了板子,手工焊接完成,由于電源是很成熟的方案,只要元件不焊接錯(cuò)誤,基本可以保證一次輸出成功。果然測(cè)試輸出電壓12V,5V,3V3,一次過,沒有什么問題??蛻粢膊粚?duì)紋波,動(dòng)態(tài)響應(yīng)性,環(huán)路穩(wěn)定性有指標(biāo)性的要求,只要求功能正常就可以。所以對(duì)硬件就沒有過多的調(diào)試,就開始進(jìn)行軟件的編寫。
關(guān)于軟件怎么實(shí)現(xiàn),這就要安裝客戶的要求詳細(xì)實(shí)現(xiàn),通過和客戶多次討論,了解到這個(gè)控制板需要實(shí)現(xiàn)的控制邏輯。
二,控制邏輯
以下是相關(guān)外設(shè)對(duì)軟件的定義:
1. 控制芯片:STM32F103C8T6
2. 溫度檢測(cè):
(1)溫度傳感器CN1和CN2實(shí)時(shí)檢測(cè)功率負(fù)載1和功率負(fù)載2散熱片的溫度,通過AD采樣轉(zhuǎn)換后,對(duì)應(yīng)R-T表計(jì)算溫度,將當(dāng)前較高溫度顯示在數(shù)碼管SEG2。
(2)溫度傳感器CN1和CN2實(shí)時(shí)檢測(cè)功率負(fù)載1和功率負(fù)載2散熱片的溫度。當(dāng)采集溫度高于設(shè)定安全溫度(85℃),對(duì)應(yīng)路黃色指示燈亮(led3、led5),對(duì)應(yīng)路PWM輸出為0,對(duì)應(yīng)路綠色指示燈滅(負(fù)載2、led4),進(jìn)行過熱報(bào)警和保護(hù),并將當(dāng)前較高溫度顯示在數(shù)碼管SEG2,數(shù)碼管SEG2按照亮0.5秒關(guān)0.5秒的頻率閃爍提示。
(3)當(dāng)溫度降低至安全窗口之下(55℃),取消報(bào)警狀態(tài),PWM按之前設(shè)定輸出,數(shù)碼管和指示燈恢復(fù)正常顯示。
(4)根據(jù)CN1、CN2所檢測(cè)當(dāng)前溫度,應(yīng)在CN7、CN8輸出適當(dāng)PWM波,調(diào)節(jié)散熱風(fēng)扇和水冷泵轉(zhuǎn)速,以維持功率負(fù)載1和功率負(fù)載2溫度在適當(dāng)范圍。
3.電流輸出:
(1)按KEY4,CN5、CN6按照設(shè)定電流值和“PWM-電流對(duì)應(yīng)表”,輸出一定占空比PWM波。
(2)定期(10ms)檢測(cè)輸入CN3、CN4當(dāng)前電流值。當(dāng)某路電流和設(shè)定電流值有偏差(超過±100mA),將提高或者減少該路(CN5、CN6)輸出PWM波占空比,從而保證電源芯片輸出恒定電流。
(3)按鍵KEY2提高功率負(fù)載1和功率負(fù)載2電流設(shè)定值,數(shù)碼管SEG1以0.5s間隔閃爍顯示設(shè)定電流值,CN5、CN6輸出仍按照之前設(shè)定電流進(jìn)行輸出和反饋調(diào)節(jié),然后按下KEY4,修改CN5、CN6 PWM輸出,同時(shí)開始反饋調(diào)節(jié)。
(4)按鍵KEY3降低功率負(fù)載1和功率負(fù)載2電流設(shè)定值,數(shù)碼管SEG1以0.5s間隔閃爍顯示設(shè)定電流值,CN5、CN6輸出仍按照之前設(shè)定電流進(jìn)行輸出和反饋調(diào)節(jié),然后按下KEY4,修改CN5、CN6 PWM輸出,同時(shí)開始反饋調(diào)節(jié)。
(5)KEY2或KEY3最后一次按鍵后,10秒內(nèi)不按下按鍵KEY4,當(dāng)前按鍵KEY2和KEY3設(shè)定無效,數(shù)碼管SEG1停止閃爍,顯示之前設(shè)定值。
(6)按下按鍵KEY1,停止CN4、CN5輸出PWM波,也即無電流輸出,負(fù)載1點(diǎn)亮,負(fù)載2、led4滅,led3、led5仍按照溫度檢測(cè)規(guī)則顯示。
(7)關(guān)閉電流輸出后,按下按鍵KEY4,將按照當(dāng)前設(shè)定值,CN5、CN6再次輸出PWM波,同時(shí)開始反饋調(diào)節(jié)。
俗話說工欲善其事必先利其器,完成了軟件控制邏輯的定義,就可以具體進(jìn)行軟件代碼的編寫。
三 軟件編寫
使用STM32的開發(fā)工具進(jìn)行代碼的編寫,借鑒原子哥的例程,在相關(guān)的原子哥的例程上面開發(fā),相信很多人都有這經(jīng)歷,畢竟站在巨人的肩膀上面可以看得更遠(yuǎn),哈哈;
在這個(gè)產(chǎn)品中,用到ADC采樣,PWM調(diào)節(jié),數(shù)碼管控制,按鍵掃描控制等相關(guān)功能,所以以下的子函數(shù)需要用到,具體的代碼就不在帖子中就一一列出來,隨后會(huì)作為附件呈現(xiàn)出來的,
對(duì)相關(guān)子函數(shù)進(jìn)行調(diào)試,實(shí)現(xiàn)了對(duì)應(yīng)功能后。就開始Main函數(shù)的編寫,調(diào)用子函數(shù)實(shí)現(xiàn)軟件控制邏輯中要求的功能。具體代碼如帖子中呈現(xiàn)出來的,由于當(dāng)時(shí)完全是仿照例程寫的,所以寫的不是很規(guī)范,但是最后產(chǎn)品是完整跑起來了,作為送樣的產(chǎn)品也達(dá)到了要求的,哈哈!
main函數(shù)也有些長(zhǎng),貼了三次完整的代碼,網(wǎng)頁(yè)都被卡死了,隨便貼兩端代碼做個(gè)示例的,其他code只能作為附件上傳的.還有相關(guān)的數(shù)碼管,溫度傳感器的資料也附上,供有需要的小伙伴使用。
完成代碼的編寫,燒錄進(jìn)電路板后,相關(guān)功能符合要求。生產(chǎn)了十幾套產(chǎn)品,送給客戶展示,符合要求了。
這個(gè)產(chǎn)品從硬件到軟件的設(shè)計(jì)都不太復(fù)雜,在學(xué)校也有足夠多的時(shí)間慢慢琢磨,所以做出來的產(chǎn)品沒有出紕漏。但這僅僅是展示樣機(jī),還不能算消費(fèi)的產(chǎn)品,所以有差距的。這里呈現(xiàn)僅僅給大家做一個(gè)參考的!
本文系21ic論壇網(wǎng)友kk的回憶原創(chuàng),資料下載請(qǐng)點(diǎn)擊“閱讀原文”內(nèi)下載
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!