logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak połączyć Atmel8 z PCF8575 przez I2C i sterować diodami LED?

email2002 05 Wrz 2007 20:32 3605 15
REKLAMA
  • #1 4254055
    email2002
    Poziom 11  
    Posty: 22
    Witam szanownych kolegów ! :-)
    Jestem nowym elektronikiem amatorem i mam problem z ekspanderem PCF8575 . Otóż mam mikroprocesor Atmel8 i chciałbym nawiązać połączenie I2C z PCF8575. Ekspander jest 16 bitowy. Chodzi mi aby np. na PCF8575 załączyły się dwa wejścia w stanie wysokim. Mam jeszcze nie wielki zasób wiedzy, dlatego zwracam się do Was z prośbą o pomoc. Bazuje na Bascomie.
    Mam kilka pytań :
    1)Czy do Ekspandera PCF8575 można bezpośrednio do wyjścia podłączyć diodę led z ograniczającym rezystorem
    2)W jaki sposób przydziela się PCF8575 adres w magistrali I2C, chodzi mi o to że mam np, 2 ekspandery ,to jak są rozpoznawane przez Atmel który jest który, ekspander się programuje jeszcze jakoś oddzielnie tak(jak to najprościej wykonać) ?
    3) Jak by wyglądał przykładowy działający kod Bascom załączający jedno z wyjść ekspandera ?
    Schemat połączenia Atmel8 z PCF8575 jest dla mnie jasny od strony schematu. Jak to wygląda na chłopski rozum?
    Za wszelkie odpowiedzi serdeczne dzięki, pozdrawiam
  • REKLAMA
  • #2 4255104
    Marczeli_P
    Poziom 20  
    Posty: 290
    Pomógł: 35
    Ocena: 12
    Jezeli zaczynasz zacznij zabawe z jego bratem PCF8574
    jest 8 bitowy ma prostrzy protokol transmisji.
  • #3 4255400
    robson24-78
    Poziom 20  
    Posty: 341
    Pomógł: 21
    Ocena: 15
    Wydaje mi się że adres ekspandera ustawia się "na stałe" za pomocą połączenia nóżek adresowych do plusa bądź masy (tak jest np. w pamięciach działających na I2C)...
  • #4 4256919
    email2002
    Poziom 11  
    Posty: 22
    Spróbował bym z 8 bitowym PCF8574 lecz aktualnie mam PCF8575 16 bitowy i nie chcę już robić zakupów póki co, wole się pomęczyć z tym. I jakoś opanuje ten protokół , jak już do niego dojdę :-)
  • #5 4258408
    Marczeli_P
    Poziom 20  
    Posty: 290
    Pomógł: 35
    Ocena: 12
    Zgadza sie adres ustawiany jest przez zwieranie do masy nuzek adresowych. Ale aby nawiazac komunikacje pierwsze nalezy wyslac sygnal startu nastepnie bajt adresu, ack,1 bajt do portu 0 , 1 bajt do portu 1, ack, stop.
  • REKLAMA
  • #6 4258966
    email2002
    Poziom 11  
    Posty: 22
    Programowanie po przez zwarcie do masy tak. To programowanie odbywa się już po połączeniu z mikroprocesorem tak. Ja to rozumiem tak, jeśli będę w błędzie proszę mnie poprawić:
    1) Łączę mikroprocesor z PCF8575 trzema liniami : sda, scl + gnd
    2) Załączam układ mikroprocesora i przy odpowiednim połączeniu nóżek z PCF8575 do gnd (na stałe?) nadawany jest adres
    Czy ta nóżka adresowa może być dowolna z PCF8575?, prócz oczywiście trzech linii .
    Czyli można wnioskować ,że im więcej ekspanderów na linii ,tym ekspander ma mniej wyjść ,bo rośnie zapotrzebowanie na dodatkowe nóżki adresowe,tak?
    Czy moje wnioskowanie jest poprawne?
  • REKLAMA
  • #7 4261531
    Marczeli_P
    Poziom 20  
    Posty: 290
    Pomógł: 35
    Ocena: 12
    Pkt. 1 dobrze,
    Pkt 2 Numery wyprowadzen 21-a0, 2-A1, 3-A2 ustawiamy adres teoretycznie do procka mozna podpiac 8 ukladow na jednej magistrali. Lecz to teoria nie bede tego tlumaczyl ale w rzeczywistosci mniej. Jezeli masz dwa ukladu to masz dostepne 32l inie danych jezeli zw. o jeden uklad masz kolejne 16 linii itd.
  • #8 4261930
    email2002
    Poziom 11  
    Posty: 22
    Czyli to te wejścia : 21-a0, 2-A1, 3-A2 zwiera się do masy ? żeby ustawić adres ?
  • #9 4262808
    Konto nie istnieje
    Poziom 1  
  • #10 4262910
    email2002
    Poziom 11  
    Posty: 22
    To ja mam jeszcze pytanie : czy istnieje możliwość rozszerzenia magistrali I2C o większą ilość adresów niż 8.
    Można dać dodatkowy mikroprocesor, ale czy jest inne wyjście aby na jednej magistrali zrobić większą ilość adresów.
    Czy jeśli na wyjściu ekspandera dam diode led z rezystorem to zjaram coś, czy muszę użyć jakiegoś przetwornika jeszcze?
  • #11 4263081
    Konto nie istnieje
    Poziom 1  
  • #12 4263270
    email2002
    Poziom 11  
    Posty: 22
    Dzięki ,bardzo dużo się dowiedziałem od was
    pozdrawiam

    Dodano po 29 [minuty]:

    Patrzyłem te multipleksery, tz że jedną z linii mikroprocesora odpowiadającą I2C mam podłączyć do wyjścia multipleksera a do wejść I2C z ekspandera ,dobrze chwytam tak?, a pózniej sterowanie multiplekserem odbywa się bitami adresowymi tak?

    Dodano po 4 [minuty]:

    A to w moim przypadku to bardziej przyda się Demultiplekser tak a nie multiplekser
  • REKLAMA
  • #13 4266397
    email2002
    Poziom 11  
    Posty: 22
    Siema
    Mam jeszcze jedno pytanie, doczytałem się jeszcze czegoś takiego.
    Czy wszystkie te warunki muszą być spełnione przy połączeniu ekspandera
    Rysunek pierwszy :
    czy to znaczy że SDA, ma być połączone przez R do Vcc i przez C do GND a następnie z punktu połączenia SDA-R-L do SDA na mikroprocesorze
    Rysunek drugi :
    Podobnie się tyczy połączenie linii przerwania,tak?
    Rysunek trzeci:
    Pn-czyli co?, każde wyjście ma być łączone przez kondensator do GND
    Czy te warunki mają być spełnione ? w każdym układzie, a może tyczą się tylko konkretnych przypadków ?
    Załączniki:
    • Jak połączyć Atmel8 z PCF8575 przez I2C i sterować diodami LED? pcf.JPG (22.64 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #15 4266743
    email2002
    Poziom 11  
    Posty: 22
    wiesz ,trochę nie sprecyzowałeś swojej wypowiedzi, co mam dać, dwa w szeregu do plusa,tak?
  • #16 4269693
    email2002
    Poziom 11  
    Posty: 22
    Czy mógłby ktoś udzielić bardziej rzeczowej odpowiedzi?

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy połączenia mikrokontrolera Atmel8 z 16-bitowym ekspanderem portów PCF8575 za pomocą magistrali I2C oraz sterowania diodami LED. Ustalono, że adres ekspandera ustawia się fizycznie poprzez zwieranie nóżek adresowych A0, A1, A2 do masy lub plusa, co pozwala na podłączenie do 8 układów na jednej magistrali I2C. Komunikacja I2C wymaga sygnału startu, wysłania adresu, potwierdzenia (ACK) oraz przesłania dwóch bajtów danych odpowiadających dwóm portom PCF8575. Zalecane jest stosowanie rezystorów podciągających (np. 10 kΩ) na liniach SDA i SCL do Vcc. W kwestii sterowania diodami LED, PCF8575 może bezpośrednio zasilać diody, ale anoda powinna być podłączona do Vcc, gdyż układ może dostarczyć do 25 mA prądu w kierunku wyjścia (IOH), natomiast w przeciwnym kierunku prąd jest ograniczony do około 1 mA. Rozszerzenie liczby urządzeń na magistrali powyżej 8 adresów wymaga zastosowania multiplekserów lub demultiplekserów linii I2C, co jest bardziej zaawansowanym rozwiązaniem. Przykładowy kod w Bascom do sterowania wyjściami PCF8575 nie został podany, ale schemat połączenia obejmuje linie SDA, SCL oraz masę. Wskazano również, że dla poprawnej pracy magistrali I2C konieczne jest podciągnięcie linii do Vcc rezystorami, a kondensatory na liniach sygnałowych nie są standardowym wymogiem i zależą od konkretnego zastosowania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA