适用于 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