STM32MP157 SoC용 STM32MP157A-DK1 디스커버리 키트에는 CAN FD를 지원하는 Bosch M_CAN IP 코어 2개(M_CAN 1개, MTT_CAN 1개)가 포함되어 있습니다.
STM32MP157C-DK2 디스커버리 키트와 달리 STM32MP157A-DK1은 M_CAN CAN 컨트롤러에 액세스하기 위한 커넥터(CAN 트랜시버 및 SUB-D9 커넥터 포함)를 제공하지 않습니다. 그런데. STM32MP157C-DK2는 사용 가능한 두 개의 CAN IP 코어 중 하나 에 대한 액세스만 제공합니다.
STM32MP157A-DK1의 두 CAN 컨트롤러에 액세스하려면 다음이 필요합니다.
최종 설정은 다음과 같을 수 있습니다.
오래된 IDE 케이블에 붙어 있는 두 개의 CAN FD 트랜시버
실제로 STM 위키는 매우 훌륭하고 최신이므로 다음을 따라 시스템을 설정하여 자신만의 Linux 커널을 구축할 수 있습니다. Linux 커널 설치
핵심 포인트:
SDK에서 크로스 컴파일러로 커널을 컴파일하기 전에 다음 3개의 패치를 linux-stm32mp-4.19-r0
디렉터리의 기존 30개 패치 에 복사해야 합니다 .
이 3개의 패치는 패치 디렉토리에서 찾을 수 있습니다.
3개의 패치를 linux-stm32mp-4.19-r0
디렉토리에 복사한 후 해당 디렉토리에 있는 README.HOW_TO.txt의 단계를 따라 대상에 새 커널을 빌드하고 설치하십시오 .
STM 위키에는 다음과 같이 명시되어 있습니다. README.HOW_TO.txt 도우미 파일은 Linux 커널 빌드에 대한 참조이며 해당 내용이 맞습니다.
하드웨어는 두 개의 CAN FD 트랜시버(Classic CAN 2.0도 지원)와 일부 케이블로 구성됩니다.
하나의 PCB만 처리하기 위해 뒷면에 두 개의 PCB를 정면으로 납땜하고 핀을 납땜한 후 마지막으로 IDE 케이블에 양면 접착 테이프로 PCB를 고정했습니다.
FD_CAN1 에 연결할 핀:
TRX 기능 | TRX 핀 | CN2 핀 | CN2 기능 |
---|---|---|---|
TXD | 1 | 03 | FDCAN1_TX |
VSS | 2 | 06 | 접지 |
VDD | 3 | 02 | +5V |
RXD | 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 |
VSS | 2 | 20 | 접지 |
VDD | 3 | 04 | +5V |
RXD | 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 | 접지 |
나는 처음에 DTS를 제대로 얻지 못했기 때문에 변경 사항을 묘사하는 머리 대 머리 PCB를 납땜하기 전에 보기 흉한 스케치를 만들었습니다. CAN IP 연결을 라우팅하는 데는 특정 핀만 사용할 수 있습니다. 자세한 내용은 "STM32MP157 MPU가 포함된 디스커버리 키트 - 사용자 설명서"(DevKit-en.DM00591354.pdf 페이지 31 및 32)를 참조하세요.
기능 | BGA 핀 | CN2 핀 |
---|---|---|
FDCAN1_RX(또한 I2C5_SCL) | PA11 | 05 |
FDCAN1_TX(또한 I2C5_SDA) | PA12 | 03 |
FDCAN2_RX(USART3_RX라고도 함) | PB12 | 10 |
FDCAN2_TX(USART3_CTS라고도 함) | PB13 | 36 |
I2C5 및 USART3은 이전에 STM32MP157A-DK1 DTS 파일에서 이미 "비활성화"로 설정되어 있었습니다. 그래서 우리는 이 핀들에 어떠한 간섭도 갖지 않을 것입니다.
M_CAN 장치 트리 스니펫을 제공한 STM의 Alexandre Torgue에게 많은 감사를 드립니다! 저는 이 작은 해킹을 통해 STM32MP157A-DK1에서 M_CAN IP 코어를 사용하는 방법에 대해 많은 것을 배웠습니다.
위 설명과 아래 사진이 일치하지 않는 경우 알려주시기 바랍니다. 그것은 똑같이 말해야합니다. 이 설명은 내가 아는 한도 내에서 요약되었습니다. 확실하지 않은 경우 STM 문서를 다시 확인하세요. 납땜을 할 수 없다면 다른 사람에게 물어보세요. 이 설명을 있는 그대로 사용할 수 있다는 책임은 사용자에게 있습니다!
올리버 하트코프 2020-01-28