Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Transceiver kredsløb
- Trin 2: Læsning og skrivning til CAN -bussen
- Trin 3: Tilslutning af noder
- Trin 4: Lav PCB
- Trin 5: Udvidelse af bestyrelsen
- Trin 6: Bestil dine printkort fra JLCPCB
- Trin 7: Få dine tavler
Video: STM32 CAN -grænseflade: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Controller Area Network -bus, eller CAN -bus, er en meget effektiv kommunikationsprotokol takket være dens høje hastighedsegenskaber, lang rækkevidde pålidelighed og støjimmunitet. Af disse grunde er CAN -kommunikation blevet standarden inden for bilteknologi og miljøer med høj støj. Enheder på CAN -bussen kaldes noder. Alle noder på CAN -bussen er forbundet parallelt, hvilket betyder, at hver node er forbundet til alle de andre noder på netværket. En enkelt CAN -bus kan have op til 115 noder på én gang, afhængigt af hastigheden for meddelelsestransmission, men for de fleste applikationer anbefales det at have op til 32 enheder. Det anbefales også at holde længden mellem den første og sidste knude mindre end 40 meter fra hinanden.
Denne trin-for-trin vejledning viser dig, hvordan du konfigurerer en CAN-knude ved hjælp af STM32-mikrokontrolleren, inklusive kredsløbet og enkel C-kode til at læse og skrive til CAN-bussen
Forbrugsvarer
For hver CAN -knude:
- 1x STM32 breakout board (Nucleo, Blue Pill, andre)
- 1x MCP2551 CAN -transceiver IC
- 1x 0,1µF kondensator
- 1x 120Ω modstand
- 1x 1kΩ modstand
- 1+ læsbar indgang (knap, switch, potentiometer osv.) Eller output (LED, MOSFET osv.)
- 1x Dsub9 -stik
Trin 1: Transceiver kredsløb
For at kommunikere med CAN -bussen bruger vi MCP2551 CAN -transceiver IC. IC'en fungerer som et mellemliggende sender/modtagerpar for at forbinde STM32 til CAN -bussen. Kredsløbet til at oprette denne IC er ret enkelt, men der er et par ting at bemærke:
-
CAN_RX (pin 4) og CAN_TX (pin 1) på MCP2551 -chippen kan kun gå til bestemte pins på STM32.
- På STM32F1 Nucleo forbindes RX -linjen til pin PB8 og TX -linjen til pin PB9.
- På STM32F1 blå pille forbindes RX til pin PA11 og TX til pin PA12.
- Bemærk, at disse pin -tildelinger har alternativer. Se vejledningen til mikrokontrolleren for at afgøre, hvilke ben der er i stand til CAN_RD og CAN_TD
- Hvis du bruger en Arduino eller et kort uden en CAN -kommunikator indbygget, er MCP2515 IC -chippen påkrævet for at konvertere andre meddelelsesprotokoller til CAN.
- CANL -stiften skal tilsluttes de andre CANL -ben på de andre busknudepunkter. Det samme gælder CANH -stifterne.
- 120Ω modstanden på tværs af CANH- og CANL -benene er kun påkrævet, hvis noden er en terminalknude. Det betyder, at det er i slutningen af parallelle forbindelsesledninger. Med andre ord bør CAN -bussen kun have to 120Ω modstande i den, og de skal være så langt fra hinanden som muligt.
- Endelig kan 1kΩ modstanden på RS (pin 8) udveksles med en 10kΩ modstand for at styre stigning/fald tiden for CAN -meddelelsesbitene. Se databladet MCP2551 chip for flere detaljer.
Trin 2: Læsning og skrivning til CAN -bussen
Nu hvor transceiverkredsløbet er forbundet til STM32, kan vi begynde at skrive meddelelser til CAN -bussen. Denne instruerbare guide vil ikke gå i dybden med STM32-koden. Sørg dog for at tjekke vores kode for eksempler her. Brug af STM32 som en CAN -knude kræver en CAN -headerfil. Vi skrev vores egne, som kan findes på vores github her. Her vil vi give et kort overblik over læse/skrive -processen.
For at læse fra CAN -bussen skal vi først kende ID'et for CAN -beskeden. Hver besked skal have et unikt ID, hvor lavere ID'er har højere prioritet. Kodestykket vist her venter på en CAN -besked med ID 0x622. I vores system, hvis den første bit af den 6. byte er høj, så vil vi sætte pin A10 højt.
Når vi skriver en CAN-besked, skal vi huske, at CAN-meddelelser er multi-byte. Hver skriftlig besked skal have et ID og en længde. I det andet kodestykke, der vises, skriver vi data til hver byte og sender derefter meddelelsen (ID- og længdeparametrene er defineret tidligere i koden).
Trin 3: Tilslutning af noder
Når du tilslutter flere CAN -noder, skal du være opmærksom på længden af kabler. De to længste noder kan være op til 40 meter fra hinanden. Mellemknudepunkter, der forbinder til bussen, skal være inden for 50 cm fra hovedbuslinjerne.
CAN -forbindelser følger en industristandard for at bruge et Dsub9 -stik med CANL -linjen på pin 2 og CANH -linjen på pin7. Valgmuligheden CANGND linje kan gå på pin 3.
Trin 4: Lav PCB
Når du dirigerer CAN -signaler på et printkort, skal du huske, at CAN er et differentielt signal, og derfor bør routingretningslinjer for CANH og CANL følges nøje.
Trin 5: Udvidelse af bestyrelsen
Kast nogle flere noder sammen, tilføj nogle input/output, og tilslut alle deres CANH- og CANL -pins. Bemærk, at hver STM32 eller anden mikrokontroller kræver sin egen MCP2551 -chip; de kan ikke deles.
Når det er sagt, så prøv at holde dine printkort mindre end den, der vises her
Trin 6: Bestil dine printkort fra JLCPCB
JLCPCB tilbyder hurtig service af høj kvalitet til meget rimelige priser. Få 5 tavler, enhver farve med masser af tilpasning, for kun $ 2! Og hvis det er din første ordre, får du 10 tavler til samme pris!
Upload bare dine gerbers og få et øjeblikkeligt tilbud! Send din ordre, og dine tavler vil blive gennemgået til produktion inden for en time. Når du har betalt, kan du forvente dine tavler af høj kvalitet om så hurtigt som tre dage!
Tjek det ud her
Trin 7: Få dine tavler
Kæmpe råb til JLCPCB for at sponsorere dette projekt. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), er den største PCB-prototypevirksomhed i Kina og en højteknologisk producent med speciale i hurtig PCB-prototyper og produktion af små partier. De var så venlige at give UBC Solar vores nye printkort til vores soldrevne racerbil. Vi afgav vores ordre fredag og fik brædderne onsdag!
Anbefalede:
Kraftfuld digital AC -dæmper ved hjælp af STM32: 15 trin (med billeder)
Kraftfuld digital AC -dæmper ved brug af STM32: Af Hesam Moshiri, [email protected] -belastninger bor hos os! Fordi de er overalt omkring os, og i det mindste husholdningsapparater forsynes med lysnettet. Mange typer industriudstyr forsynes også med enfaset 220V-AC
STONE Display +STM32 +kaffemaskine: 6 trin
STONE Display +STM32 +Kaffemaskine: Jeg er en MCU -softwareingeniør, har for nylig modtaget et projekt for at være en kaffemaskine, husholdningskrav med berøringsskærm, funktionen er god, er over skærmvalget muligvis ikke særlig god, heldigvis kan jeg afvise dette projekt
Start med at udvikle STM32 på Linux: 4 trin
Start med at udvikle STM32 på Linux: I denne Instructable vil jeg vise dig, hvor let det er at begynde at udvikle STM32 -programmer på Linux. Jeg begyndte at bruge Linux som min hovedmaskine for 2 år siden og er ikke blevet svigtet. Alt fungerer hurtigere og bedre end vinduer. Selvfølgelig er det
STM32 "Blue Pill" Progmaming Via Arduino IDE & USB: 8 trin
STM32 "Blue Pill" Progmaming Via Arduino IDE & USB: Sammenligning af STM32F generisk prototypekort (dvs. Blue Pill) med sin modpart Arduino er let at se, hvor mange flere ressourcer det har, hvilket åbner mange nye muligheder for IOT -projekter. ulemper er manglen på støtte til det. Faktisk ikke rigtigt
Del 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: 16 trin
Del 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: Fokus for denne Instructable er STM32 Nucleo mikrokontroller. Motivationen hertil for at kunne skabe et samlingsprojekt ud fra bare knogler. Dette vil hjælpe os med at dykke dybere og forstå MSP432 Launchpad-projektet (TI-RSLK), der har