ชุดการค้นพบ STM32MP157A-DK1 สำหรับ STM32MP157 SoC ประกอบด้วยคอร์ IP ของ Bosch M_CAN สองคอร์ (M_CAN หนึ่งตัวและ MTT_CAN หนึ่งตัว) ที่รองรับ CAN FD
ตรงกันข้ามกับชุดการค้นพบ STM32MP157C-DK2 STM32MP157A-DK1 ไม่มีตัวเชื่อมต่อ (รวมถึงตัวรับส่งสัญญาณ CAN และตัวเชื่อมต่อ SUB-D9) เพื่อเข้าถึงตัวควบคุม M_CAN CAN ยังไงก็ตาม STM32MP157C-DK2 ให้การเข้าถึงแกน CAN IP ที่มีอยู่เพียง หนึ่ง ในสองคอร์เท่านั้น
ในการเข้าถึงคอนโทรลเลอร์ CAN สองตัวบน STM32MP157A-DK1 เราจำเป็นต้อง ...
การตั้งค่าสุดท้ายอาจมีลักษณะดังนี้:
ตัวรับส่งสัญญาณ CAN FD สองตัวติดอยู่บนสายเคเบิล IDE เก่า
ที่จริงแล้ววิกิ STM นั้นดีและทันสมัยมาก ดังนั้นคุณสามารถปฏิบัติตามได้เพื่อตั้งค่าระบบของคุณเพื่อสร้างเคอร์เนล Linux ของคุณเอง: การติดตั้งเคอร์เนล Linux
ประเด็นสำคัญ:
ก่อนที่จะคอมไพล์เคอร์เนล ด้วย Cross Compiler จาก SDK จะต้องคัดลอก 3 แพตช์ต่อไปนี้ ไปยัง 30 แพตช์ที่มีอยู่ ในไดเร็กทอรี linux-stm32mp-4.19-r0
:
แพทช์ทั้ง 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 เพียงอันเดียวและในที่สุดก็แก้ไข PCB ด้วยเทปกาวสองหน้าบนสาย IDE หลังจากบัดกรีหมุดแล้ว
หมุดสำหรับเชื่อมต่อสำหรับ FD_CAN1 :
ฟังก์ชัน TRX | พิน TRX | พิน CN2 | ฟังก์ชัน CN2 |
---|---|---|---|
เท็กซัส | 1 | 03 | FDCAN1_TX |
VSS | 2 | 06 | จีเอ็นดี |
วีดีดี | 3 | 02 | +5V |
RXD | 4 | 05 | FDCAN1_RX |
วิโอ | 5 | 01 | +3V3 |
CAN_L | 6 | - | (CAN_L ถึง SUB-D9 พิน 2) |
สามารถ_H | 7 | - | (CAN_H ถึง SUB-D9 พิน 7) |
STBY | 8 | 09 | จีเอ็นดี |
หมุดสำหรับเชื่อมต่อ FD_CAN2 :
ฟังก์ชัน TRX | พิน TRX | พิน CN2 | ฟังก์ชัน CN2 |
---|---|---|---|
เท็กซัส | 1 | 36 | FDCAN2_TX |
VSS | 2 | 20 | จีเอ็นดี |
วีดีดี | 3 | 04 | +5V |
RXD | 4 | 10 | FDCAN2_RX |
วิโอ | 5 | 17 | +3V3 |
CAN_L | 6 | - | (CAN_L ถึง SUB-D9 พิน 2) |
สามารถ_H | 7 | - | (CAN_H ถึง SUB-D9 พิน 7) |
STBY | 8 | 14 | จีเอ็นดี |
ฉันวาดภาพร่างที่น่าเกลียดก่อนที่จะบัดกรี PCB แบบตัวต่อตัวซึ่งแสดงให้เห็นการเปลี่ยนแปลงเนื่องจากฉันไม่ได้รับ DTS ที่ถูกต้องในครั้งแรก สามารถใช้เฉพาะพินเฉพาะเพื่อกำหนดเส้นทางการเชื่อมต่อ CAN IP ดูรายละเอียดใน "Discovery kit พร้อม STM32MP157 MPU - คู่มือผู้ใช้" (DevKit-en.DM00591354.pdf หน้า 31 และ 32)
การทำงาน | พินบีจีเอ | พิน 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 ก่อนหน้านี้ ดังนั้นเราจะไม่รบกวนพินเหล่านี้
ขอขอบคุณ Alexandre Torgue จาก STM สำหรับข้อมูลโค้ดแผนผังอุปกรณ์ M_CAN! ฉันได้เรียนรู้มากมายจาก แฮ็กเล็กๆ นี้เกี่ยวกับการใช้ M_CAN IP cores บน STM32MP157A-DK1
โปรดแจ้งให้เราทราบหากคุณพบข้อมูลที่ไม่ตรงกันระหว่างคำอธิบายด้านบนกับรูปภาพด้านล่าง ก็ควรจะบอกเหมือนกัน คำอธิบายนี้ได้รับการสรุปตามความรู้ที่ดีที่สุดของฉัน หากคุณไม่แน่ใจ โปรดตรวจสอบอีกครั้งกับเอกสาร STM หากคุณประสานสิ่งต่าง ๆ ไม่ได้ให้ถามคนอื่น คุณสามารถใช้คำอธิบายนี้ได้ตามที่เป็นอยู่ในความเสี่ยงของคุณเอง!
โอลิเวอร์ ฮาร์ทคอปป์ 28-01-2020