Modul PI-CAN je modul s galvanicky izolovaným rozhraním CAN FD, založeném na řadiči MCP2518FD s rozhraním MCP2544FD. Podpora pro PI-CPUF407 je obsažena v ukázkové aplikaci na GitLab, podívejme se také, jak ho rozchodit na Raspberry OS.

Raspberry OS obsahuje podporu pro MCP2518FD, kterou je ale nutné zapnout. V souboru /boot/firmware/config.txt přidáme ovladač pomocí:

dtoverlay=mcp251xfd,oscillator=20000000,spi0-0,interrupt=5

Poté restartujeme a v systému se objeví nové síťové rozhraní can0. Otestovat ho můžeme rovnou z příkazové řádky. Nejprve rozhraní aktivujeme:

> ip link set can0 up mtu 72 type can bitrate 500000 dbitrate 2000000 fd on

V příkazu jsme nastavili rychlost na 500kbit/s a vysokou rychlost CAN FD na 2 Mbit/s.

Poslouchat na rozhraní můžeme pomocí příkazu:

> candump can0

Pokud chceme něco poslat, provedeme to příkazem:

> cansend can0 001#01234567

Formát zprávy je ID#DATA, tedy v našem případě posíláme ID 1 a data celkem 4 byte s hodnotami 01 23 45 67. Pokud není na sběrnici žádný příjemce a zpráva není potvrzena, bude se vysílat pořád dokola.

Příkaz cansend ale neumí posílat zprávy CAN FD ve vyšší rychlosti. To lze pomocí příkazu cangen, který primárně generuje náhodná data:

> cangen can0 -f -v 

 Tento příkaz vygeneruje náhodné frame o náhodné délce. Toto chování můžeme změnit přidáním těchto přepínačů:

-I <mode> (CAN ID generation mode)
-L <mode> (CAN data length code (dlc) generation mode)
-D <mode> (CAN data (payload) generation mode)
Mode může být:
'r'    => random values (default)
'i'    => increment values
<hexvalue>

Hexvalue se musí zadávat v hexadecimálním tvaru.

Pro kompletní návod příkazu cangen viz manuál:

> man cangen

Zavřít interface můžeme příkazem:

> ip link set can0 down

 

Cookies

Pro lepší používání stránek a pro náš obchod používáme jen nezbytné cookies.