Share on:

1 分鐘閱讀

前言

當拿到公司自己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 上面這圖是CM4周邊介紹圖 Ref: Raspberry Pi Compute Module 4 IO Board product brief

如果上圖有不知道的專業名稱就去Google搜尋,積極不斷學習才能進步!

下面再來看看不同型號的硬體差異,如果eMMC 0GB的話,表示它是用SD card。

CM4_Catalog

上面這圖是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_IOBOARD

上面這圖是CM4 IO板

Compute_Module_4

上面這圖是CM4

CM4_IOBOARD_J2_Focus

上面這圖是CM4 IO Board上面的J2 Jumper腳,用來開啟或關閉一些功能。

CM4_IOBOARD_J2

上面這圖是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讀取。接地的方法我們可以使用杜邦線或是直接使用JumperJumper把腳位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的位置如下圖 J11_Position

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等。

Compute Module 4 IO Board

CM4 Datasheets and Schematics

硬體周邊元件驗證

我以公司板子為例,我們可以先從最簡單可以快速驗證的元件開始。 例如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?

List devices on USB Hub

發現沒有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這篇文章

結語

硬體驗證就是這麼簡單有趣~

留言