Rozszerzenie liczby wejść/wyjść w mikrokontrolerze

Witam,

Tworzę układ z wykorzystaniem mikrokontrolera ATmega128. Zabrakło mi trzech linii wejść-wyjść ogólnego przeznaczenia.

Zastanawiałem się nad rozszerzeniem liczby wejść (będą do nich podłączone, za pośrednictwem transoptorów, sygnały z przycisków, przełączników itp). Pomyślałem o zastosowaniu 8 albo 16-wejściowego multipleksera. Minusem jest to, że chciałem też pod multiplekser podłączyć klawiaturę membranową, która normalnie jest podłączona bezpośrednio pod wejścia mikrokontrolera z podciąganiem (pull-up) -- przy multiplekserze, musiałbym wstawić 5 oporników w celu zasilenia. Gdybym zrezygnował z rozszerzenia liczby wejść, a skupił się na wyjściach, to pomyślałbym o demultiplekserze, przy czym to musiałby być chyba jakiś układ z pamięcią stanu wyjść, a takiego nie znam za bardzo. Może ktoś podsunie jakieś inne rozwiązanie? Może jakiś układ z komunikacją szeregową.

Pozdrawiam, Robbo

Reply to
Robbo
Loading thread data ...

PCF8574

Reply to
Jakub Rakus

formatting link
@

Reply to
Artur Miller

W dniu 2013-10-23 20:58, Robbo pisze:

Zamiast 5 oporników możesz wrzucić drabinkę gotową

formatting link
która od razu zrobi pullup na 5/6/8/ile tam chcesz linii.

A co do podłączenia - a używasz magistrali SPI (miso/mosi/sck) do czegoś? Jak masz wolne to może tam się podłącz prostym rejestrem przesuwnym z zatrzaskiem, np 74hc595 jako 8 wyjść zatrzaskiwanych (podłączony pod MOSI) oraz równocześnie 74hc165 jako wejście zatrzaskiwane (podłączony pod MISO), SCK wspólne. Banalnie się to konfiguruje i używa w programie.

Reply to
BartekK

Popieram. A jak trzeba du¿o niezbyt szybkich portów to mo¿na dodaæ PCA9544.

Adam

Reply to
Adam Górski

Mam takie pytanie. W karcie katalogowej do PCF8574 podają szybkość taktowania magistrali max. 100kHz dla I2C. W MCP23S17 jest SPI max. 10MHz. Poza tym drugi układ jest tańszy w TME niż ten pierwszy. Czy nie lepiej zatem użyć MCP23S17 zamiast PCF8574?

Robbo

Reply to
Robbo

Użytkownik "Robbo" snipped-for-privacy@gmail.com napisał w wiadomości news:52690d63$0$2170$ snipped-for-privacy@news.neostrada.pl...

Lepiej według jakiego kryterium ?

100kHz mniej sieje niż 10MHz. P.G.
Reply to
Piotr Gałka

W dniu 2013-10-24 14:14, Piotr Gałka pisze:

Nic nie stoi na przeszkodzie, by SPI chodziło z dzielnikiem F_CPU/256, czyli przy 16MHz zegara wychodzi 62,5kHz, to będzie siało jeszcze mniej. A zawsze można pstryknąć inny bit w rejestrze i masz szybciej, jak potrzeba.

Reply to
BartekK

Chodzi o szybkość transmisji.

Nie wiedziałem, że problemy z zakłóceniami są tu problemem. Ale teraz już wiem i biorę pod uwagę.

Robbo

Reply to
Robbo

W dniu 23.10.2013 20:58, Robbo pisze:

A nie prościej będzie podpiąć klawiaturę w układ matrycowy ?

4 kolumny x 4 wiersze i mamy obsłużone 20 klawiszy na 8 GPIO.

Pozdr AK

Reply to
AK

"Tu" czyli gdzie? Wszystko zależy od tego gdzie to zastosujesz, co będzie obok, jakie długie ścieżki, jak prowadzone, jaka płytka, nawet jaki projektant obwodu drukowanego - w jednym przypadku problemem będzie

50Hz, w innym dopiero 10GHz.
Reply to
Jakub Rakus

To jest klawiatura 4 strzałki i klawisz Enter, w sumie 5 sygnałów.

Robbo

Reply to
Robbo

W dniu 2013-10-24 22:59, Robbo pisze:

To może wszystkie klawisze obsługiwać na 1pinie - analogowo (kodowanie rezystancyjne)

Reply to
BartekK

W dniu 2013-10-24 23:31, BartekK pisze:

No ale skoro brakuje Ci 3 linii, a jak rozumiem masz zajęte 5 na klawiaturę, to zrób te klawisze w matrycy (3 linie), i już masz 2 zwolnione. A jak przemyślisz, to pewnie tą 1 też jakoś znajdziesz :)

Reply to
sundayman

W dniu czwartek, 24 października 2013 14:21:17 UTC+2 użytkownik BartekK napisał:

Śmieci są przede wszystkim z szybkich zboczy, przy mniejszej częstotliwości też będzie brzydko, ale rzadziej i w sumie mniejsza średnia moc emitowanych zakłóceń. I²C ma tę zaletę, że szybkość narastania jest mocno ograniczona, a szybkość opadania trochę mniej, ale też. Oczywiście to czy będzie przeszkadzało zależy od konkretnego urządzenia, projektu PCB i softu. Sam używam rejestrów przesuwnych na SPI do połączenia płyty głównej z panelem na taśmie. Taśma naprzemiennie sygnał-masa, na płytce dzielone płaszczyzny masy. Można by zresztą celowo zmniejszyć szybkość narastania wstawiając szeregowe rezystory (co przy okazji może dopasować impedancję i zmniejszyć odbicia). Sporo zakłóceń powstaje właśnie w pasożytniczych obwodach LC (ścieżki, przewody), które są wzbudzane szybkimi zboczami. Samo zbocze ma energię rozłożoną mniej więcej równo po całym widmie (ograniczone szybkością narastania), ale czasem taki kawał drutu z pojemnością na końcu potrafi ładnie zadzwonić. Szeregowy rezystor będzie rozpraszał energię z LC, a do tego ograniczając szybkość narastania zmniejsza też ilość śmieci na zasilaniu (takie cuda jak ground bounce itp.).

Reply to
shg

Użytkownik "shg" snipped-for-privacy@gmail.com napisał w wiadomości news: snipped-for-privacy@googlegroups.com...

Z ATXmega wyprowadzałem szynę 16bit. Na wszystkich liniach dałem rezystory. Po roku odkryłem, że w ATXmega można włączyć kontrolę stromości zboczy. No i mam zgryza - czy te 20 rezystorów to ma sens czy są totalnie zbędne :-). P.G.

Reply to
Piotr Gałka

Raczej nie powinny zaszkodzić, jeśli tylko dobierzesz odpowiednią stromość (nie za wolną, żeby nie przesadzić w drugą stronę).

Reply to
Jakub Rakus

U¿ytkownik "Jakub Rakus" napisa³ w wiadomo¶ci news:l4rppj$2sl$ snipped-for-privacy@node2.news.atman.pl...

¯e nie przeszkodz± to wiem. Tylko tak jako¶ nie lubiê mieæ poczucia, ¿e co¶ siê marnuje. Stromo¶ci tam dobieraæ nie mo¿na - jest albo szybko (tr = 4ns typ), albo slew rate limited (tr = 7ns typ). P.G.
Reply to
Piotr Ga³ka

16?

20 klawiszy będzie na 5x4.

Reply to
Adam Wysocki

No chyba, że te 4 klawisze będą załączane z pozostałych 16 - np. jeden przycisk na ctrl-alt-del :) Chociaż... w ósemkowym układzie liczenia wszystko się zgadza, 4x4=20 :) Żartowałem :D A na poważnie - nieraz w rękach miałem klawę, gdzie jakis przycisk, normalnie nieistniejący, był zestawiany z przynajmniej 2 innych.

Reply to
ACMM-033

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.