Łączenie układów scalonych magistralą I2C - wskazówki aplikacyjne
W jaki sposób wykorzystać I2C do utworzenia sprawnego szeregowego łącza między układami scalonymi - artykuł przedstawia fizyczną implementację magistrali I2C, strukturę protokołu i jej popularne zastosowania.
Urządzenia I2C
Jedną z największych zalet magistrali I2C jest niezwykle duża liczba urządzeń, które je wykorzystują. Płytka demonstracyjna firmy Microchip Technologies zawiera kilka przykładów typów układów scalonych, które zawierają magistralę I2C lub jedną z jej pochodnych, takich jak SMBus.
Układ PIC16F677 firmy Microchip Technology to 8-bitowy mikrokontroler, który znajduje zastosowanie w wielu wbudowanych projektach. Korzysta on z synchronicznego portu szeregowego, który można zastosować do komunikacji z szeregowym interfejsem urządzeń peryferyjnych (SPI) lub I2C z innymi sterownikami lub urządzeniami peryferyjnymi (ilustracja 3).
Ilustracja 3: Układ PIC16F677 firmy Microchip Technology to 8-bitowy mikrokontroler, zawierający synchroniczny port szeregowy (zaznaczony na pomarańczowo), który może zostać zaprogramowany jako magistrala SPI lub I2C. (Źródło ilustracji: Microchip Technology)
Ten mikrokontroler obsługuje zarówno tryb nadrzędny, jak i podrzędny I2C przy użyciu 7- lub 10-bitowego adresowania. Wykorzystuje on wtyk SCK/SCL dla sygnału zegara SCL I2C oraz wtyk SDI/SDA dla sygnału danych.
Te dwa wtyki są podłączone do linii SCL i SDA na magistrali I2C, aby umożliwić komunikację z innymi urządzeniami. Często podłącza się w ten sposób czujniki oparte na I2C, takie jak dwuprzewodowy szeregowy czujnik temperatury TCN75AVOA713 firmy Microchip Technology (ilustracja 4).
Ilustracja 4: Czujnik temperatury TCN75A firmy Microchip Technology jest podłączony do mikrokontrolera PIC16F677 w celu przesyłania danych dotyczących temperatury. (Źródło ilustracji: Microchip Technology)
Ilustracja 5: Ekspander wejść-wyjść MIC74YQS-TR firmy Microchip Technology konwertuje strumienie danych szeregowych na niezależne równoległe linie wejść-wyjść. (Źródło ilustracji: Microchip Technology)
Dzięki możliwości komunikacji szeregowej, czujnik ten ma większą funkcjonalność. Jego wewnętrzne, programowane przez użytkownika rejestry mogą być wykorzystywane do ustawiania rozdzielczości pomiaru temperatury, ustawiania trybu wyłączania oszczędzającego energię, a nawet do ustawiania alertu danych wyjściowych, kiedy zakres temperatury przekracza ustawione granice.
Istnieje również szereg urządzeń, które dekodują strumień danych szeregowych I2C i konwertują go na dane równoległe. Warto wziąć pod uwagę dwuprzewodowy ekspander wejść-wyjść MIC74YQS-TR i kontroler wentylatora firmy Microchip Technology (ilustracja 5).
Ten układ scalony jest w pełni programowalnym ekspanderem wejść-wyjść zapewniającym osiem niezależnych linii wejść-wyjść. Linie wejść-wyjść mogą być indywidualnie programowane jako samo wejście lub samo wyjście. Ilustracja 5 przedstawia urządzenie MIC74YQS-TR z ośmioma diodami LED pod kontrolą magistrali szeregowej. Jest to podobny schemat do zastosowania MCO23008 na płytce demonstracyjnej I2C na ilustracji 1. Układ MIC74YQS-TR w połączeniu z regulatorem mocy może również sterować prędkością obrotową silnika wentylatora za pomocą czterech najbardziej znaczących bitów.
Podsumowanie
Magistrala I2C i jej pochodne są obecne w setkach układów scalonych wszystkich typów, dzięki czemu można je łatwo łączyć w wielopoziomowe projekty i zastosowania. Sprzężenie sygnałów mieszanych i czujników analogowych rozszerza zakres systemów wbudowanych opartych na mikrokontrolerach. Wszystko to dzięki prostemu, dwuprzewodowemu, szeregowemu interfejsowi cyfrowemu.
Autor: Art Pini
Kontakt w Polsce
Arkadiusz Rataj
Sales Manager Central Eastern Europe & Turkey
Digi-Key Electronics Germany
0048 696 307 330
arkadiusz.rataj@digikey.com
poland.support@digikey.pl