CAN převodník MCP2515 (čtení informací) – část 1.

V tomto článku budeme rozebírat čtení informací ze sběrnice CAN automobilů.
Do sběrnice CAN se napojíme přes diagnostický konektor OBD2.

V českém internetu nejsou informace o tom, jak propojit čínský CAN převodník s integrovaným obvodem MPC2515, oscilátorem 8MHz a Arduinem.
Rozhodl jsem se, že o tom tedy napíšu krátký článek, abych tuto internetovou mezeru alespoň částečně zaplnil.
MCP2515 je čip, vyroben firmou Microchip semiconductor, podporující CAN specifikaci 2.0B a může nejen přijímat, ale i posílat standartní a rozšířené rámce. Tento čip má dvě masky a šest filtrů. Filtry se používají k odfiltrování nevyžádaných zpráv a tím pádem ke snížení zatížení Microcontroleru.

Krok 1: Seznam součástek

1. Arduino Uno
2. CAN převodník MCP2515
3. Dráty samec-samice
4. Krabička z akrylového skla (nemusí být)
5. Distanční sloupky (nemusí být)
6. Auto s CAN sběrnicí

Krok 2: Zapojení součástek

CAN převodník používá SPI interface. Převodník zapojíme dle obrázku, viz níž:

Aby převodník správně pracoval, je potřeba stáhnout knihovny tady.

Tato knihovna má dva příklady – přijímání a posílání dat. V tomto článku se budeme zabývat pouze přijímáním dat. Příklad správně funguje pouze s modulem převodníku s 16MHz oscilátorem. Čínské převodníky mají 8MHz oscilátor. Proto musíme příklad opravit. Při initilizaci CAN sběrnice musíme specifikovat frekvence oscilátoru: CAN0.begin(CAN_500KBPS, MCP_8MHz). Ještě je možné zkopírovat kód, viz dole, a přidat ho.

Krok 3: Nahrát kód

Krok 4: bavit se

V dalším článku se naučíš posílat příkazy do CAN sběrnice auta s pomocí Arduina.