- konstrukcja oparta o scalony transceiver CAN typu SN65HVD1050,
- dwie opcje terminacji magistrali,
- wbudowane zabezpieczenia ESD i bezpieczniki polimerowe,
- zasilanie: 6...24 V,
- automatyczny wybór linii danych w przypadku współpracy z modułami UNO R4 Minima i UNO R4 Wi-Fi.
Nakładka korzysta z układu transceivera CAN typu SN65HVD1050, którego budowę pokazano na rysunku 1.
Układ zawiera wszystko, co jest konieczne do spełnienia wymogów standardów CAN zgodnie z normą ISO11898-2, a jego aplikacja ogranicza się do zaledwie kilku elementów zewnętrznych.
Schemat nakładki pokazano na rysunku 2. Aplikację SN65HVD1050 uzupełniają elementy zabezpieczające U1 oraz terminujące magistralę CAN. Dioda TVS1 zabezpiecza transceiver przed skutkami przepięć, a bezpieczniki polimerowe F1, F2 – przed skutkami zwarć magistrali. Przełącznik RT umożliwia odłączenie rezystorów terminujących R4, R5, gdy nakładka jest nie jest „skrajnym” urządzeniem magistrali CAN. Sposób terminacji i aktywację napięcia VREF można dostosować do wymogów aplikacji. Domyślnie przy użyciu rezystorów R4, R5 i kondensatora C3 realizowany jest schemat terminacji dzielonej, z możliwością zastosowania napięcia VREF=VCC/2 układu U1 w celu stabilizacji punktu pracy trybu współbieżnego (CM) po zwarciu zwory REF. Usuwając kondensator C3 i zworę REF wdrażamy schemat terminacji standardowej z obciążeniem magistrali wyłącznie rezystancją R4+R5≈120 Ω.
Z transceivera magistrala CAN wyprowadzona jest na złącze sprężynowe CAN typu WAGO250 oraz na złącze DB9 ODB2CAN. W przypadku tego ostatniego za pomocą zwór możemy ustalić sposób wyprowadzenia sygnałów na zgodność z ODB2 lub CAN. Każdorazowo jednak przed podłączeniem należy sprawdzić poprawność instalacji przewodu i zastosowanego gniazda ODB/CAN, gdyż zdarzają się modyfikacje. Każde z zastosowanych w nakładce gniazd CAN umożliwia doprowadzenie zasilania do płytki bazowej ARDUINO. Napięcie powinno spełniać wymogi UNO R4, czyli mieścić się w zakresie 6...24 V z dodatkowym uwzględnieniem spadku na diodach D1, D2 zabezpieczających płytkę przed odwrotnym podłączeniem zasilania. Napięcie zewnętrzne doprowadzone jest do złącza PWR na wyprowadzenie VIN. Dodatkowy przełącznik SW umożliwia wyłączenie zasilania bez wypinania przewodów magistrali, bezpiecznik F3 zabezpiecza natomiast Arduino i zasilanie CAN przed skutkami ewentualnych zwarć podczas prototypowania.
Pewną niekonsekwencją projektową komplikującą schemat nakładki okazuje się różne przyporządkowanie wyprowadzeń kontrolera CAN na płytce UNO R4 Minima i UNO R4 Wi-Fi. W przypadku R4 Minima są to wyprowadzenia D4:CANTX0 i D5:CANRX0, a w przypadku Wi-Fi wyprowadzenia D10:CANTX0 i D13:CANRX0. Aby uniknąć kolejnych wymagających ręcznej konfiguracji elementów oraz zachować zgodność z dwiema wersjami, do automatycznego przełączania przyporządkowania wyprowadzeń użyłem istniejącego w wersji Wi-Fi złącza baterii. Jeżeli nakładka współpracuje z R4 Wi-Fi, na środkowym wyprowadzeniu złącza występuje potencjał masy – ustala on stan niski sygnału SELW (Select Wi-Fi). Inwerter U3 generuje wówczas sygnał zanegowany SELM (Select Minima), natomiast sygnały doprowadzone do bramek trójstanowych układu U2 kluczują odpowiednio wyprowadzenia interfejsu CANRX/CANTX pomiędzy wyprowadzeniami płytki bazowej (D10, D13) a transceiverem U1. Wersja Minima nie ma złącza baterii, więc stan sygnału SELW jest wysoki i przyporządkowanie wybierane przez U2 zmienia się na zgodność z R4 Minima (D4, D5). Sygnały z kontrolera CAN, po odpowiednim kluczowaniu, doprowadzone są do wejść transceivera CAN U1 i dodatkowo – po buforowaniu przez U4, U5 – są sygnalizowane diodami TXD/RXD. Zwora SLM, domyślnie rozwarta, umożliwia sterowanie stanem transceivera U1. Ustawienie stanu niskiego na wyprowadzeniu D7 aktywuje tryb High-Speed i pełną funkcjonalność U1, a stan wysoki D7 ustala tryb nasłuchu, w którym aktywny jest tylko odbiornik transceivera. W przypadku współpracy z R4 Wi-Fi na złącze BAT wyprowadzone jest napięcie baterii, umożliwiające podłączenie zewnętrznej baterii podtrzymującej działanie RTC (o ile jego użycie zostanie wreszcie poprawione w oprogramowaniu). W celu ułatwienia zastosowania nakładki na złącza Grove wyprowadzono magistralę I²C (wyprowadzenia A4, A5) oraz UART (D0, D1) umożliwiające podłączenie czujników zasilanych napięciem 5 V.
Układ zmontowany został na dwustronnej płytce drukowanej zgodnej z Arduino Shield Rev3. Rozmieszczenie elementów pokazano na rysunku 3.
Sposób montażu nie wymaga opisu. W zależności od przewidywanego zastosowania przedłużane złącza szpilkowe PWR, AD, IOL, IOH (wysokość 13...15 mm) można zastąpić „stackowalnymi” złączami Arduino, umożliwiającymi montowanie modułów w kanapki. Niewykorzystana powierzchnia płytki została przeznaczona na pole prototypowe, a oznaczone pady umożliwiają wyprowadzenie napięć zasilania (5 V) i masy (GND).
Zmontowany moduł konwertera zaprezentowano na fotografii 1.
Moduł nie wymaga uruchamiania. Szybkiego sprawdzenia działania nakładki można dokonać przy użyciu szkiców dostępnych w środowisku ArduinoFile>Examples>Arduino_CAN >CANWrite/CANRead z opisem wg https://docs.arduino.cc/tutorials/uno-r4-minima/can. Do tego celu potrzebne są dwa moduły UNO R4 w dowolnej wersji: na płytkach rozszerzeń aktywujemy przełącznikiem RT (obie pozycje włączone) rezystory terminujące, a następnie łączymy odcinkiem skrętki wyprowadzenia CANH i CANL złączy CAN w obu nakładkach. Na jedną z płytek R4 ładujemy szkic CANWrite, na drugą CANRead i sprawdzamy poprawność działania. Ze względu na identyczne identyfikatory USB Minima i Wi-Fi ładowanie szkicu najlepiej wykonać sekwencyjnie, podłączając najpierw jedną, później drugą płytkę, bo środowisko nie jest w stanie poprawnie wykryć dwóch modułów z identycznym VID/PID. Po resecie płytek szkice powinny nadawać i odbierać testową transmisję.
Jeżeli wszystko działa poprawnie, moduł można zastosować we własnej aplikacji.
Adam Tatuś, EP
- R1...R3, R6: 10 kΩ (SMD 0603, 1%)
- R4, R5: 60,4 Ω (SMD 0805, 1%, typ ERJP06F60R4V)
- R7, R8: 1 kΩ (SMD 0603, 1%)
- D1, D2: dioda Schottky’ego S2M (SMB)
- LD1, LD2: dioda LED czerwona/żółta (SMD 0603)
- TVS1: dioda zabezpieczająca PESD2CANFD24U (SOT-23)
- U1: SN65HVD1050 (SO8)
- U2: HC125 (SO14)
- U3, U4, U5: 74HC1G00GW (TSSOP5)
- C1: 10 μF (SMD 0603, X7R 10 V)
- C2, C6...C8: 100 nF (SMD 0603, X7R 10 V)
- C3: 10 nF (SMD 0805, X7R 50 V)
- C4, C5: 10 μF (SMD 0805, X7R 25 V)
- AD: złącze szpilkowe SIP6 2,54 mm (13...15 mm)
- AUX: złącze męskie SIP3
- BAT: złącze JST 2 pin. 2 mm (opcja)
- CAN: złącze sprężynowe Wago (WAGO250-4)
- CG, CH, CL: złącze szpilkowe SIP3 2 mm + zwory
- F1, F2: bezpiecznik polimerowy 24 V/0,5 A 0,55 Ω (typ 0ZCJ0025AF2E, SMD 1206)
- F3: bezpiecznik polimerowy 24 V/1,5 A 0,04 Ω (typ 0ZCG0150BF2C, SMD 1812)
- I²C, UART: złącze Grove kątowe
- IOH: złącze szpilkowe SIP10 2,54 mm (13...15 mm)
- IOL, PWR: złącze szpilkowe SIP8 2,54 mm (13...15 mm)
- ODB2CAN: gniazdo DB9 męskie (DB9RA/M)
- RT: przełącznik SDIP OMRON (typ A6H-2101)
- SW: przełącznik suwakowy (typ MSS-2235)