適用於 STM32MP157 SoC 的 STM32MP157A-DK1 探索套件包含兩個支援 CAN FD 的 Bosch M_CAN IP 核心(一個 M_CAN 和一個 MTT_CAN)。
與 STM32MP157C-DK2 發現套件相反,STM32MP157A-DK1 不提供用於存取 M_CAN CAN 控制器的連接器(包括 CAN 收發器和 SUB-D9 連接器)。順便提一句。 STM32MP157C-DK2 僅提供對兩個可用 CAN IP 核之一的存取。
要存取 STM32MP157A-DK1 上的兩個 CAN 控制器,我們需要...
最終的設定可能如下所示:
兩個 CAN FD 收發器黏在舊 IDE 電纜上
事實上,STM wiki 非常好並且是最新的,因此可以按照它來設定您的系統來建立您自己的 Linux 核心:安裝 Linux 內核
要點:
在使用 SDK 中的交叉編譯器編譯核心之前,需要將以下 3 個補丁複製到linux-stm32mp-4.19-r0
目錄中現有的 30 個修補程式中:
這3個補丁可以在補丁目錄中找到。
將 3 個補丁複製到linux-stm32mp-4.19-r0
目錄後,只需按照 README.HOW_TO.txt 中的步驟進行操作(也可以在該目錄中找到該文件)來構建並最終在目標上安裝新內核。
STM wiki 指出: README.HOW_TO.txt 幫助程式檔案是 Linux 核心建置的參考- 他們是正確的。
硬體由兩個 CAN FD 收發器(也支援經典 CAN 2.0)和一些佈線組成:
我將兩塊PCB頭對頭焊接在背面,只處理一塊PCB,最後在焊接引腳後用一些雙面膠帶將PCB固定在IDE電纜上。
FD_CAN1連接的接腳:
TRX功能 | TRX 接腳 | CN2 腳 | CN2功能 |
---|---|---|---|
TXD | 1 | 03 | FDCAN1_TX |
電壓訊號 | 2 | 06 | 接地 |
電源電壓 | 3 | 02 | +5V |
接收資料 | 4 | 05 | FDCAN1_RX |
維奧 | 5 | 01 | +3V3 |
CAN_L | 6 | - | (CAN_L 至 SUB-D9 腳位 2) |
CAN_H | 7 | - | (CAN_H 至 SUB-D9 腳位 7) |
待機 | 8 | 09 | 接地 |
FD_CAN2連接的引腳:
TRX功能 | TRX 接腳 | CN2 腳 | CN2功能 |
---|---|---|---|
TXD | 1 | 36 | FDCAN2_TX |
電壓訊號 | 2 | 20 | 接地 |
電源電壓 | 3 | 04 | +5V |
接收資料 | 4 | 10 | FDCAN2_RX |
維奧 | 5 | 17 號 | +3V3 |
CAN_L | 6 | - | (CAN_L 至 SUB-D9 腳位 2) |
CAN_H | 7 | - | (CAN_H 至 SUB-D9 腳位 7) |
待機 | 8 | 14 | 接地 |
在焊接我的頭對頭 PCB 之前,我畫了一個醜陋的草圖,這也描繪了一個變化,因為我第一次沒有正確地獲得 DTS。僅特定接腳可用於路由 CAN IP 連線。請參閱「具有 STM32MP157 MPU 的探索套件 - 使用手冊」(DevKit-en.DM00591354.pdf 第 31 和 32 頁)中的詳細資訊。
功能 | BGA腳 | CN2針 |
---|---|---|
FDCAN1_RX(還有 I2C5_SCL) | PA11 | 05 |
FDCAN1_TX(還有 I2C5_SDA) | 聚醯胺12 | 03 |
FDCAN2_RX(還有 USART3_RX) | PB12 | 10 |
FDCAN2_TX(還有 USART3_CTS) | PB13 | 36 |
之前,I2C5 和 USART3已在 STM32MP157A-DK1 DTS 檔案中設定為「停用」。所以我們不會對這些引腳產生任何干擾。
非常感謝 STM 的 Alexandre Torgue 提供的 M_CAN 設備樹片段!我從這個在 STM32MP157A-DK1 上使用 M_CAN IP 核的小技巧中學到了很多東西。
如果您發現上面的描述與下面的照片不符,請告訴我。應該說是一樣的。此描述已根據我所知進行了總結。如果您不確定,請仔細檢查 STM 文件。如果您不會焊接東西,請詢問其他人。您可以按原樣使用此描述,風險自負!
奧利佛哈特科普 2020-01-28