Isi kandungan:

Antaramuka STM32 DAPAT: 7 Langkah
Antaramuka STM32 DAPAT: 7 Langkah

Video: Antaramuka STM32 DAPAT: 7 Langkah

Video: Antaramuka STM32 DAPAT: 7 Langkah
Video: Kupas Tuntas STM32 Eps8: Antarmuka STM32 dan LCD 16x2 | Mode Paralel 4 Bit | Library Buat Sendiri 2024, November
Anonim
Antaramuka STM32 DAPAT
Antaramuka STM32 DAPAT

Bas Rangkaian Kawasan Pengawal, atau bas CAN, adalah protokol komunikasi yang sangat berkesan berkat kemampuan berkelajuan tinggi, kebolehpercayaan jarak jauh, dan kekebalan bunyi. Atas sebab-sebab ini, komunikasi CAN boleh menjadi standard dalam teknologi automotif dan persekitaran dengan kebisingan yang tinggi. Peranti di bas CAN dipanggil nod. Semua nod pada bus CAN disambungkan secara selari, yang bermaksud bahawa setiap nod disambungkan ke semua nod lain di rangkaian. Bas CAN tunggal boleh mempunyai hingga 115 node sekaligus, bergantung pada kadar penghantaran mesej, tetapi untuk kebanyakan aplikasi, disarankan untuk memiliki hingga 32 peranti. Dianjurkan juga untuk memastikan jarak antara simpul pertama dan terakhir kurang dari 40 meter.

Tutorial langkah demi langkah ini akan menunjukkan kepada anda cara mengatur simpul CAN menggunakan mikrokontroler STM32, termasuk litar dan kod C ringkas untuk membaca dan menulis ke bas CAN

Bekalan

Untuk setiap nod CAN:

  • 1x papan pelarian STM32 (Nucleo, Blue Pill, lain-lain)
  • 1x MCP2551 DAPAT IC transceiver
  • Kapasitor 1x 0.1µF
  • Perintang 1x 120Ω
  • Perintang 1x 1kΩ
  • 1+ input yang boleh dibaca (butang, suis, potensiometer, dll.) Atau output (LED, MOSFET, dll.)
  • Penyambung 1x Dsub9

Langkah 1: Litar Pemancar

Litar Pemancar
Litar Pemancar

Untuk berkomunikasi dengan bas CAN, kami akan menggunakan IC transceiver MCP2551. IC bertindak sebagai pasangan pemancar / penerima antara untuk menghubungkan STM32 ke bas CAN. Litar untuk menyediakan IC ini agak mudah, tetapi ada beberapa perkara yang perlu diperhatikan:

  • CAN_RX (pin 4) dan CAN_TX (pin 1) pada cip MCP2551 hanya boleh masuk ke pin tertentu pada STM32.

    • Pada STM32F1 Nucleo, sambungkan garis RX ke pin PB8 dan garis TX ke pin PB9.
    • Pada pil biru STM32F1, sambungkan RX ke pin PA11 dan TX ke pin PA12.
    • Perhatikan bahawa penugasan pin ini mempunyai alternatif. Rujuk manual mikrokontroler untuk menentukan pin mana yang mampu CAN_RD dan CAN_TD
    • Sekiranya menggunakan Arduino atau papan tanpa komunikator CAN terpasang, cip IC MCP2515 akan diminta untuk menukar protokol mesej lain menjadi CAN.
  • Pin CANL harus disambungkan ke pin CANL lain dari nod bas yang lain. Perkara yang sama berlaku untuk pin CANH.
  • Perintang 120Ω melintasi pin CANH dan CANL hanya diperlukan jika nod adalah nod terminal. Ini bermaksud bahawa ia berada di hujung pendawaian sambungan selari. Dengan kata lain, bas CAN hanya boleh mempunyai dua perintang 120Ω di dalamnya, dan mereka harus berjauhan antara satu sama lain.
  • Terakhir, perintang 1kΩ pada RS (pin 8) boleh ditukar dengan perintang 10kΩ untuk mengawal masa naik / turun bit mesej CAN. Rujuk lembaran data cip MCP2551 untuk maklumat lebih lanjut.

Langkah 2: Membaca dan Menulis ke Bas CAN

Membaca dan Menulis ke Bas CAN
Membaca dan Menulis ke Bas CAN

Setelah litar transceiver disambungkan ke STM32, kita boleh mula menulis mesej ke bas CAN. Panduan yang boleh dipelajari ini tidak akan menerangkan secara mendalam kod STM32. Walau bagaimanapun, pastikan untuk melihat kod kami untuk contoh di sini. Menggunakan STM32 sebagai simpul CAN akan memerlukan fail tajuk CAN. Kami menulis sendiri, yang boleh didapati di github kami di sini. Di sini, kami akan memberikan gambaran ringkas mengenai proses membaca / menulis.

Untuk membaca dari bas CAN, pertama-tama kita perlu mengetahui ID mesej CAN. Setiap mesej harus mempunyai ID yang unik, dengan ID yang lebih rendah mempunyai keutamaan yang lebih tinggi. Coretan kod yang ditunjukkan di sini sedang menunggu mesej CAN dengan ID 0x622. Dalam sistem kami, jika bit pertama dari bait ke-6 tinggi, maka kami ingin menetapkan pin A10 tinggi.

Semasa menulis mesej CAN, kita mesti ingat bahawa mesej CAN adalah berbilang bait. Setiap mesej bertulis mesti mempunyai ID dan panjang. Dalam coretan kedua kod yang ditunjukkan, kami menulis data ke setiap bait, kemudian mengirim mesej (Parameter ID dan panjang ditentukan sebelumnya dalam kod).

Langkah 3: Menghubungkan Nod

Menghubungkan Nod
Menghubungkan Nod

Semasa menyambungkan beberapa nod CAN, perhatian yang teliti harus diberikan pada panjang kabel. Kedua-dua nod paling jauh dapat berjauhan antara satu sama lain. Node tengah yang menghubungkan ke bas harus berada dalam jarak 50cm dari laluan bas utama.

Sambungan CAN mengikuti standard industri menggunakan penyambung Dsub9 dengan garis CANL pada pin 2 dan garis CANH pada pin7. Garis pilihan CANGND boleh masuk pada pin 3.

Langkah 4: Buat PCB

Buat PCB
Buat PCB

Semasa merutekan isyarat CAN pada PCB, ingatlah bahawa CAN adalah isyarat pembezaan, dan dengan itu, panduan routing untuk CANH dan CANL harus diikuti dengan teliti.

Langkah 5: Memperluas Lembaga

Memperluas Lembaga
Memperluas Lembaga

Masukkan beberapa lagi nod, tambahkan beberapa input / output, dan sambungkan semua pin CANH dan CANL mereka. Perhatikan bahawa setiap STM32 atau mikrokontroler lain memerlukan cip MCP2551 sendiri; mereka tidak boleh dikongsi.

Dengan itu, cuba pastikan PCB anda lebih kecil daripada yang ditunjukkan di sini

Langkah 6: Pesan PCB anda dari JLCPCB

Pesan PCB Anda Dari JLCPCB
Pesan PCB Anda Dari JLCPCB

JLCPCB menawarkan perkhidmatan yang cepat dan berkualiti tinggi dengan harga yang sangat berpatutan. Dapatkan 5 papan, warna apa pun dengan banyak penyesuaian, dengan harga hanya $ 2! Dan jika itu pesanan pertama anda, dapatkan 10 papan dengan harga yang sama!

Muat naik gerbers anda dan dapatkan sebut harga segera! Kirim pesanan anda dan papan anda akan disemak untuk pengeluaran dalam masa satu jam. Setelah anda membayar, anda dapat mengharapkan papan berkualiti tinggi anda dalam masa tiga hari!

Lihat di sini

Langkah 7: Dapatkan Papan Anda

Dapatkan Papan Anda!
Dapatkan Papan Anda!

Berseru kepada JLCPCB kerana menaja projek ini. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), adalah syarikat prototaip PCB terbesar di China dan pengeluar berteknologi tinggi yang mengkhususkan diri dalam pembuatan prototaip PCB cepat dan pengeluaran PCB kecil. Mereka cukup baik untuk menyediakan UBC Solar dengan PCB baru kami untuk kereta lumba berkuasa solar kami. Kami membuat pesanan pada hari Jumaat dan mendapatkan papan pada hari Rabu!

Disyorkan: