Analiza technologii kaskadowej MCP23017E/SS I2C dla aplikacji sieciowych z wieloma urządzeniami
16 września 2025 Wiadomości — Wraz z szybkim rozwojem Przemysłu 4.0 i technologii IoT, zapotrzebowanie na możliwości rozszerzania wejść/wyjść urządzeń stale rośnie. Układ rozszerzający I/O MCP23017-E/SS 16-bitowy, wprowadzony przez Shenzhen Anxinruo Technology Co., Ltd., dzięki swoim potężnym możliwościom rozszerzania interfejsu i elastycznym opcjom konfiguracji, staje się ważnym wyborem dla sterowania przemysłowego, inteligentnego domu i urządzeń IoT.
MCP23017-E/SS wykorzystuje interfejs I²C do rozszerzenia 16-bitowego I/O, obsługując kaskadowe połączenie do 8 urządzeń za pomocą 3 pinów adresowych i oferuje szybką komunikację 400 kHz z konfigurowalnym wyjściem przerwania. Układ posiada 16 niezależnie programowalnych GPIO, obsługujących ustawianie kierunku wejścia/wyjścia, wewnętrzne rezystory podciągające i inwersję polaryzacji. Z zakresem napięcia roboczego 2,7V-5,5V, każdy port I/O może zapewnić prąd wyjściowy 25mA, a pobór mocy w trybie czuwania jest poniżej 1μA. Umieszczony w obudowie SSOP-28 klasy przemysłowej, zapewnia kompleksowe rozwiązanie rozszerzania interfejsu dla systemów wbudowanych.
Główne moduły funkcjonalne
1. Moduł interfejsu komunikacyjnego
Interfejs szeregowy I²C
SCL: Pin wejściowy zegara szeregowego
SDA: Dwukierunkowa linia danych szeregowych
Obsługuje tryb standardowy (100 kHz) i tryb szybki (400 kHz)
![]()
2. Moduł dekodowania adresów: 3-bitowy adres sprzętowy obsługuje kaskadowe połączenie 8 urządzeń
3. Moduł kontroli przerwań: Zapewnia podwójne wyjścia przerwań (INTA/INTB)
4. Moduł konwersji danych: Implementuje konwersję danych szeregowych na równoległe
5. Moduł GPIO: 16-bitowe programowalne porty I/O
6. Bank rejestrów: Przechowuje parametry konfiguracyjne i stan kontroli
Przebieg pracy
1. Konfiguracja inicjalizacji
Konfiguracja rejestrów kontrolnych za pośrednictwem interfejsu I²C
Ustaw kierunek I/O, rezystory podciągające i inne parametry
2. Komunikacja danych
Host wysyła polecenia kontrolne i dane za pośrednictwem I²C
Serializer konwertuje dane szeregowe na dane równoległe
Rejestry konfiguracyjne aktualizują odpowiednie ustawienia
3. Obsługa przerwań
Zmiany stanu GPIO wyzwalają logikę przerwań
Piny INTA/INTB wysyłają sygnały przerwań do hosta
Host odczytuje rejestr flagi przerwania, aby określić źródło przerwania
Zalety:
Wysoka integracja: 16-bitowe rozszerzenie I/O zaimplementowane w jednym układzie
Elastyczna konfiguracja: Każdy port I/O może być programowany niezależnie
Niskie zużycie energii: Prąd czuwania < 1μA
Silna zdolność napędowa: Prąd wyjściowy 25mA na port
1. Operacja zapisu bajtu
![]()
Opis taktowania:
Warunek startu (S): Master generuje sygnał startu
Kod operacji urządzenia (OP): 7-bitowy adres urządzenia (0100AAA) + bit flagi zapisu (0)
Adres rejestru (ADDR): Określa docelowy rejestr do zapisu
Wejście danych (DIN): Dane do zapisania w rejestrze
Warunek stopu (P): Master generuje sygnał stopu
2. Operacja zapisu sekwencyjnego
Opis taktowania:
Warunek startu (S): Host generuje sygnał startu
Kod operacji urządzenia (OP): 7-bitowy adres urządzenia + bit flagi zapisu
Adres rejestru (ADDR): Określa adres rejestru początkowego
Wejście danych (DIN): Ciągle zapisuje wiele danych z automatycznym zwiększaniem adresu
Warunek stopu (P): Host generuje sygnał stopu
3. Definicje kluczowych sygnałów
|
Symbol |
Znaczenie
|
Opis |
| S |
Warunek startu |
Sygnał startu |
| SR |
Powtórzony start |
Sygnał powtórzonego startu |
| P | Warunek stopu | Sygnał stopu |
| W | Bit zapisu (0) | Flaga operacji zapisu |
| R | Bit odczytu (1) | Flaga operacji odczytu |
| OP | Kod operacji urządzenia | Kod operacji urządzenia (0100AAA + R/W) |
| ADDR | Adres rejestru | Adres rejestru |
| DIN | Wejście danych | Dane wejściowe (Host → MCP23017) |
| DOUT | Wyjście danych | Dane wyjściowe (MCP23017 → Host) |
4. Parametry charakterystyki taktowania
Szybkość komunikacji: Obsługuje 100 kHz (tryb standardowy) i 400 kHz (tryb szybki)
Ważność danych: Dane SDA muszą pozostać stabilne podczas wysokiego poziomu SCL
Warunek startu: SDA przechodzi z wysokiego na niski, gdy SCL jest wysoki
Warunek stopu: SDA przechodzi z niskiego na wysoki, gdy SCL jest wysoki
5. Uwagi dotyczące zastosowania
Adres urządzenia: 0100AAA, gdzie AAA jest określone przez piny A2/A1/A0
Transmisja danych: MSB pierwszy, 8-bitowe dane + 1-bitowy ACK
Sygnał potwierdzenia: Odbiornik generuje sygnał ACK po każdym bajcie
Wymagania dotyczące taktowania: Muszą spełniać parametry specyfikacji I²C (tSU, tHD, itp.)
Ten diagram taktowania ilustruje kompletny protokół komunikacyjny I²C układu MCP23017-E/SO, dostarczając dokładnych odniesień taktowania dla programowania urządzenia i integracji systemu.
Piny portu GPIO
| PORT B (GPB) - Piny 1 do 8 |
PORT A (GPA) - Piny 21 do 28 |
|
GPB0 (Pin 1) |
GPA7 (Pin 21) |
|
GPB1 (Pin 2) |
GPA7 (Pin 22) |
|
GPB2 (Pin 3) |
GPA7 (Pin 23) |
|
GPB2 (Pin 4) |
GPA7 (Pin 24) |
|
GPB2 (Pin5) |
GPA7 (Pin 25) |
|
GPB2 (Pin 6) |
GPA7 (Pin 26) |
|
GPB2 (Pin 7) |
GPA7 (Pin 27) |
|
GPB2 (Pin 8) |
GPA7 (Pin 28) |
1. Piny zasilania
VDD (Pin 9): Wejście zasilania dodatniego (2,7V do 5,5V)
VSS (Pin 10): Masa zasilania
2. Piny kontrolne i konfiguracyjne
RESET (Pin 18): Wejście resetu (aktywne niski)
INTA (Pin 19): Wyjście przerwania PORT A
INTB (Pin 20): Wyjście przerwania PORT B
![]()
3. Piny konfiguracji adresu
A0 (Pin 15): Bit wyboru adresu I2C 0
A1 (Pin 16): Bit wyboru adresu I2C 1
A2 (Pin 17): Bit wyboru adresu I2C 2
4. Piny specjalne
NC (Piny 11, 14): Brak połączenia
Podkładka termiczna (dół): Podkładka rozpraszająca ciepło, musi być uziemiona
5. Charakterystyka obudowy
Typ obudowy: SOIC-28
Rozstaw pinów: 1,27 mm
Temperatura pracy: -40°C do +85°C
Projekt termiczny: Dolna podkładka termiczna musi być podłączona do płaszczyzny masy PCB
Ta konfiguracja pinów przyjmuje standardową obudowę SOIC-28, zapewniając niezawodne rozwiązanie rozszerzania I/O dla sterowania przemysłowego i systemów wbudowanych. Wszystkie piny GPIO obsługują niezależną konfigurację i zdolność napędową 25mA.
Tryby operacji protokołu
1. Operacja zapisu pojedynczego bajtu
2. Operacja zapisu sekwencyjnego wielobajtowego
3. Operacja odczytu pojedynczego bajtu
4. Operacja odczytu sekwencyjnego wielobajtowego
5. Mieszany tryb operacji
![]()
Kluczowe cechy protokołu
Zarządzanie wskaźnikiem adresu
Wskaźnik adresu automatycznie aktualizuje się podczas operacji zapisu
Wskaźnik automatycznie zwiększa się podczas sekwencyjnych operacji odczytu/zapisu
Obsługuje ciągły dostęp przez granice rejestrów
Ważność danych
Dane pozostają stabilne podczas wysokiego poziomu SCL
Każdy bajt wymaga potwierdzenia (ACK/NACK)
Transmisja MSB-first
Mechanizm obsługi błędów
Wykrywanie braku potwierdzenia (NACK) przez slave
Ochrona przed przekroczeniem limitu czasu magistrali
Obsługa rozciągania zegara
Wymagania dotyczące taktowania
|
Parametr |
StandardMode |
Tryb szybki |
|
SCLFrequency |
100kHz |
400kHz |
|
Czas konfiguracji |
250ns |
100ns |
|
Czas wstrzymania |
300ns |
90ns |
Ten protokół jest w pełni kompatybilny ze standardową specyfikacją I²C, zapewniając elastyczne metody transmisji danych, które obsługują zarówno tryby transferu pojedynczego bajtu, jak i serii. Umożliwia wydajną konfigurację i kontrolę wszystkich rejestrów funkcyjnych w MCP23017.

