Actions

KAmodRPi CAN-FD (PL)

Revision as of 14:38, 10 April 2024 by Grzegorzbecker (talk | contribs) (Odblokowanie interfejsu SPI)

Opis

KAmod CAN-FD jest kompletnym interfejsem magistrali CAN bazującym na zaawansowanym kontrolerze CAN typu MCP2518FD. Zastosowany układ odpowiada za formowanie prawidłowych ramek wysyłanych na magistralę, oraz buforowanie danych przesłanych do, oraz z magistrali CAN. Dzięki tym cechom może współpracować niemal z dowolnym komputerkiem SBC lub mikrokontrolerem. Komunikacja po stronie CAN może odbywać się z prędkością do 1 Mbps w trybie CAN 2.0 lub do 8 Mbps w trybie CAN FD. Komunikacja z kontrolerem odbywa się poprzez 4-przewodowy interfejs SPI (MISO, MOSI, SCK, CE) oraz dodatkowy sygnał przerwania (INT). Wszystkie sygnały są doprowadzone do 40 stykowego złącza w taki sposób, że 2 moduły mogą działać jednocześnie z jednym komputerkiem Raspberry Pi 5.

KAmodCAN-FD.jpg
Podstawowe parametry
  • Interfejs magistrali CAN, kompatybilny z CAN 2.0 oraz CAN FD
  • Bazuje na kontrolerze CAN typu MCP2518FD
  • Komunikacja poprzez interfejs SPI z maksymalnym taktowaniem 20 MHz
  • Interfejs SPI działający z napięciem 3,3 V lub 5 V
  • Prędkość komunikacji (bit rate): 125 kbps...1 Mbps (500 kbps…8 Mbps w trybie FD)
  • Dołączany rezystor terminujący 120 Ω
  • Diody LED sygnalizujące poprawne zasilanie oraz komunikację
  • Kompatybilny z płytkami Raspberry Pi 5 oraz Raspberry Pi Zero
  • Możliwość dołączenia dwóch modułów do jednego komputerka (komunikacja poprzez jeden interfejs SPI z oddzielnymi liniami CE0/CE1)
  • Linie magistrali CAN dołączane poprzez złącze Phoenix MC 3,81 mm
  • Zabezpieczenie przed przepięciami na liniach magistrali CAN
  • Zasilanie 5 V, 100 mA
  • Wymiary płytki 65x30 mm, wysokość ok. 25 mm
Wyposażenie standardowe
Kod Opis
KAmod CAN-FD Zmontowany i uruchomiony moduł


Schemat elektryczny
KAmodCAN-FD sch.jpg
Złącze sterujące
Złącze Funkcja
J1

Szpilki goldpin 1x6, 2,54 mm

  • Wyprowadzone sygnały sterujące kontrolera CAN
  • Wejście zasilania

Kontroler CAN typu MCP2518FD jest sterowany poprzez interfejs SPI. Poprzez SPI odbywa się konfigurowanie parametrów pracy oraz przesyłanie danych do i z kontrolera. Dodatkowo kontroler udostępnia kilka dodatkowych sygnałów - przerwań, które pozwalają szybko reagować na określone zdarzenia. Wszystkie linie działają z napięciem 3,3 V, ale opcjonalnie można je skonfigurować do pracy z napięciem 5 V.
Funkcje sygnałów na złączu J1 są następujące:

  • szpilki nr 1 i 2: +5V - wejście zasilania o napięciu 4,5...5,5 V;
  • szpilka nr 3: VIO – opcjonalne wejście zasilania dla napięcia 3,3...5 V, jeśli sygnały sterujące mają działać z napięciem wyższym niż 3,3 V;
  • szpilka nr 4: GND – masa zasilania i sygnałowa;
  • szpilka nr 5: TINT – wyjście przerwania INT0 (TX Interrupt output), aktywne w stanie niskim;
  • szpilka nr 6: CE – wejście wyboru układu interfejsu SPI (SPI chip select input), aktywne w stanie niskim;
  • szpilka nr 7: RINT – wyjście przerwania INT1 (RX Interrupt output), aktywne w stanie niskim;
  • szpilka nr 8: SCK – wejście sygnału zegarowego interfejsu SPI kontrolera CAN (SPI clock input);
  • szpilka nr 9: SOF – wyjście sygnalizujące start ramki (Start of Frame output);
  • szpilka nr 10: MISO – wyjście danych SPI kontrolera CAN (SPI data output);
  • szpilka nr 11: INT – główne wyjście przerwania, aktywne w stanie niskim;
  • szpilka nr 12: MOSI – wejście danych SPI kontrolera CAN (SPI data input);
KAmodCAN-FD 1.jpg
Złącze GPIO w standardzie Raspberry Pi
Złącze Funkcja
J2

Złącze goldpin 2x20, 2,54 mm

  • Wyprowadzone sygnały sterujące kontrolera CAN, dołączone do odpowiednich styków złącza GPIO
  • Wejście zasilania, dołączone do odpowiednich styków złącza GPIO

Sygnały sterujące kontrolerem CAN zostały doprowadzone do odpowiednich styków złącza J2 (oraz równolegle do złącza J1), które jest kompatybilne ze standardem złącza GPIO płytek Raspberry Pi. Dzięki temu moduł KAmod CAN-FD można łatwo dołączyć do SBC Raspberry Pi. Rozmieszczenie sygnałów sterujących na złączu GPIO jest następujące:

  • pozycja nr 2 oznaczona „3V3” - zwarcie szpilek 3-4 oznacza, że szeregowy interfejs sterujący jest dostosowany do napięcia 3,3 V, które jest dostarczane ze zintegrowanego na płytce stabilizatora napięcia;
  • styki 2 i 4: +5V – zasilanie 5 V doprowadzone ze złącza GPIO;
  • styki 6, 9, 14, 20, 25, 30, 34, 39 – masa GND doprowadzona ze złącza GPIO;
  • styk 18: GPIO24 – może być połączony z sygnałem INT (zależy od ustawienia zworki J7);
  • styk 22: GPIO25 – może być połączony z sygnałem INT (zależy od ustawienia zworki J7);
  • styk 24: GPIO08 – może być połączony z sygnałem CE (zależy od ustawienia zworki J8);
  • styk 26: GPIO07 – może być połączony z sygnałem CE (zależy od ustawienia zworki J8);
  • styk 19: GPIO10 – połączony z sygnałem MOSI - wejście danych SPI kontrolera CAN;
  • styk 19: GPIO09 – połączony z sygnałem MISO - wyjście danych SPI kontrolera CAN;
  • styk 19: GPIO11 – połączony z sygnałem SCK - wejście zegarowe SPI kontrolera CAN;
KAmodCAN-FD 2.jpg


Podłączenie dwóch modułów interfejsu CAN
Złącze Funkcja
J7, J8

Szpilki goldpin + jumper 1x3, 2,54 mm

  • Wybór kanału interfejsu SPI dla kontrolera CAN (sygnały CE0/CE1 na złączu GPIO)
  • Wybór wejścia dla przerwania INT z kontrolera CAN (sygnały GPIO24/GPIO25 na złączu GPIO)

Moduł KAmod CAN-FD jest sterowany poprzez interfejs szeregowy SPI, który może obsługiwać kilka kontrolerów w jednej aplikacji. Każdy kontroler powinien mieć przypisaną dla siebie linię wyboru CE (Chip Enable). Na złączu GPIO Raspberry Pi są dostępne dwie linie CE – CE0 oraz CE1. Za pomocą zworki J8 można wybrać, z której linii CE będzie korzystał kontroler CAN na płytce modułu KAmod CAN-FD:

  • zwarcie szpilek 1-2 J8: ustawia linię CE0, jako linię wyboru kontrolera (jak na rysunku),
  • zwarcie szpilek 2-3 J8: ustawia linię CE1, jako linię wyboru kontrolera.

Kontroler CAN typu MCP2518FD, do prawidłowego działania wymaga obsługi przerwania ustawianego stanem na linii INT. Aby umożliwić działanie dwóch kontrolerów CAN, sygnał INT można dołączyć do jednego z dwóch styków złącza GPIO, za pomocą zworki J7:

  • zwarcie szpilek 1-2 J7: sygnał INT połączony z linią GPIO25 (jak na rysunku),
  • zwarcie szpilek 2-3 J7: sygnał INT połączony z linią GPIO24.
KAmodCAN-FD 3.jpg



Złącze magistrali CAN
Złącze Funkcja
J3 - CAN

Phoenix MC 3,81 mm

  • Złącze magistrali CAN

Złącze magistrali CAN zawiera 3 styki: CANL, CANH oraz GND. Ich rozmieszczenie jest opisane na płytce modułu, styk GND to styk środkowy. Każdy styk należy dołączyć do magistrali CAN zgodnie z oznaczeniem. Sygnał GND powinien być dołączony do wspólnej masy zasilania urządzeń połączonych magistralą CAN.

KAmodCAN-FD 4.jpg


Przebiegi napięć na magistrali CAN pokazuje poniższy rysunek:

KAmodCAN-FD 5.jpg


Dołączenie rezystora terminującego
Złącze Funkcja
J4

Szpilki goldpin + jumper 1x3, 2,54 mm

  • Dołączenie rezystora terminującego 120 Ω

Urządzenia w magistrali CAN, jak sama nazwa wskazuje, są połączone w topologii magistrali. Jest to jedna szyna, bez rozgałęzień, w której można wskazać dwa końce. Każdy koniec magistrali powinien być wyposażony w terminator magistrali – w przypadku magistrali CAN jest to rezystor o wartości 120 Ω. Na płytce modułu znajduje się odpowiedni rezystor, który można dołączyć poprzez odpowiednie ustawienie zworki J4<b>:

  • zwarcie szpilek 1-2, oznacza, że rezystor terminujący 120 Ω jest dołączony pomiędzy liniami CANL i CANH (jak na rysunku);
  • zwarcie szpilek 2-3, lub usunięcie zworki powoduje odłączenie rezystora terminującego.
KAmodCAN-FD 6.jpg


Wyłączenie transceivera magistrali CAN
Złącze Funkcja
<b>J6</b>

Szpilki goldpin + jumper 1x3, 2,54 mm

  • Włączenie/wyłączenie transceivera magistrali CAN

W trakcie prób i testów komunikacji poprzez CAN, może istnieć potrzeba odcinania dostępu do magistrali, aby testowana aplikacja nie zakłócała komunikacji innych urządzeń. Moduł KAmod CAN-FD zawiera transceiver typu <b>MCP2542FD, który dostosowuje strumień danych z kontrolera CAN do parametrów elektrycznych magistrali. Szybkim sposobem odcięcia dostępu do magistrali, bez modyfikacji okablowania, jest wyłączenie transceivera – ustawienie trybu uśpienia standby. Za pomocą szpilek J6 można w łatwy sposób włączyć/wyłączyć transceiver:

  • zwarcie szpilek 1-2: transceiver aktywny (jak na rysunku),
  • zwarcie szpilek 2-3: transceiver w trybie uśpienia standby.
KAmodCAN-FD 7.jpg


Monitorowanie strumieni danych TX i RX
Złącze Funkcja
J5

Szpilki goldpin + jumper 1x3, 2,54 mm

  • Monitorowanie strumieni danych nadawanych i odbieranych z magistrali CAN

Na złączu J5 modułu KAmod CAN-FD, wyprowadzone są sygnały strumieni danych wysyłanych z kontrolera i do kontrolera CAN. Są to zwykłe sygnały logiczne, dlatego można je łatwo monitorować i rejestrować np. za pomocą analizatora logicznego. Poziom napięcia sygnałów odpowiada napięciu VIO. Monitorowanie tych sygnałów może być przydatne na etapie uruchamiania aplikacji i wyszukiwania błędów. Rozmieszczenie sygnałów jest następujące:

  • szpilka nr 1: G – masa sygnałów,
  • szpilka nr 2: R – strumień danych odebranych z magistrali CAN,
  • szpilka nr 3: T – strumień danych wysyłanych do magistrali CAN z kontrolera.
KAmodCAN-FD 8.jpg


Zasilanie i napięcie sygnałów sterujących VIO
Złącze Funkcja
J1

Szpilki goldpin 2x6, 2,54 mm

  • Wejście zasilania
  • Ustawienie napięcia sygnałów sterujących VIO

Zastosowany w module KAmod CAN-FD transceiver CAN (MCP2542FD) wymaga zasilania o napięciu z zakresu 4,5...5,5 V, które należy dołączyć do złącza J1, do styków +5V i GND. Natomiast zasilanie kontrolera CAN (MCP2518FD), może być niższe – musi zawierać się w zakresie 3...5,5 V. Napięcie sygnałów sterujących na złączu J1 będzie takie samo, jak napięcie zasilania kontrolera.

Kontroler CAN jest zasilany napięciem 3,3 V z wbudowanego w moduł stabilizatora napięcia. Napięcie to jest wyprowadzone na styku VIO złącza J1. Podając na styk VIO napięcie wyższe niż 3 V, np. 5 V, można uzyskać wyższe napięcie sygnałów sterujących – np. 5V.

Funkcje styków zasilania na złączu J1 są następujące:

  • szpilki nr 1 i 2: +5V - wejście zasilania o napięciu 4,5...5,5 V;
  • szpilka nr 3: VIO – opcjonalne wejście zasilania dla napięcia 3,3...5 V, jeśli sygnały sterujące mają działać z napięciem wyższym niż 3,3 V;
  • szpilka nr 4: GND – masa zasilania i sygnałowa;
KAmodCAN-FD 9.jpg


Diody sygnalizacyjne
Złącze Funkcja
RX
TC
V
  • RX – sygnalizacja odczytu danych z magistrali CAN
  • TX – sygnalizacja nadawania danych na magistralę
  • V – sygnalizacja napięcia kontrolera CAN

Diody LED RX i TX sygnalizują stan aktywny – czyli niski stan logiczny (stan dominujący na magistrali CAN), odpowiednio na wyjściu i wejściu transceivera CAN. W przypadku przesyłania danych na magistralę, będą migały obie diody – TX oraz RX, ponieważ dane są jednocześnie odczytywane przez transceiver. Dioda V sygnalizuje obecność napięcia kontrolera CAN.

KAmodCAN-FD 10.jpg


Wymiary

Wymiary modułu interfejsu KAmod CAN-FD to 65x30 mm, i wysokość ok. 25 mm. Moduł jest kompatybilny z płytkami Raspberry Pi 5 oraz Raspberry Pi Zero.

KAmodCAN-FD 11.jpg


Linki

Uruchomienie modułu z komputerkiem Raspberry Pi 5

Uruchomienie interfejsu CAN z połączeniu z komputerkiem Raspberry Pi 5 wymaga wykonania następujących kroków.

Odblokowanie interfejsu SPI

Uruchamiamy program do konfiguracji Raspberry Pi – Raspberry Pi Configuration Wybieramy zakładkę Interfaces, a tam przełączamy w pozycję aktywną przełącznik przy SPI. Zapisujemy i zamykamy program.

KAmodCAN-FD f1.jpg


KAmodCAN-FD f2.jpg


Instalowanie pakietu narzędzi dla interfejsu CAN

Uruchamiamy okno terminana, np. za pomocą klawiszy Ctrl+Alt+T, a następnie wpisujemy komendę:
sudo apt-get install can-utils Czekamy do zakończenia i potwierdzamy wszystkie zapytania.

Konfigurowanie interfejsu CAN
Restartowanie systemu
Sprawdzenie konfiguracji
Test komunikacji
Test komunikacji trybie CAN FD