Kit penemuan STM32MP157A-DK1 untuk SoC STM32MP157 berisi dua inti IP Bosch M_CAN (satu M_CAN dan satu MTT_CAN) yang mendukung CAN FD.
Berbeda dengan kit penemuan STM32MP157C-DK2, STM32MP157A-DK1 tidak menyediakan konektor (termasuk konektor CAN Transceiver dan SUB-D9) untuk mengakses pengontrol M_CAN CAN. Omong-omong. STM32MP157C-DK2 hanya menyediakan akses ke salah satu dari dua inti CAN IP yang tersedia.
Untuk mengakses dua pengontrol CAN pada STM32MP157A-DK1 kita perlu ...
Penyiapan terakhir mungkin terlihat seperti ini:
Dua transceiver CAN FD ditempel pada kabel IDE lama
Faktanya wiki STM sangat bagus dan terkini, sehingga dapat diikuti untuk mengatur sistem Anda untuk membangun kernel Linux Anda sendiri: Menginstal kernel Linux
Poin-poin penting:
Sebelum mengkompilasi kernel dengan cross compiler dari SDK, 3 patch berikut perlu disalin ke 30 patch yang ada di direktori linux-stm32mp-4.19-r0
:
3 patch ini dapat ditemukan di direktori patch.
Setelah menyalin 3 patch ke direktori linux-stm32mp-4.19-r0
ikuti saja langkah-langkah di README.HOW_TO.txt yang juga dapat ditemukan di direktori tersebut untuk membangun dan terakhir menginstal kernel baru pada target.
Wiki STM menyatakan: File pembantu README.HOW_TO.txt adalah referensi untuk pembuatan kernel Linux - dan mereka benar.
Perangkat kerasnya terdiri dari dua transceiver CAN FD (yang juga mendukung Classic CAN 2.0) dan beberapa kabel:
Saya menyolder kedua PCB secara langsung di bagian belakang untuk menangani hanya satu PCB dan akhirnya memperbaiki PCB dengan pita perekat dua sisi pada kabel IDE setelah menyolder pin.
Pin untuk menghubungkan FD_CAN1 :
Fungsi TRX | Pin TRX | Pin CN2 | Fungsi CN2 |
---|---|---|---|
TXD | 1 | 03 | FDCAN1_TX |
VSS | 2 | 06 | GND |
VDD | 3 | 02 | +5V |
RXD | 4 | 05 | FDCAN1_RX |
VIO | 5 | 01 | +3V3 |
BISA_L | 6 | - | (CAN_L ke SUB-D9 pin 2) |
BISA_H | 7 | - | (CAN_H hingga SUB-D9 pin 7) |
STBY | 8 | 09 | GND |
Pin untuk menghubungkan FD_CAN2 :
Fungsi TRX | Pin TRX | Pin CN2 | Fungsi CN2 |
---|---|---|---|
TXD | 1 | 36 | FDCAN2_TX |
VSS | 2 | 20 | GND |
VDD | 3 | 04 | +5V |
RXD | 4 | 10 | FDCAN2_RX |
VIO | 5 | 17 | +3V3 |
BISA_L | 6 | - | (CAN_L ke SUB-D9 pin 2) |
BISA_H | 7 | - | (CAN_H hingga SUB-D9 pin 7) |
STBY | 8 | 14 | GND |
Saya membuat sketsa jelek sebelum menyolder PCB head-to-head yang juga menggambarkan perubahan karena saya tidak mendapatkan DTS dengan benar pada saat pertama. Hanya pin tertentu yang dapat digunakan untuk merutekan koneksi CAN IP. Lihat detailnya di "Discovery kit dengan MPU STM32MP157 - Panduan pengguna" (DevKit-en.DM00591354.pdf halaman 31 & 32).
Fungsi | pin BGA | pin CN2 |
---|---|---|
FDCAN1_RX (juga I2C5_SCL) | PA11 | 05 |
FDCAN1_TX (juga I2C5_SDA) | PA12 | 03 |
FDCAN2_RX (juga USART3_RX) | PB12 | 10 |
FDCAN2_TX (juga USART3_CTS) | PB13 | 36 |
I2C5 dan USART3 sudah disetel ke "dinonaktifkan" di file DTS STM32MP157A-DK1 sebelumnya. Jadi kami tidak akan mengalami gangguan apa pun pada pin ini.
Terima kasih banyak kepada Alexandre Torgue dari STM untuk cuplikan pohon perangkat M_CAN! Saya belajar banyak dari peretasan kecil ini untuk menggunakan inti IP M_CAN pada STM32MP157A-DK1.
Harap beri tahu saya jika Anda menemukan ketidaksesuaian antara deskripsi di atas dan foto di bawah. Ini harus mengatakan hal yang sama. Deskripsi ini telah dirangkum sejauh pengetahuan terbaik saya. Jika Anda tidak yakin, silakan periksa kembali dokumentasi STM. Jika Anda tidak bisa menyolder, tanyakan pada orang lain. Anda dapat menggunakan deskripsi ini sebagaimana adanya dengan risiko Anda sendiri!
Oliver Hartkoppp 28-01-2020