找回密碼
 立即註冊
搜索
查看: 5942|回復: 15

維修員手記 --- 蔡漢雄 VR2ZRT(中無通訊 89 期)

[複製鏈接]
發表於 20-6-2019 12:22:44 | 顯示全部樓層 |閱讀模式
很多人學懂了單晶片知識都不知道可以用在什麼地方,  其實單晶片可以存在我們身邊的每一件電子裝置裡面。
你懂任何一個品牌的單晶片技術, 再加上 C 語言或者組合語言(國內叫匯編語言), 再學一點畫底板圖軟件, 基本上你想到什麼就可以用單晶片實現你的要求, 當然講的是電子控制部份。以下是一個案例供參考,在 8 年前的某一天, 筆者的其中一個客戶「湯馬士先生」來電, 他手上有 2 件顯示板, 用在機電設備上, 因為雷電打壞了, 請我幫他維修, 我叫他先交來檢查, 再決定下一步。
附圖是損壞的顯示板
Fig_1A.jpg
Fig_1B.jpg
 樓主| 發表於 20-6-2019 12:44:44 | 顯示全部樓層
經初步檢查, 這是一件米字管顯示板, 2 件一起用, 分為顯示個位及拾位。2 件板是一樣, 為了知道他的工作原理, 要找他的線路圖, 我問湯馬士可以找到嗎? 他回覆無. 這時我唯有用土辦法, 就是用萬用表測量 PCB 上每一條走線, , 然後在白紙上繪畫線路圖出來。
Fig_2.jpg
原來顯示板的線路圖
 樓主| 發表於 20-6-2019 12:51:43 | 顯示全部樓層
再分析, 整理資料如下
1. 板上只有一粒 CPLD 芯片 XC9536, 內部有 800 個門電路可以編程。
2. 板上電源電壓是5V直入, 中間無經穩壓電路或保護電路。
3. 輸入訊號共 6 條(6 Bit), 5V電平, 加了二極管和電阻保護。
4. 顯示用了一粒小型紅色米字管, 可以顯示 0-9, A-Z, 和少量符號, 共陽極。
5. 在網上找到顯示板的數據書, 如圖3:
Fig_3.jpg
圖3  原來顯示板的部份數據書

 樓主| 發表於 20-6-2019 16:06:00 | 顯示全部樓層
有了接線圖, 筆者就上電測試, 不論在輸入端輸入什麼訊號米字管都無任何顯示, 應該是板上CPLD芯片損毀。根據數據書資料這粒CPLD的要下載程式才能動作. 所以買一粒新的CPLD焊上去都無用. 而筆者對CPLD不太懂. 所以放棄用新CPLD的方案.
這時腦海立刻出現另一個想法, 就是用一粒單晶片代替CPLD的方案, 這方法的缺點就是要重劃PCB, 因為單晶片的出腳和CPLD芯片是不兼容的, 而剛好手上有一批STC90C54的單晶片, 封裝是QFP44, 和CPLD芯片的腳數一樣. 就用他來代替CPLD.圖4 新顯示板的線路圖
Fig_4.jpg


 樓主| 發表於 20-6-2019 16:10:57 | 顯示全部樓層
用了一粒 STC90C54 芯片為核心, 這芯片是 8051 系列的洐生型, 是 8 位元單晶片, 很容易買到, 而價格亦非常低, 雖然 8051 架構是 1981 年的設計, 但是用在這次應用還是可以的。STC90C54 增加了現在主流的 ISP 功能, 非常好用, 省卻了以前購買燒錄器的金錢, 利用一條下載線 (圖5) 就可以將 BIN 或 HEX 檔下載到 STC90C54 芯片如果程式跑錯了, 只需改源程序, 組譯, 再下載就可以了.直到程式運行正常為止。而筆者購買的下載線還多 2 種功能. 1, 可以將芯片直接放入活動IC座下載程式. 2, 可以脫機下載, 即是先用USB接口下載到下載線上, 就可以將電腦和下載線分離.這時下載線就可以下載程式到目標板上的芯片。
圖5   STC 下載線
fig_5.jpg
 樓主| 發表於 20-6-2019 16:31:23 | 顯示全部樓層
本帖最後由 VR2ZWP 於 21-6-2019 11:36 編輯

圖 6  STC 下載軟件
Fig_6.jpg

因為不想增加零件數量
, 所以輸入訊號經10K上拉電阻提升后就直接輸入到   STC90C54   的   IO   .所以不能輸入超過   5V   的訊號, 同時只能接直流電。在工業控制上有時要接交流   AC24V   或   AC110V, 這時就要經限流電阻再過光耦合隔離之後才輸入到單晶片的   IO腳。而推動的米字管有16, 就用了   STC90C54   2組   IO   腳經限流電阻連接, 而一般單晶片的"0"輸出電流較大, 所以米字管選用了共陽極, STC90C54   接了簡單的阻容复位, 晶振電路和電容濾波電路。
下一步進行繪畫底板圖工序, 筆者選用了 PADS POWERPCB 來完成這工作, 之前己在白紙上畫了線路圖, 而   POWERPCB 可以支持直接畫 PCB 不需 POWER LOGIC 畫好線路圖, 轉換到   POWERPCB上。所以在   PADS上就跳過畫線路圖的步驟, 直接畫 PCB。步驟如下:
1. 先畫PCB的輪廓 (Board Outline), 因為原來 PCB 要安裝在一個膠盒內, 所以型狀較為特別。
2. 然后放置零件 (Add Component) 在 PCB上。
3.  再將各零件的接腳用電氣線 (AddConnection) 連接好。
4. 再將電氣線進行佈線 (Route),同時將零件位置調整一下 (Move), 令到走線更完美。
5. 最后用設計定律 (VerifyDesign) 檢查是否有錯誤。
當然你懂得利用無模指令 (Modeless  Commands  ) 的話,速度還會加快,劃 PCB 的工作就完成了。
 樓主| 發表於 20-6-2019 17:07:40 | 顯示全部樓層
本帖最後由 VR2ZWP 於 20-6-2019 17:21 編輯

再進入制作 PCB 工序:

圖7, 用POWERPCB劃好的雙面底板圖
FiG_7.jpg

圖8, PCB工廠交來的空白PCB
fig_8.jpg

之前都是自己DIY 單面或雙面板, 十分費時和費功夫。這幾年因為國內有些PCB工廠將造樣板PCB的費用下調到你無法想像的低價格, 以筆者採用的PCB工廠為例, 造10件10cmX10cm的雙面板,費用約RMB100.00(2019年再下調為RMB50.00), 這價格已經包括綠,白油。而下單過程亦很方便. 因為用了ERP系統, 只要到PCB廠的官網, 先註冊, 然後按指示一樣樣點選, 再將PCB檔案上傳等審批。 審批完成再付款就完成了流程。通常等3至4天PCB就會經快遞送到你指定地址。
 樓主| 發表於 20-6-2019 17:30:43 | 顯示全部樓層
圖9  焊好的 PCB
Fig_9A.jpg
Fig_9B.jpg
在等侍 PCB 同時, 筆者找了 VR2UKT 幫忙用組合語言寫了源程序, 這程序就是一個查表軟件, 先將輸入 6 Bi t訊號讀入CPU內部, 然后和記憶區每一組數碼比較, 有相同時就輸出對應的數碼到米字上顯示。
收到PCB後, 立刻將準備好的零件焊接好, 如圖9所示. 再用一部可調穩壓電源調到5V, 接到PCB上, 觀察電流應少於50mA。這時再用STC下載線, 將HEX檔案下載到STC90C54內部.再次上電复位就會運行剛才程序。為什麼要先用5V電源試一次, 才用下載線下載程序? 筆者大多數用手提電腦的USB口連接下載線進行下載。如果剛焊好的實驗電子板有可能短路或電流過大,  這時接到下載器的話, 有機會令到USB口損壞, 所以為安全計, 通常將實驗電子板接上5V電源, 電流無過載及過熱, 才進行下載程序動作。
下一步要測試這件顯示板是否正常, 但是這件顯示板的輸入訊號和電源都用一種叫"金手指"的插座介面, 在30年前是很普遍的一種介面, 現今還有採用, 如果用電線接入測試的話很不方便, 因為有6條訊號線, 每條線有"1"和"0"狀態, 共有64種變化. 最后再劃多一件試機板, 用來測試剛焊好的顯示板。


 樓主| 發表於 20-6-2019 17:38:04 | 顯示全部樓層
本帖最後由 VR2ZWP 於 21-6-2019 11:33 編輯

圖10  是試機板的完成圖
Fig_10.jpg

圖11  顯示板和試機板連接好的圖
Fig_11.jpg

試機板上焊了一個金手指插座, 將顯示板放上去, 在傍邊有6粒開關推掣, 可以輸入"1"和"0"狀態, 可以全部64種狀態都測試, 在開關掣上方, 用MC34063芯片造了一個DC-DC電路, 輸入24V, 輸出5V. 為什麼不直接5V電源? 筆者多數用12V或24V來試機, 而電源亦是可調試的, 有時會調高了電壓都不知, 一接入顯示板的話板上的STC90C54就會出煙,所以最好加上5V穩壓電路。 如果想簡單一點, 可以採用LM7805, 但是記得加散熱器。
測試板我只用了一半, 另一半位置我劃另一組測試電路, 用來測試另一件電子板是否正常, 下次有機會再作介紹。
因為VR2UKT深厚的組合語言軟件功力, 這程序測試了几次之后就定型了, 調試通過。和數據書顯示字符一樣.
經過3星期的時間, 我將2件新造的顯示板交到湯馬士手中, 再裝回機器, 一開電就正常工作了. 連續7X24運行了几年時間。

後記:
如果在今天重做的話, 可以有一些新的STC單晶片可以利用. 就是除了電源腳外, 餘下的接腳都可以做IO, 即是40腳芯片有IO腳38腳, 20腳芯片有IO腳18腳, 8腳芯片有IO腳6腳。 所有振盪, 复位, WDT...都整合到芯片內部, 用來開發更方便。

Fig_10.jpg
 樓主| 發表於 21-6-2019 11:04:31 | 顯示全部樓層
本帖最後由 VR2ZWP 於 21-6-2019 11:09 編輯

註:
CPLD=Complex Programmable Logic Device (复杂可编程逻辑器件)
ISP=In-system programming (在系統編程/在線編程)

程序清單
*****************************************************
        16 Segment Decoder

CPU:                STC90C54RD
XTAL:                11.0592MHz          
Program:                RUNL16CD.asm
Date:                26_November_2010
*****************************************************

WDT_CONTR        EQU        0E1H
IN_1                EQU        P1                P1.0~P1.5
OUTBUF1        EQU        31H                A1~F
OUTBUF2        EQU        32H                G1~K
BUFFER                EQU        30H
TEMP_BUF        EQU        40H
START                EQU        100H
                                ORG     0H
        AJMP                START
                ORG        0BH
        AJMP                TIMER

                ORG        START
        ACALL                CLRRAM
        MOV                TMOD,#21H
        MOV                TH0,#0D8H
        MOV                TL0,#0F0H
        SETB                RS0
        MOV                R4,TL0
        MOV                R5,TH0
        CLR                RS0
        SETB                TR0
        SETB                ET0
        MOV                SP,#15
        SETB                EA

STATUS:
        MOV                A,BUFFER
        JZ                STATUS                               
        input=0, Hold the Old Data
        CJNE                A,26H,STATUS1
        AJMP                STATUS
STATUS1:       
        MOV                26H,BUFFER
        ACALL        DECODE
Send_Out
        MOV                P0,OUTBUF1
        MOV                P2,OUTBUF2
        AJMP                STATUS
*********************************
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

手機版|小黑屋|存檔|中華業餘無線電研究會網站

GMT+8, 28-3-2024 21:22 , Processed in 0.049583 second(s), 23 queries , Gzip On.

本討論區基於 Discuz! X3.5

版權所有 © 2001-2024 中華業餘無線電研究會有限公司,保留一切權利


重要聲明:本討論區是以即時上載留言的方式運作,中華業餘無線電研究會對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們。中華業餘無線電研究會有權刪除任何留言及拒絕任何人士上載留言(刪除前或不會作事先警告及通知),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

快速回復 返回頂部 返回列表