這個(gè)項目開(kāi)始于一個(gè)需要建立一個(gè)簡(jiǎn)單的設備來(lái)監控CAN總線(xiàn)。我選擇NUC140LC1CN 32K Cortex-M0微處理器Nuvoton主要原因是它有USB和CAN外設。
特征
示意圖
啟用NUC140與CAN總線(xiàn)通信的CAN外圍設備需要CAN收發(fā)器。這個(gè)TJA1051TNXP的芯片解決了這個(gè)問(wèn)題。這個(gè)NUC140該裝置能夠從5V電源供電,不需要額外的3.3V電壓調節器。這種方便的組合使得實(shí)現CAN總線(xiàn)接口的任務(wù)變得簡(jiǎn)單。有三個(gè)狀態(tài)指示燈:
D1是到主機的USB連接狀態(tài)
D2顯示CAN總線(xiàn)活動(dòng)
D3表示CAN錯誤
這個(gè)NUC140沒(méi)有內置的引導加載程序,唯一的編程方法是使用ARM串行線(xiàn)調試(SWD)接口(J2連接器)和Nuvoton ICP編程器。是的,如果bootloader已經(jīng)被預先編程,它可以被激活。這就是JP1 jumper的目的。在接口通電之前連接JP1將觸發(fā)引導加載程序。
引導加載程序
這個(gè)NUC140LC1號閃存分為兩部分,一部分用于執行32K大小的用戶(hù)程序代碼(APROM),另一部分用于引導加載程序(LDROM)。LDROM的大小只有4K,這使得構建一個(gè)功能齊全的USB引導加載程序成為一個(gè)挑戰。我使用了Nuvoton提供的大容量存儲設備(MSD)引導加載程序。連接跨接線(xiàn)JP1將啟動(dòng)它。因此,在主機文件系統中應該可以看到大小為32KB的可移動(dòng)驅動(dòng)器。只需復制粘貼或拖放CAN-USB固件更新到引導加載程序驅動(dòng)器。拔下USB電纜,拔下跳線(xiàn)并重新插入。新固件更新現在應該正在運行。
編程CAN-USB接口和NUTINY-SDK-140
編程NUC140處理器需要Nuvoton的Nu Link編程器和Nuvoton ICP編程應用. 我決定用NUC140演示板(NuTiny-SDK-140)可從Digi Key獲得。它有兩部分,一部分是NUC140芯片和Nu-Link編程器本身。該板甚至穿孔,以分離Nu-Link部分。實(shí)際上,你可以只圍繞NuTiny-SDK-140演示板來(lái)構建這個(gè)設備,只需要額外的can收發(fā)器芯片。
連接Nu-Link后,NUC140的編程并不復雜。這里的關(guān)鍵問(wèn)題是選擇從LDROM加載而不是從APROM加載(在配置設置中),以獲得USB引導加載程序功能。
軟件
ICEL與USB協(xié)議兼容,與USB接口兼容。我用CAN-USB接口測試了兩個(gè)應用程序:
CANHacker V2.00.02
這個(gè)CANHacker應用程序是免費軟件。我找不到它的手冊,但使用它是簡(jiǎn)單和直接的。
CAN監視器Pro V2.2
本申請由WGSoft公司. 網(wǎng)站上大部分是德語(yǔ)注釋。
PCB設計
印刷電路板