BlogKontakt

Ekspander MCP23017

Adresy I2C i logika przekaźników ekspanderów MCP23017, które sterują wyjściami.

Przekaźnikami sterownika boneIO Black sterują układy MCP23017 (ekspandery) na magistrali I2C. Każdy układ ma adres i sterownik musi go znać, inaczej wyjścia na tym układzie nic nie robią. Większość właścicieli nigdy tu nie zagląda: adresy i logika przekaźników wynikają z typu i wersji sterownika ustawionych w sekcji boneIO. Zmieniaj je tylko wtedy, gdy Twój sterownik ma inne adresy, na przykład starszy sterownik po aktualizacji albo po wymianie płytki przekaźnikowej.

Gdzie to jest

Otwórz Ustawienia → Zaawansowane → MCP23017 (Zaawansowane). Pozycja ma znaczek restart.

Zmiana adresów

  1. Sprawdź, które adresy faktycznie odpowiadają: Diagnostyka → Magistrale → I2C skanuje magistralę. Nic tam nie jest zapisywane.
  2. Otwórz Ustawienia → Zaawansowane → MCP23017 (Zaawansowane). Jest tam karta mcp_left i karta mcp_right.
  3. Wybierz Adres I2C każdego ekspandera i w razie potrzeby ustaw Odwrócona logika (active-LOW).
  4. Kliknij Zapisz. Panel pokaże Wymagany restart aplikacji. Kliknij Restartuj Teraz, inaczej nic się nie zmieni.

Sekcja MCP23017

PoleCo robi
Adres I2CAdres tego ekspandera, od 0x20 do 0x27. mcp_left steruje OUT_01–OUT_16 w 32x10 (OUT_01–OUT_12 w 24x16), mcp_right OUT_17–OUT_32 w 32x10 (OUT_13–OUT_24 w 24x16).
Odwrócona logika (active-LOW)Przekaźniki załączają się sygnałem LOW. Włączona dla sterowników od wersji 1.0, wyłączona dla starszych. Jeśli w ogóle nie jest ustawiona, sterownik wykrywa ją przy starcie i zapamiętuje; karta pokazuje wtedy, co wykrył. Znaczek Active-LOW pojawia się, gdy używana jest odwrócona logika.

Wartości domyślne, dla porównania: sterowniki od wersji 0.8 używają 0x23 dla mcp_left i 0x24 dla mcp_right (48x4: 0x23, 0x24, 0x25). Starsze sterowniki zwykle mają je odwrotnie, niż można by się spodziewać: 0x21 dla mcp_left i 0x20 dla mcp_right. Wybranie ich w złej kolejności zamienia OUT_01–OUT_16 z OUT_17–OUT_32, więc porównaj ze skanem I2C i przełącz wyjście, żeby zobaczyć, który przekaźnik kliknie.

Zły adres oznacza, że wyjścia na tym ekspanderze przestają działać. Sterownik pokazuje błąd w Ustawienia → Konserwacja → Błędy sprzętowe. Zła Odwrócona logika odwraca przekaźniki: wyłączony wygląda na włączony, a wszystkie przekaźniki mogą się załączyć naraz.

Sterowniki 48x4: nie zapisuj tej sekcji w panelu. Mają trzeci ekspander, mcp_middle, którego formularz nie pokazuje. Zapis zostawia tylko mcp_left i mcp_right, więc wyjścia na mcp_middle przestają działać. Zmieniaj adresy w Ustawienia → Zaawansowane → Edytor YAML (YAML poniżej). To samo dotyczy każdego dodatkowego MCP23017, który dopisałeś sam w YAML.

Po zapisie adresy zostają w konfiguracji tak, jak je ustawiłeś: zmiana typu albo wersji sterownika w sekcji boneIO już ich nie zmienia. Żeby wrócić do wartości domyślnych, usuń całą sekcję mcp23017: w Ustawienia → Zaawansowane → Edytor YAML i zrestartuj aplikację.