- osiem kanałów wyjściowych: 24 V/500 mA,
- rezystancja kluczy w stanie otwarcia: 0,55 Ω,
- sterowanie: ekspander MCP23008 z interfejsem I²C,
- napięcie zasilania logiki sterującej: 2,7...5 V.
Schemat modułu pokazano na rysunku 1. Jako element kluczujący obciążenia zastosowano specjalizowany ośmiokanałowy driver TPD2017FN, który jest funkcjonalnym odpowiednikiem popularnego ULN2803.
Strukturę wewnętrzną układu można zobaczyć na rysunku 2.
TPD2017FN w swojej strukturze zawiera osiem identycznych kanałów kluczujących opartych o tranzystory MOSFET. Kluczowanie odbywa się po stronie masy zasilania obciążenia, czyli „Low Side”. Układ ma wbudowane zabezpieczenia termiczne, a każdy kanał – zabezpieczenie przed przeciążeniem klucza w przypadku zawarcia wyjścia (aktywowane, gdy prąd przekroczy 1 A). Każdy z tranzystorów kluczujących wyposażony został ponadto w aktywny układ tłumienia przepięć występujących podczas współpracy z obciążeniami indukcyjnymi. W porównaniu z ULN2803 – dzięki wbudowanym zabezpieczeniom – poprawiona została niezawodność sterowania, natomiast dzięki niskiej rezystancji klucza (max. 0,55 Ω) obniżono moc strat w układzie. TPD2017FN przystosowany jest do bezpośredniego sterowania obciążeniami rezystancyjnymi i indukcyjnymi, dopuszczalne jest równolegle łączenie wyjść w celu zwiększenia prądu obciążenia. Napięcie zasilania i sterowanie układu powinno zawierać się w zakresie 2,7...5 V.
Do sterowania TPD2017FN zastosowano układ ośmiowyjściowego ekspandera GPIO typu MCP23008 współpracującego z magistralą I²C. Przy pomocy zwór A0,1,2 możliwe jest ustawienie jednego z ośmiu adresów (0x20...0x27) magistrali, co dopuszcza podłączenie do ośmiu modułów na jednej magistrali i wygodne sterowanie zespołem nawet 64 wyjść. Całym światem raczej nie posterujemy, ale najbliższą okolicą – na 100%. Wyjścia TPS2017FD, wraz ze wspólną masą, doprowadzone są do złączy OUT14 i OUT58. Moduł uzupełniają opcjonalne złącza magistrali I²C (I²C, I²CA). Zasilanie 3,3 V jest pobierane z listwy GPIO Raspberry. Dopuszczalne napięcie zasilania obciążenia to 24 V, maksymalny prąd każdego z kanałów wynosi 0,5 A a dopuszczalna całkowita moc strat TPD2017FD to 1,8 W. Jeżeli układ będzie pracował w wysokiej temperaturze lub z dużym obciążeniem, warto wyposażyć go w niewielki, naklejany radiator z blaszki miedzianej lub zapewnić chłodzenie wymuszone, aby zapobiec aktywacji zabezpieczenia termicznego.
Układ zmontowano na niewielkiej dwustronnej płytce drukowanej zgodnej z formatem Pi Zero. Rozmieszczenie elementów zaprezentowano na rysunkach 3a i 3b.
Montaż nie wymaga dokładniejszego opisu, należy jedynie pamiętać o zalutowaniu w odpowiednich położeniach zwór adresowych A0..2. Gotową płytkę pokazano na fotografii tytułowej.
Moduł nie wymaga uruchamiania – po podłączeniu do Raspberry, poleceniem:
sprawdzamy, czy układ MCP23008 zostanie poprawnie wykryty na magistrali. W modelu ustalony jest adres 0x27 (wszystkie zwory w położeniu „1”). Konfiguracja układu wymaga jedynie zapisu wartości 0x00 do rejestru IODIR (subadres 0x00), ustawiającej funkcję wyjścia GPIO, poleceniem:
oraz wpisania wartości sterującej stanem wyjść (0xYY) do rejestru OLAT (subadres 0x0A) poleceniem:
Ustawienie poszczególnych bitów zwiera odpowiadające im obciążenia do masy. Jeżeli wszystko działa poprawnie, można moduł zastosować we własnej aplikacji.
Adam Tatuś
- R1...R3: 4,7 kΩ
- C1, C2, C4: 100 nF
- C3: 10 μF
- U1: MCP23008SS (SSOP20_230)
- U2: TPD2017FN (SSOP30_300)
- GPIO: złącze goldpin 2×20
- I2C: złącze DG JST 2 mm (opcja)
- I2CA: złącze Grove kątowe
- OUT14, OUT58: złącze DG 5pin