Sadržaj:
- Pribor
- Korak 1: Krug primopredajnika
- Korak 2: Čitanje i pisanje na CAN sabirnicu
- Korak 3: Povezivanje čvorova
- Korak 4: Napravite PCB
- Korak 5: Proširenje ploče
- Korak 6: Naručite svoje PCB -ove od JLCPCB -a
- Korak 7: Uzmite svoje ploče
Video: STM32 CAN sučelje: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Sabirnica mrežnog područja kontrolera ili CAN sabirnica vrlo je učinkovit komunikacijski protokol zahvaljujući mogućnostima velike brzine, pouzdanosti na velikim udaljenostima i otpornosti na buku. Zbog toga je CAN komunikacija postala standard u automobilskim tehnologijama i okruženjima s velikom bukom. Uređaji na CAN sabirnici nazivaju se čvorovima. Svi čvorovi na CAN sabirnici povezani su paralelno, što znači da je svaki čvor povezan sa svim ostalim čvorovima na mreži. Jedna CAN sabirnica može imati do 115 čvorova odjednom, ovisno o brzini prijenosa poruke, ali za većinu aplikacija preporučuje se imati do 32 uređaja. Također se preporučuje da udaljenost između prvog i zadnjeg čvora bude udaljena manje od 40 metara.
Ovaj korak-po-korak vodič će vam pokazati kako postaviti CAN čvor pomoću STM32 mikrokontrolera, uključujući krug i jednostavan C kod za čitanje i pisanje na CAN sabirnicu
Pribor
Za svaki CAN čvor:
- 1x ploča za razbijanje STM32 (Nucleo, Blue Pill, ostalo)
- 1x IC primopredajnik MCP2551 CAN
- 1x 0,1 μF kondenzator
- 1x 120Ω otpornik
- 1x 1 kΩ otpornik
- 1+ čitljiv ulaz (gumb, prekidač, potenciometar itd.) Ili izlaz (LED, MOSFET itd.)
- 1x Dsub9 konektor
Korak 1: Krug primopredajnika
Za komunikaciju s CAN sabirnicom koristit ćemo IC primopredajnik MCP2551 CAN. IC djeluje kao posrednički par odašiljač/prijamnik za povezivanje STM32 na CAN sabirnicu. Krug za postavljanje ovog IC -a prilično je jednostavan, ali potrebno je napomenuti nekoliko stvari:
-
CAN_RX (pin 4) i CAN_TX (pin 1) na čipu MCP2551 mogu ići samo na određene pinove na STM32.
- Na STM32F1 Nucleo spojite RX liniju na pin PB8 i TX liniju na pin PB9.
- Na plavoj tableti STM32F1 spojite RX na pin PA11 i TX na pin PA12.
- Imajte na umu da ove dodjele pinova imaju alternative. Pogledajte priručnike za mikrokontroler kako biste utvrdili koji pinovi su sposobni za CAN_RD i CAN_TD
- Ako koristite Arduino ili ploču bez ugrađenog CAN komunikatora, IC čip MCP2515 bit će potreban za pretvaranje drugih protokola poruka u CAN.
- CANL pin treba spojiti na druge CANL pinove drugih čvorova sabirnice. Isto vrijedi i za CANH igle.
- Otpor od 120Ω preko CANH i CANL pinova potreban je samo ako je čvor terminalni čvor. To znači da se nalazi na kraju paralelnog ožičenja. Drugim riječima, CAN sabirnica treba imati samo dva otpornika od 120Ω, a oni bi trebali biti što dalje jedan od drugog.
- Na kraju, 1kΩ otpornik na RS (pin 8) može se zamijeniti za 10kΩ otpornik za upravljanje vremenom porasta/pada bitova CAN poruke. Za više pojedinosti pogledajte tehnički list čipa MCP2551.
Korak 2: Čitanje i pisanje na CAN sabirnicu
Sada kada je sklop primopredajnika spojen na STM32, možemo početi pisati poruke na CAN sabirnicu. Ovaj vodič s uputama neće detaljno ulaziti u kod STM32. Međutim, svakako provjerite naše kodove za primjere ovdje. Korištenje STM32 kao CAN čvora zahtijevat će datoteku zaglavlja CAN. Napisali smo vlastiti, koji se ovdje može pronaći na našem githubu. Ovdje ćemo dati kratak pregled procesa čitanja/pisanja.
Za čitanje s CAN sabirnice prvo moramo znati ID CAN poruke. Svaka poruka treba imati jedinstveni ID, s nižim ID -ovima s većim prioritetom. Ovdje prikazani isječak koda čeka poruku CAN s ID -om 0x622. U našem sustavu, ako je prvi bit 6. bajta visok, tada želimo pin A10 postaviti visoko.
Prilikom pisanja CAN poruke moramo imati na umu da su CAN poruke višebajtne. Svaka pisana poruka mora imati ID i duljinu. U drugom prikazanom isječku koda zapisujemo podatke u svaki bajt, a zatim šaljemo poruku (ID i parametri duljine definirani su ranije u kodu).
Korak 3: Povezivanje čvorova
Prilikom povezivanja više CAN čvorova, posebnu pozornost treba posvetiti duljini kabela. Dva najudaljenija čvora mogu biti udaljena jedan do drugog do 40 m. Srednji čvorovi koji se spajaju na sabirnicu trebali bi biti unutar 50 cm od glavnih autobusnih linija.
CAN veze slijede industrijski standard korištenja Dsub9 konektora s CANL linijom na pin 2 i CANH linijom na pin7. Opcija CANGND linija može ići na pin 3.
Korak 4: Napravite PCB
Prilikom usmjeravanja CAN signala na PCB imajte na umu da je CAN diferencijalni signal, pa se stoga moraju pažljivo slijediti smjernice usmjeravanja za CANH i CANL.
Korak 5: Proširenje ploče
Spojite još neke čvorove, dodajte neke ulaze/izlaze i spojite sve njihove CANH i CANL pinove. Imajte na umu da svaki STM32 ili drugi mikrokontroler zahtijeva svoj vlastiti MCP2551 čip; ne mogu se dijeliti.
S tim u vezi, pokušajte da vaše PCB -ove budu manje od onog prikazanog ovdje
Korak 6: Naručite svoje PCB -ove od JLCPCB -a
JLCPCB nudi brzu, visokokvalitetnu uslugu po vrlo povoljnim cijenama. Nabavite 5 ploča, bilo koje boje s gomilom prilagodbi, za samo 2 USD! A ako vam je to prva narudžba, nabavite 10 ploča po istoj cijeni!
Samo učitajte svoje gerbere i odmah zatražite ponudu! Pošaljite svoju narudžbu i vaše će ploče biti pregledane za proizvodnju u roku od sat vremena. Nakon što platite, svoje visokokvalitetne ploče možete očekivati za tri dana!
Ovdje provjerite
Korak 7: Uzmite svoje ploče
Velika zahvala JLCPCB -u za sponzorstvo ovog projekta. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), najveće je poduzeće za izradu prototipa PCB-a u Kini i visokotehnološki proizvođač specijaliziran za brzo prototipiranje PCB-a i proizvodnju male serije PCB-a. Bili su ljubazni pružiti UBC Solar naše nove PCB-ove za naš trkaći automobil na solarni pogon. Naručili smo u petak, a ploče dobili u srijedu!
Preporučeni:
Sučelje svemirskog broda Arduino: 3 koraka
Sučelje Arduino svemirskog broda: Zdravo, poučna zajednica, ovaj put sam napravio jedan od najjednostavnijih projekata koje treba upotpuniti Arduino Uno: krug svemirskog broda. Naziva se tako jer je to vrsta programiranja i sklopova koja bi se koristila u prvim znanstvenofantastičnim TV emisijama i filmovima
Sučelje Arduino Mega s GPS modulom (Neo-6M): 8 koraka
Sučelje Arduino Mega s GPS modulom (Neo-6M): U ovom projektu sam pokazao kako spojiti GPS modul (Neo-6M) s Arduino Mega. Knjižnica TinyGPS koristi se za prikaz podataka o zemljopisnoj dužini i širini, a TinyGPS ++ za prikaz zemljopisne širine, dužine, nadmorske visine, brzine i broja satelita
Vodič za sučelje senzora kompasa HMC5883L s Arduinom: 10 koraka (sa slikama)
Vodič za sučelje Senzor kompasa HMC5883L s Arduinom: Opis HMC5883L je troosni digitalni kompas koji se koristi u dvije opće svrhe: za mjerenje magnetiziranja magnetskog materijala poput feromagneta, ili za mjerenje jakosti i, u nekim slučajevima, smjera magnetsko polje u točki u s
Izgled željezničke pruge kontroliranom tipkovnicom V2.5 - PS/2 sučelje: 12 koraka
Izgled željezničke pruge kontroliranom tipkovnicom V2.5 | PS/2 sučelje: Koristeći Arduino mikrokontrolere, postoji mnogo načina za kontrolu rasporeda željezničkih modela. Tipkovnica ima veliku prednost jer ima puno tipki za dodavanje mnogo funkcija. Evo da vidimo kako možemo početi s jednostavnim rasporedom s lokomotivom i
Sučelje preglednika ATTiny Fuse Editor: 4 koraka
Sučelje preglednika ATTiny Fuse Editor: Ovo uputstvo je za uređivač osigurača ATTiny koji koristi ESP8266 i korisničko sučelje temeljeno na pregledniku. To čini promjenu bilo koje postavke koju kontroliraju 2 bajta osigurača vrlo jednostavnom aktivnošću. Uređaj ima sljedeće značajke. Pretpostavka web poslužitelja