Base on RPi CM4 開發板 硬體驗證流程 教學 步驟 硬體驗證工程師 BSP工程師
前言
當拿到公司自己Layout的開發板(SBC)的時候,或購買外面現成的SBC,以公司的角度我們一開始應該先做硬體驗證,確保每一個腳位或功能元件都能正常運作,尤其是公司自己Layout的板子,因為是客製化後的,硬體compoment有新增或刪減,Layout線路也不完全一樣,所以更需要做硬體驗證,如果發現功能不正常,我們就要找到root cause看是firmware需要更正,或是硬體線路有誤,本篇內容將base on RPi CM4來帶各位一步一步瞭解硬體驗證的流程與步驟,驗證完了才能開始實現我們產品的功能。
硬體驗證須具備哪些技能或知識
- 硬體
- 會看硬體電路圖
- 測量儀器的使用(邏輯分析儀)
- 基本通訊協定常識(UART, I2C, etc.)
- 軟體
- 燒入firmware
- BSP的移植
- 修改Device tree
- 修改Linux kernel
- 硬體測試程式的撰寫
快速認識CM4開發板
拿到任何板子或需要瞭解晶片時可以先看datasheet的Product Brief介紹,可以讓我們快速瞭解其功能。
Specification
- CM4 socket: suitable for all variants of Compute Module 4
- Standard Raspberry Pi HAT connectors with PoE support
- Standard PCIe Gen 2 x1 socket
- Real-time clock (RTC) with battery backup
- Dual HDMI connectors
- Dual MIPI camera connectors
- Dual MIPI display connectors
- Gigabit Ethernet socket supporting PoE HAT
- On-board USB 2.0 hub with 2 USB 2.0 connectors
- SD card socket for Compute Module 4 variants without eMMC
- Support for programming eMMC variants of Compute Module 4
- PWM fan controller with tachometer feedback
上面這圖是CM4周邊介紹圖 Ref: Raspberry Pi Compute Module 4 IO Board product brief
如果上圖有不知道的專業名稱就去Google搜尋,積極不斷學習才能進步!
下面再來看看不同型號的硬體差異,如果eMMC 0GB的話,表示它是用SD card。
上面這圖是CM4的型錄圖 Ref: Compute Module 4 Product Brief
RPi CM4燒入OS Image
!!注意只要硬體電路需要更改或插入接線時,請先不用讓板子上電!!避免接錯線路或碰觸到其他電路造成短路燒壞板子。
底下的燒入流程需先準備這些配備與軟體
- 硬體
- Host PC: Windows(電腦主機的作業系統)
- CM4 IO板以及CM4板
- 軟體
- 使用Windows Installer(rpiboot)來安裝CM4的Driver
- 使用Raspberry Pi Imager來安裝CM4的OS
步驟與流程
1. CM4接入CM4 IO Board
請先把Compute Module 4(CM4)插入Compute Module 4 IO Board(CM4的IO板)下圖是CM4 IO板,圖中可以看到中間有Compute Module 4的字樣,這個區域就是讓你插入CM4。
上面這圖是CM4 IO板
上面這圖是CM4
上面這圖是CM4 IO Board上面的J2 Jumper腳,用來開啟或關閉一些功能。
上面這圖是J2的電路圖腳位
2. 將J2的腳位2 nRPIBOOT與腳位1 短路
根據官網Setting up the CMIO board 的描述以及Compute Module 4 IO Board Datasheet第七頁提到,需要把nRPIBOOT的腳位接地,讓原本default用eMMC開機的功能改成使用USB開機,並且讓eMMC做為USB Mass Storage Device給Host PC讀取。接地的方法我們可以使用杜邦線或是直接使用Jumper把腳位1與腳位2短路就是接地。
3. 連接USB線至Host PC與CM4 IO Board
接著繼續根據Setting up the CMIO board接續的步驟(Use a micro USB cable to connect the micro USB slave port J11 on IO board to the host device.)告訴我們使用USB micro線連接Host PC至 CM4 IO Board的J11,這時候我們需要知道J11的位置在板子的哪邊,只要是需要知道compoment的位置時,我們就需要看板子的PCB Layout圖,可以在回到Compute Module 4 IO Board Datasheet第9頁即是PCB Layout圖,仔細看可以看到J11的位置如下圖
4. 下載RPiBoot並安裝相關驅動程式
USB線接上後還先不用接上電源,請先下載Windows Installer(RPiBoot)並安裝驅動程式。
5. CM4 IO Board接上電源
6. 續第四點安裝後的RPiBoot執行它
執行它便會看到它開啟terminal並開始安裝驅動 ,安裝完成之後可以發現Host PC抓到了CM4的USB裝置也就是eMMC。
7. 下載Raspberry Pi Imager並安裝與使用
下載Raspberry Pi Imager並安裝,該軟體的作用是安裝CM4的OS。安裝好之後打開選擇你的裝置(為了避免安裝到錯誤的USB設備,此時建議不要插入其他USB Storage設備)與選擇你要安裝的OS,因為CM4 CPU是64 bit,所以OS我就選64 bit速度較快,如同上面所述,此時安裝的OS就是裝入到CM4的eMMC內。
!!補充:因CM4本身沒有拉USB Debug Port,只能透過GPIO拉Debug Port出來,所以我等等要透過SSH連線進入CM4來操控下達指令。 請點選Raspberry Pi Imager tool右下角的設定圖案。點選開啟SSH服務,並輸入使用者密碼用密碼來登入SSH,另外也可以先設定好WFI連線。 Ref: How to SSH Into a Raspberry Pi for Remote Access
等一段時間燒入完成後就可以斷電把J2的Jumper卸下來。然後再上電開機我們要用eMMC booting。
!!補充:有興趣的人也可以研究看看Installing OS over the Network
其他相關參考資料
Compute Module 4 Extensions包括recovery、rpi-imager-embedded、mass-storage-gadget、secure-boot-recovery等。
硬體周邊元件驗證
我以公司板子為例,我們可以先從最簡單可以快速驗證的元件開始。 例如HDMI、USB Port、Ethernet等等這種都是直接插入後透過terminal或桌面程式就可以知道硬體是否正常運作。
- HDMI: 有無畫面輸出
- USB: 是否接上滑鼠可以移動
- Ethernet: 接上有通的網路線是否可以連上網
但在這個驗證步驟時就遇到了USB與Ethernet不通的問題,這時候我們看一下kernel message跟使用usb tool來看usb device狀態。
# dmesg |grep -i USB
# lsusb
Ref:
Linux USB Not Detected or Not Working?
發現沒有USB3.0的Hub,USB插上滑鼠也沒有新增USB device的message。
前面有提到公司是base on CM4 IO板子下去改的,線路跟硬體元件不完全一樣,所以接下來我們進到下一節Troubleshooting來說明如何除錯找到root cause。
板子還剩下LED燈與RS232和CAN BUS這種較不易測試的我們也一併在下一節Troubleshooting來說明如何除錯找到root cause。
Troubleshooting
RS232/RS485打通的方法
請參考RPi CM4 UART RS232 RS485 使用 啟用 開通這篇文章
找出USB與Ethernet不通的問題
請參考RPi CM4 解決USB不通的問題 PCIE 轉 USB 3.0 uPD72020x這篇文章
CAN BUS打通的方法
請參考RPi CM4 SPI 轉 CAN Bus MCP251xFD 的使用 打通 CAN Bus 自檢這篇文章
LED打通的方法
請參考RPI GPIO這篇文章
結語
硬體驗證就是這麼簡單有趣~
留言