RTV forum PL | NewsGroups PL

Rozszerzenie I/O w ATmega128: multiplekser czy demultiplekser z pamięcią stanu?

Rozszerzenie liczby wejść/wyjść w mikrokontrolerze

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Rozszerzenie I/O w ATmega128: multiplekser czy demultiplekser z pamięcią stanu?

Goto page 1, 2  Next

Robbo
Guest

Wed Oct 23, 2013 6:58 pm   



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

Jakub Rakus
Guest

Wed Oct 23, 2013 7:13 pm   



On 23.10.2013 20:58, Robbo wrote:

Quote:
Może ktoś podsunie jakieś inne rozwiązanie? Może jakiś układ z
komunikacją szeregową.

PCF8574


--
Pozdrawiam
Jakub Rakus

Artur Miller
Guest

Wed Oct 23, 2013 7:21 pm   



On Wed, 2013-10-23 at 20:58 +0200, Robbo wrote:

Quote:
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ą.

http://ww1.microchip.com/downloads/en/devicedoc/21952a.pdf

@

BartekK
Guest

Wed Oct 23, 2013 7:27 pm   



W dniu 2013-10-23 20:58, Robbo pisze:
Quote:
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.
Zamiast 5 oporników możesz wrzucić drabinkę gotową

http://www.junun.org/MarkIII/Manual/images/bigcomponents/Resistor_pack.jpg
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.



--
| Bartłomiej Kuźniewski
| sibi@drut.org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338173

Adam Górski
Guest

Thu Oct 24, 2013 8:49 am   



W dniu 2013-10-23 21:13, Jakub Rakus pisze:
Quote:
On 23.10.2013 20:58, Robbo wrote:

Może ktoś podsunie jakieś inne rozwiązanie? Może jakiś układ z
komunikacją szeregową.

PCF8574


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


Adam

Robbo
Guest

Thu Oct 24, 2013 12:06 pm   



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

Piotr Gałka
Guest

Thu Oct 24, 2013 12:14 pm   



Użytkownik "Robbo" <niemam@gmail.com> napisał w wiadomości
news:52690d63$0$2170$65785112@news.neostrada.pl...
Quote:
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?

Lepiej według jakiego kryterium ?

100kHz mniej sieje niż 10MHz.
P.G.

BartekK
Guest

Thu Oct 24, 2013 12:21 pm   



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

Użytkownik "Robbo" <niemam@gmail.com> napisał w wiadomości
news:52690d63$0$2170$65785112@news.neostrada.pl...
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?

Lepiej według jakiego kryterium ?
100kHz mniej sieje niż 10MHz.
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.


--
| Bartłomiej Kuźniewski
| sibi@drut.org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338173

Robbo
Guest

Thu Oct 24, 2013 4:25 pm   



Quote:
Lepiej według jakiego kryterium ?

Chodzi o szybkość transmisji.

Quote:
100kHz mniej sieje niż 10MHz.

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

Robbo

AK
Guest

Thu Oct 24, 2013 4:51 pm   



W dniu 23.10.2013 20:58, Robbo pisze:
Quote:
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) --
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

Quote:
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


Jakub Rakus
Guest

Thu Oct 24, 2013 6:40 pm   



On 24.10.2013 18:25, Robbo wrote:
Quote:
Lepiej według jakiego kryterium ?

Chodzi o szybkość transmisji.

100kHz mniej sieje niż 10MHz.

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

Robbo

"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.

--
Pozdrawiam
Jakub Rakus

Robbo
Guest

Thu Oct 24, 2013 8:59 pm   



Quote:
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.

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

Robbo

BartekK
Guest

Thu Oct 24, 2013 9:31 pm   



W dniu 2013-10-24 22:59, Robbo pisze:
Quote:
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.

To jest klawiatura 4 strzałki i klawisz Enter, w sumie 5 sygnałów.
To może wszystkie klawisze obsługiwać na 1pinie - analogowo (kodowanie

rezystancyjne)


--
| Bartłomiej Kuźniewski
| sibi@drut.org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338173

sundayman
Guest

Thu Oct 24, 2013 11:00 pm   



W dniu 2013-10-24 23:31, BartekK pisze:
Quote:
W dniu 2013-10-24 22:59, 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.

To jest klawiatura 4 strzałki i klawisz Enter, w sumie 5 sygnałów.
To może wszystkie klawisze obsługiwać na 1pinie - analogowo (kodowanie
rezystancyjne)

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 Smile

Piotr Gałka
Guest

Wed Oct 30, 2013 3:01 pm   



Użytkownik "shg" <shogoonn@gmail.com> napisał w wiadomości
news:6553f10d-73fe-43f3-8eee-0eec102d001d@googlegroups.com...

Quote:
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.).

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 Smile.
P.G.

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Rozszerzenie I/O w ATmega128: multiplekser czy demultiplekser z pamięcią stanu?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map