Wpis z mikrobloga

Mirki! Potrzebuję trochę pomocy z MCP23017(albo chociaż jakikolwiek inny expander portów) i arduino. Jest ktoś kto ogarnia i jest w stanie mi odpowiedzieć na kilka prostych pytań?


2. Jeden expander jeszcze ok, ale co jeżeli muszę podłączyć aż 3?


3. Widziałem w MCP23017 porty INT A i INT B(to są te od przerwań, tak?). W takim razie jak wygląda przerwanie podłączone do expandera zamiast do µC? Przecież jest on podłączany do analoga, a nie pinu od przerwań.


4. Ogólna pomoc adresami, ustalaniem stanów itd. będzie mi potrzebna


#kiciochpyta #elektronika #arduino #expander #ekspander #porty
  • 24
@Tassadar: A może zna i odpowie?

@Wyrewolwerowanyrewolwer:

1. zazwyczaj część adresu kostki jest stała a część zależy od podłączenia 3 pinów do masy lub zasilania. W tym wypadku możesz podłączyć osiem ekspanderów. Jak to jest dokładnie pewnie jest w DS...

2-> 1

3. Ekspander generuje przerwanie (zależy jak go skonfigurujesz), możesz to podłączyć do pinu uC i skonfigurować w uC jako external interrupt albo zamiast adresować kostkę i czytać bajt
@Wyrewolwerowanyrewolwer: Nie. Ściągnij dataszita, strona 17 masz piękny flowchar. Wyżej masz napisane za co odpowiada każdy pin. Ogólnie pierwszy bajt wygląda tak:

S OP W

gdzie:

S - start condition - tu specyfikacja I2C, jak coś to mogę opisać.

OP - opcode - to co cię interesuje czyli za dataszitem

0 1 0 0 A2 A1 A0 czyli siedem bitów - ósmy mówi o tym, czy będziesz do kostki zapisywał dane
@Analityk: (#)

Z datasheetami niezbyt sobie radzę.

Rozumiem, że operując na 3 bitach ustawiam jego adres, tak?

Z tej stronki kod:

// Chip addresses are 0100 + 3 bits of unique address

int addr1 = 0b00100000;

int addr2 = 0b00100001;

Czyli stały jest: 0b00100, a 3 ostatnie zależą od podłączenia a0, a1 i a2 do masy tak?
@Wyrewolwerowanyrewolwer: Ten bit jest ważny jeśli chcesz do czegoś tej kostki użyć.


Jak chcesz tylko ustawiać lub zerować linie to musisz do takiego typu pracy przygotować układ po uruchomieniu. Musisz wysłać adres z W, podać numer (adres) rejestru konfiguracyjnego, podać wartość jaka ma tam trafić, jeśli trzeba to taką sekwencję powtórzyć. Generalnie nie będziesz musiał czytać nic z kostki.

Ale jeśli będziesz musiał, to musisz wysłać OP z R, wysłać jeszcze