Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Transceiverkretsen
- Trinn 2: Lese og skrive til CAN -bussen
- Trinn 3: Koble til noder
- Trinn 4: Lag PCB
- Trinn 5: Utvidelse av styret
- Trinn 6: Bestill kretskortene dine fra JLCPCB
- Trinn 7: Få styrene dine
Video: STM32 CAN -grensesnitt: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Controller Area Network -bussen, eller CAN -bussen, er en veldig effektiv kommunikasjonsprotokoll takket være høyhastighetsegenskaper, pålitelighet over lang rekkevidde og støyimmunitet. Av disse grunnene har CAN -kommunikasjon blitt standarden innen bilteknologi og miljøer med mye støy. Enheter på CAN -bussen kalles noder. Alle noder på CAN -bussen er parallelt koblet, noe som betyr at hver node er koblet til alle de andre nodene på nettverket. En enkelt CAN -buss kan ha opptil 115 noder samtidig, avhengig av meldingsoverføringshastigheten, men for de fleste applikasjoner anbefales det å ha opptil 32 enheter. Det anbefales også å holde lengden mellom den første og siste noden mindre enn 40 meter fra hverandre.
Denne trinnvise opplæringen viser deg hvordan du konfigurerer en CAN-node ved hjelp av STM32-mikrokontrolleren, inkludert kretsen og enkel C-kode for å lese og skrive til CAN-bussen
Rekvisita
For hver CAN -node:
- 1x STM32 breakout board (Nucleo, Blue Pill, andre)
- 1x MCP2551 KAN transceiver IC
- 1x 0,1µF kondensator
- 1x 120Ω motstand
- 1x 1kΩ motstand
- 1+ lesbar inngang (knapp, bryter, potensiometer, etc.) eller utgang (LED, MOSFET, etc.)
- 1x Dsub9 -kontakt
Trinn 1: Transceiverkretsen
For å kommunisere med CAN -bussen, bruker vi MCP2551 CAN transceiver IC. IC fungerer som et mellomliggende sender/mottakerpar for å koble STM32 til CAN -bussen. Kretsen for å sette opp denne IC er ganske enkel, men det er et par ting å merke seg:
-
CAN_RX (pin 4) og CAN_TX (pin 1) på MCP2551 -brikken kan bare gå til visse pins på STM32.
- På STM32F1 Nucleo kobler du RX -linjen til pin PB8 og TX -linjen til pin PB9.
- På STM32F1 blå pille, koble RX til pin PA11 og TX til pin PA12.
- Vær oppmerksom på at disse pin -oppgavene har alternativer. Se håndbøkene for mikrokontrolleren for å finne ut hvilke pinner som er i stand til CAN_RD og CAN_TD
- Hvis du bruker en Arduino eller et kort uten en innebygd CAN -kommunikator, vil MCP2515 IC -brikken være nødvendig for å konvertere andre meldingsprotokoller til CAN.
- CANL -pinnen bør kobles til de andre CANL -pinnene på de andre bussnodene. Det samme gjelder CANH -pinnene.
- 120Ω motstanden over CANH- og CANL -pinnene er bare nødvendig hvis noden er en terminalnode. Dette betyr at det er på slutten av parallelle tilkoblingskabler. Med andre ord bør CAN -bussen bare ha to 120Ω motstander i den, og de skal være så langt fra hverandre som mulig.
- Til slutt kan 1kΩ motstanden på RS (pin 8) byttes ut mot en 10kΩ motstand for å kontrollere stigende/fallende tid for CAN -meldingsbitene. Se databladet MCP2551 for flere detaljer.
Trinn 2: Lese og skrive til CAN -bussen
Nå som mottakerkretsen er koblet til STM32, kan vi begynne å skrive meldinger til CAN -bussen. Denne instruksjonsguiden vil ikke gå grundig inn på STM32-koden. Sørg imidlertid for å sjekke ut koden vår for eksempler her. Å bruke STM32 som en CAN -node krever en CAN -toppfil. Vi skrev vår egen, som du finner på githuben vår her. Her vil vi gi en kort oversikt over lese/skrive -prosessen.
For å lese fra CAN -bussen må vi først vite ID -en til CAN -meldingen. Hver melding skal ha en unik ID, med lavere ID -er som har høyere prioritet. Kodesnutten som vises her, venter på en CAN -melding med ID 0x622. I vårt system, hvis den første biten av den sjette byten er høy, vil vi sette pin A10 høyt.
Når vi skriver en CAN-melding, må vi huske at CAN-meldinger er multi-byte. Hver skriftlig melding må ha en ID og lengde. I den andre kodebiten som vises, skriver vi data til hver byte og sender deretter meldingen (ID- og lengdeparameterne er definert tidligere i koden).
Trinn 3: Koble til noder
Når du kobler til flere CAN -noder, må du være nøye med lengden på kablene. De to lengste nodene kan være opptil 40 meter fra hverandre. Midtnoder som kobler til bussen skal være innenfor 50 cm fra hovedbuslinjene.
CAN -tilkoblinger følger en industristandard for bruk av en Dsub9 -kontakt med CANL -linjen på pin 2 og CANH -linjen på pin7. Alternativet CANGND linje kan gå på pin 3.
Trinn 4: Lag PCB
Når du dirigerer CAN -signaler på en PCB, må du huske at CAN er et differensialsignal, og derfor bør retningslinjene for CANH og CANL følges nøye.
Trinn 5: Utvidelse av styret
Kast noen flere noder sammen, legg til noen innganger/utganger, og koble til alle CANH- og CANL -pinnene. Vær oppmerksom på at hver STM32 eller annen mikrokontroller krever sin egen MCP2551 -brikke; de kan ikke deles.
Når det er sagt, prøv å holde PCB -ene mindre enn den som vises her
Trinn 6: Bestill kretskortene dine fra JLCPCB
JLCPCB tilbyr rask service av høy kvalitet til meget rimelige priser. Få 5 brett, hvilken som helst farge med tonnevis med tilpasning, for bare $ 2! Og hvis det er din første bestilling, får du 10 brett til samme pris!
Bare last opp gerberne dine og få et tilbud umiddelbart! Send inn bestillingen din, og brettene dine vil bli vurdert for produksjon innen en time. Når du har betalt, kan du forvente høykvalitetsbrettene dine så snart som tre dager!
Sjekk det ut her
Trinn 7: Få styrene dine
Stort rop til JLCPCB for sponsing av dette prosjektet. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), er det største PCB-prototypefirmaet i Kina og en høyteknologisk produsent som spesialiserer seg på rask PCB-prototyping og produksjon av små partier. De var snille nok til å gi UBC Solar våre nye PCB-er til vår solcelledrevne racerbil. Vi la inn bestillingen vår på fredag og fikk brettene på onsdag!
Anbefalt:
Kraftig digital vekselstrømdimmer med STM32: 15 trinn (med bilder)
Kraftig digital vekselstrømdimmer ved bruk av STM32: Av Hesam Moshiri, [email protected] -belastninger bor hos oss! Fordi de er overalt rundt oss og i det minste husholdningsapparater får strøm. Mange typer industrielt utstyr drives også med enfaset 220V-AC
STONE Display +STM32 +Kaffetrakter: 6 trinn
STONE Display +STM32 +Kaffetrakter: Jeg er en MCU -programvareingeniør, nylig mottatt et prosjekt er å være en kaffemaskin, husholdningskrav med en berøringsskjermoperasjon, funksjonen er god, er over skjermen valg kanskje ikke veldig bra, Heldigvis kan jeg bestemme dette prosjektet
Begynn å utvikle STM32 på Linux: 4 trinn
Begynn å utvikle STM32 på Linux: I denne instruksen skal jeg vise deg hvor enkelt det er å begynne å utvikle STM32 -programmer på Linux. Jeg begynte å bruke Linux som hovedmaskin for 2 år siden, og har ikke blitt sviktet. Alt fungerer raskere og bedre enn vinduer. Selvfølgelig er det
STM32 "Blue Pill" Progmaming Via Arduino IDE & USB: 8 trinn
STM32 "Blue Pill" Progmaming Via Arduino IDE & USB: Sammenligning av STM32F generisk prototypekort (dvs. Blue Pill) med motparten Arduino er lett å se hvor mye mer ressurser den har, noe som åpner for mange nye muligheter for IOT -prosjekter. ulemper er mangelen på støtte til det. Egentlig ikke egentlig
Del 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: 16 trinn
Del 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: Fokuset for denne Instructable er STM32 Nucleo mikrokontroller. Motivasjonen for dette for å kunne lage et monteringsprosjekt fra bare bein. Dette vil hjelpe oss med å dykke dypere og forstå MSP432 Launchpad-prosjektet (TI-RSLK) som har