rozbudowa układu

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Michał17
Użytkownik
Posty: 329
Rejestracja: 07 sty 2006, 14:25
Lokalizacja: Łódź

rozbudowa układu

Post autor: Michał17 » 20 cze 2006, 17:57

Planowałem zastosować układ 74HCT138 (dekoder adresowy) aby można było dobudować więcej układów do jednego procka. Ale mam jeden problem. Nie mogę znealeść układu podobnego do ULN2003 który sprawdzałby czy na dodatkowej linii jest logiczna 1. Zna ktoś taki układ??

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 20 cze 2006, 19:52

hej,

niech Cię to co w załączniku nie przerazi...to taki I/O expander
potrojone wejście i potrojone wyjście...sumarycznie 24 bity IN i 24 bity OUT :)
bez dekodera adresowego :)

jak działa ta zabawka...

jak widzisz, na schemacie jest narysowana taka jakby lokalna
magistrala do niej zapięte są:
- zatrzaski LATCH pracujące jako wyjścia
- trójstanowe bufory pracujące jako wejścia
linie wejściowe układów U1,U2,U3 oraz __wyjściowe__ U4,U5,U6
połączone są ze sobą i podpięte do np. jednego z portów procesora (Z1)
Linie sterujące sygnałami LOAD rejestrów Latch, a także
zezwoleniami /G buforów są zapięte na osobne łącze (Z2) - to do drugiego
portu procesora - w sumie potrzeba 8+6 bitów...

aby zapisać dowolną wartość do rozszerzonego portu,
port I/O procesora nalezy przestawić na OUT (zmieniając zawartość
odpowiedniego DDR-a), wystawić na porcie daną, a następnie
na chwilkę wystawić 1 na odpowiedniej linii load (któregoś z U1,U2,U3),
potem znowu 0...

aby odczytać coś z rozszerzonego portu - należy port procesora
przestawić na input (znowu zmieniając DDR-a), potem aktywować
jeden z układów U4,U5,U6 zmieniając stan jego linii /G z 1 na 0,
gdy będzie tam 0 - odczytać port procka i ustawić z powrotem linię /G na 1.
to spowoduje, że bufor wejdzie w stan odcięcia i nie będzie
przeszkadzać na naszej lokalnej magistrali

tu masz data-sheet do '573 (latch)
:arrow: http://jpkc.hfut.edu.cn/2006/singlechip ... 4LS573.pdf

można też użyć '574 - rejestr D
:arrow: http://eshop.engineering.uiowa.edu/NI/p ... 009815.pdf
ale należy pamiętać, że do niego zapisuje narastające zbocze
sygnału zegarowego...tak naprawdę to możesz wstawić jakikolwiek z nich
jedyne różnice będą w sposobie oprogramowania tego modułu

no, a tu dokument o '541:
:arrow: http://www.electronballet.com/DataSheet ... /74541.pdf

te kostki, które wstawiłam na schemat są o tyle miłe w użyciu,
że posiadają ładnie poukładane wyprowadzenia - z jednej strony wejścia,
z drugiej wyjścia... taki np. '373 ma wszystko pomieszane :???:

no, więc może tak spróbuj... :?:
te kostki są bardzo tanie, pcb będzie prosta do zrobienia... :idea:

aha, no oczywiście do wyjść Q układów U1,U2,U3 zapinasz
te swoje ULN...ale może 2804 a nie 2003 ponieważ ULN2804 ma __osiem__ wyjść,
będzie akurat na osiem bitów portu :idea:

uff, no to tak mniej więcej...ale jak szaleć to szaleć, co nie?
:roll:

tasza


ps.
schemacik malowany w KiCAD 8)
Załączniki
io_exp.GIF
(22.26 KiB) Pobrany 245 razy

Michał17
Użytkownik
Posty: 329
Rejestracja: 07 sty 2006, 14:25
Lokalizacja: Łódź

Post autor: Michał17 » 21 cze 2006, 8:21

Dzięki. Tylko czym się różnią kostki '573 od '541 :?:

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 21 cze 2006, 9:35

'573 to ośmiobitowy zatrzask/rejestr wyjściowy (z wyjściami trójstanowymi)
'541 to ośmiobitowy bufor magistrali z wyjściami trójstanowymi.
Załączyłam linki do dokumentacji, proszę poczytać.

tasza

ODPOWIEDZ