INHOUDSOPGAWE:
- Voorrade
- Stap 1: Die ontvanger -kring
- Stap 2: Lees en skryf na die CAN -bus
- Stap 3: Verbind nodes
- Stap 4: Maak die PCB
- Stap 5: Uitbreiding van die raad
- Stap 6: Bestel u PCB's by JLCPCB
- Stap 7: Kry u planke
Video: STM32 CAN -koppelvlak: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Die Controller Area Network -bus, of CAN -bus, is 'n baie effektiewe kommunikasieprotokol danksy sy hoë spoedvermoëns, betroubaarheid oor die lang afstand en ruisimmuniteit. Om hierdie redes het CAN -kommunikasie die standaard geword in motortegnologieë en omgewings met hoë geraas. Toestelle op die CAN -bus word nodes genoem. Alle nodusse op die CAN -bus is parallel gekoppel, wat beteken dat elke knoop verbind is met al die ander nodusse op die netwerk. Afhangend van die tempo van die oordrag van boodskappe, kan 'n enkele CAN -bus tot 115 nodusse tegelyk hê, maar vir die meeste toepassings word aanbeveel om tot 32 toestelle te hê. Dit word ook aanbeveel om die lengte tussen die eerste en die laaste knoop minder as 40 meter uitmekaar te hou.
Hierdie stap-vir-stap handleiding sal u wys hoe u 'n CAN-knoop kan opstel met behulp van die STM32-mikrobeheerder, insluitend die stroombaan en eenvoudige C-kode om te lees en te skryf na die CAN-bus
Voorrade
Vir elke CAN -knoop:
- 1x STM32 uitbreekbord (Nucleo, Blue Pill, ander)
- 1x MCP2551 KAN -ontvanger IC
- 1x 0.1µF kapasitor
- 1x 120Ω weerstand
- 1x 1kΩ weerstand
- 1+ leesbare ingang (knoppie, skakelaar, potensiometer, ens.) Of uitset (LED, MOSFET, ens.)
- 1x Dsub9 -aansluiting
Stap 1: Die ontvanger -kring
Om met die CAN -bus te kommunikeer, gebruik ons die MCP2551 CAN -ontvanger IC. Die IC dien as 'n intermediêre sender/ontvanger -paar om die STM32 aan die CAN -bus te koppel. Die kring om hierdie IC op te stel is redelik eenvoudig, maar daar is 'n paar dinge om op te let:
-
Die CAN_RX (pen 4) en CAN_TX (pen 1) op die MCP2551 -chip kan slegs na sekere penne op die STM32 gaan.
- Koppel op die STM32F1 Nucleo die RX -lyn aan pin PB8 en die TX -lyn aan pin PB9.
- Koppel RX aan pen PA11 en TX aan pen PA12 op die STM32F1 blou pil.
- Let daarop dat hierdie penopdragte alternatiewe het. Raadpleeg die handleiding van die mikrobeheerder om vas te stel watter penne in staat is om CAN_RD en CAN_TD te gebruik
- As u 'n Arduino of 'n bord sonder 'n ingeboude CAN -kommunikeerder gebruik, sal die MCP2515 IC -chip nodig wees om ander boodskapprotokolle na CAN om te skakel.
- Die CANL -pen moet aan die ander CANL -penne van die ander busknope gekoppel word. Dieselfde geld vir die CANH -penne.
- Die 120Ω -weerstand oor die CANH- en CANL -penne is slegs nodig as die knoop 'n terminale knoop is. Dit beteken dat dit aan die einde van parallelle verbindingsbedrading is. Met ander woorde, die CAN -bus moet slegs twee 120Ω -weerstande bevat, en hulle moet so ver as moontlik van mekaar wees.
- Laastens kan die 1kΩ -weerstand op RS (pen 8) verruil word vir 'n 10kΩ -weerstand om die stygende/dalende tyd van die CAN -boodskapstukke te beheer. Raadpleeg die MCP2551 -skyfbladsy vir meer besonderhede.
Stap 2: Lees en skryf na die CAN -bus
Noudat die transceiver -kring aan die STM32 gekoppel is, kan ons begin om boodskappe na die CAN -bus te skryf. Hierdie instruksies sal nie die STM32-kode in diepte ingaan nie. Kyk egter na ons kode vir voorbeelde hier. Om die STM32 as 'n CAN -knoop te gebruik, benodig 'n CAN -koplêer. Ons het ons eie geskryf, wat u op ons github hier kan vind. Hier gee ons 'n kort oorsig van die lees-/skryfproses.
Om uit die CAN -bus te lees, moet ons eers die ID van die CAN -boodskap ken. Elke boodskap moet 'n unieke ID hê, met laer ID's wat hoër prioriteit het. Die kodefragment wat hier gewys word, wag op 'n CAN -boodskap met ID 0x622. In ons stelsel, as die eerste bietjie van die 6de byte hoog is, wil ons pen A10 hoog stel.
As ons 'n CAN-boodskap skryf, moet ons onthou dat CAN-boodskappe multi-byte is. Elke geskrewe boodskap moet 'n ID en lengte hê. In die tweede kodebrood wat getoon word, skryf ons data na elke greep, en stuur dan die boodskap (die ID en lengte parameters word vroeër in die kode gedefinieer).
Stap 3: Verbind nodes
By die aansluiting van verskeie CAN -nodes moet aandag gegee word aan die lengte van die kabels. Die twee verste nodusse kan tot 40 m van mekaar af wees. Middelknope wat met die bus verbind word, moet binne 50 cm van die hoofbuslyne wees.
CAN -verbindings volg 'n industriestandaard van die gebruik van 'n Dsub9 -aansluiting met die CANL -lyn op pen 2 en die CANH -lyn op pin7. Die opsie CANGND -lyn kan op pen 3 gaan.
Stap 4: Maak die PCB
As u CAN -seine op 'n PCB stuur, moet u onthou dat CAN 'n differensiële sein is, en daarom moet die routeringsriglyne vir die CANH en CANL noukeurig gevolg word.
Stap 5: Uitbreiding van die raad
Gooi nog 'n paar nodusse bymekaar, voeg 'n paar insette/uitsette by en verbind al hul CANH- en CANL -penne. Let daarop dat elke STM32 of ander mikrobeheerder sy eie MCP2551 -chip benodig; hulle kan nie gedeel word nie.
Met dit gesê, probeer om u PCB's kleiner te hou as die wat hier getoon word
Stap 6: Bestel u PCB's by JLCPCB
JLCPCB bied vinnige diens van hoë gehalte teen baie billike pryse. Kry 5 borde, elke kleur met tonne aanpassings, vir slegs $ 2! En as dit u eerste bestelling is, kry 10 borde vir dieselfde prys!
Laai net u gerbers op en kry 'n onmiddellike kwotasie! Dien u bestelling in, en u planke word binne 'n uur hersien vir produksie. Sodra u betaal het, kan u binne drie dae u borde van hoë gehalte verwag!
Kyk hier
Stap 7: Kry u planke
Groot dank aan JLCPCB vir die borg van hierdie projek. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), is die grootste PCB-prototipe-onderneming in China en 'n hoëtegnologiese vervaardiger wat spesialiseer in vinnige PCB-prototipering en klein-bondel PCB-produksie. Hulle was vriendelik genoeg om ons nuwe PCB's vir UBC Solar vir ons renmotor met sonkrag te voorsien. Ons het Vrydag ons bestelling geplaas en Woensdag die borde gekry!
Aanbeveel:
STONE Display +STM32 +koffiemaker: 6 stappe
STONE Display +STM32 +koffiemaker: ek is 'n MCU -sagteware -ingenieur, het onlangs 'n projek gekry om 'n koffiemasjien te wees, huishoudelike vereistes met 'n aanraakskerm, die funksie is goed, bo die skerm is die keuse nie baie goed nie, Gelukkig kan ek hierdie projek besluit
Begin met die ontwikkeling van STM32 op Linux: 4 stappe
Begin met die ontwikkeling van STM32 op Linux: In hierdie instruksies gaan ek u wys hoe maklik dit is om STM32 -programme op Linux te begin ontwikkel. Ek het 2 jaar gelede Linux as my hoofmasjien begin gebruik en is nie in die steek gelaat nie. Alles werk vinniger en beter as vensters. Dit is natuurlik les
STM32 "Blue Pill" Progmaming Via Arduino IDE & USB: 8 stappe
STM32 "Blue Pill" Progmaming Via Arduino IDE & USB: Vergelyk STM32F generiese prototipe bord (dws Blue Pill) met sy teenstuk Arduino, is maklik om te sien hoeveel meer hulpbronne dit het, wat baie nuwe geleenthede bied vir IOT -projekte. nadele is die gebrek aan ondersteuning daarvoor. Eintlik nie regtig nie
Deel 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: 16 stappe
Deel 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: Die fokus van hierdie Instructable is die STM32 Nucleo mikro-kontroleerder. Die motivering hiervoor om 'n monteerprojek uit kaal bene te kan skep. Dit sal ons help om dieper te verdiep en die MSP432 Launchpad-projek (die TI-RSLK) wat
Hoe om data te ontvang van 'n op STM32 gebaseerde mikrobeheerder na 'n rekenaar: 5 stappe
Hoe om data van 'n op STM32 gebaseerde mikrobeheerder na 'n rekenaar te ontvang: hier in hierdie tutoriaal het ons data van mikrobeheerder na 'n rekenaar oorgedra met behulp van een van die UART van STM32l100 mcu