[podstawy] "Powielanie" portów mikrokontrolera

Temat z zakresu "absolutne podstawy". Przepraszam, ale zajmuję się tym czysto hobbystycznie i nie odebrałem właściwie żadnego formalnego wykształcenia w tym zakresie.

Jest sobie mikrokontroler z serii MSC430.

Do niego podłączony jest wyświetlacz na HD44780, zajmując tym samym 6 z 8 wyprowadzeń. Dużo trochę. I trochę mało zostaje.

Wymyśliłem sobie, że chciałbym (wykorzystując te same wyprowadzenia, które zajmuje wyświetlacz), podłączyć tam przekaźniki.

Narysowałem sobie coś takiego:

formatting link
ę się nie sugerować nazwami układów na schemacie.

Opis: Po lewej stronie podłączamy 5 wyprowadzeń mikrokontrolera. Po prawej stronie u góry - część wyprowadzeń wyświetlacza, po prawej u dołu - bistabilne przekaźniki. W zależności od stanu pierwszej linii mikrokontrolera, sterujemy albo wyświetlaczem, albo przekaźnikami.

I pytania:

  1. Dobrze kombinuję? Ma to szanse działać?
  2. Nawet, jeżeli dobrze kombinuję - oznacza to 2 układy 4081 + jakiś inwerter. 3 scalaki, dla zastosowania w sumie trywialnego i bardzo prostego. Czuję przez skórę, że istnieje 1 scalak, realizujący dokładnie tę funkcję.
  3. Odnoszę wrażenie, że atakuję otwarte drzwi, i niepotrzebnie komplikuję prosty problem - jak się realizuje takie rzeczy, gdybym chciał, żeby było "profesjonalnie"?
  4. Tak, wiem, że można wziąć procesor z większą liczbą portów.
Reply to
Yakhub
Loading thread data ...

W dniu 21.10.2010 15:59, Yakhub pisze:

Witam Jednym scalakiem zawierającym przerzutniki typu LATCH lub D można to załatwić. Dodatkowo w takim przypadku przekaźniki nie muszą być bistabilne (ale mogą).

Pozdrawiam Grzegorz

Reply to
Grzegorz Kurczyk

Yakhub pisze:

Rozmnażając wejścia, trzeba wziąć pod uwagę specyfikę podłączanych urzadzeń. Skoro podłączasz np. wspomniany wyświetlacz, to do linii danych możesz podpiąć również układy sterujące przekaźnikami. Wystawiasz na nich "na stałe" poziomy przeznaczone dla przekaźników. Natomiast wysyłając coś do wyświetlacza, wystawiasz odpowiednie wartości dla niego przeznaczone, zapisujesz, po czym wystawiasz z powrotem wartości dla przekaźników, które mają na tyle dużą bezwładność, że nie zauważą chwilowej zmiany. Oczywiście pod warunkiem, że pomiędzy wysyłaniem kolejnych danych na wyświetlacz dasz odpowiednie przerwy. Inny popularny sposób rozmnożenia wejść/wyjść to rejestry przesuwne.

Reply to
ajt

Użytkownik "Yakhub" snipped-for-privacy@gazeta.pl napisał w wiadomości news: snipped-for-privacy@wazzenon.pl...

Sterujemy to za duże słowo, bo nieaktywne w danej chwili wyjścia mogą być tylko w stanie 0. Jeśli to ograniczenie Ci nie przeszkadza, są gotowce realizujące mniej więcej to samo (demultiplexery) ale z drugiej strony umiejętne użycie sygnału CS pozwala w ogóle ich nie używać (deaktywujesz urządzenie i niech sobie będzie na wejściach co chce). Jeśli chcesz mieć możliwość wystawiania dowolnych kombinacji stanów na niezależne wyjścia (lub zbierania stanów wejść), to proponuję rejestry przesuwne z zatrzaskami (również są gotowce).

e.

Reply to
invalid unparseable

W ksiazce Programowanie mikrokontrolerów AVR w języku Bascom Marcina Wiązani jest przedstawiony scalak pcf8574 dzieki temu mozesz miec ogromna ilosc portow poswiecajac chyba 2-czy 3 wyprowadzenia na iic. strona 276

formatting link

Reply to
ptoki

Dnia Thu, 21 Oct 2010 16:38:08 +0200, Grzegorz Kurczyk napisał(a):

Czyli, jak rozumiem na przykład układ 4042 ?:

formatting link
O ile dobrze zrozumiałem, to nie jestem w stanie tego wykorzystać, żeby przełączać odbiorniki, a co najwyżej do zapamiętywania aktualnego stanu wyjść?

Reply to
Yakhub

Dnia Thu, 21 Oct 2010 16:47:59 +0200, ajt napisał(a):

Nie zaprzeczę, że to rozwiązanie najbardziej mi przypadło do gustu (brak jakichkolwiek dodatkowych układów, a z oprogramowaniem sobie poradzę).

Jedno tylko pytanie: na ile "profesjonalne" czy "zgodne ze sztuką" ;) jest takie rozwiązanie? Na ile będzie to pewne w działaniu? Czy w urządzeniach produkowanych fabrycznie też się robi takie rzeczy, czy też jest to raczej uproszczone druciarstwo dla hobbystów-amatorów?

Reply to
Yakhub

Dnia Thu, 21 Oct 2010 17:40:48 +0200, entroper napisał(a):

Kompletnie mi to nie przeszkadza. Wyświetlacz ma własną pamięć, przekaźniki bistabilne także.

O ile dobrze rozumiem działanie, to demultiplekser pozwala mi na zapalenie tylko jednego wyjścia na raz(?)

formatting link

Reply to
Yakhub

Na przykład CD4094.

formatting link
Do sterowania wystarcza 3 wyprowadzenia. Mozna łączyć w łańcuch. Taniej nie będzie chyba.

A najprościej zmienić kontroler.

Reply to
Sebastian Biały

W dniu 21.10.2010 18:22, Yakhub pisze:

To się nazywa "magistrala" i jest z powodzeniem stosowane od wielu lat w różnej postaci. Najprostszy przykład - po 1 bicie w każdą stronę - to SPI, gdzie masz 3 współdzielone linie i po jednym ChipSelect/SlaveSelect na endpoint.

Reply to
Michoo

Dnia Thu, 21 Oct 2010 18:37:19 +0200, Sebastian Biały napisał(a):

Dziękuję.

Wiem o tym :). Jednak bardziej, niż rozwiązanie problemu interesują mnie poznanie różnych metod jego rozwiązywania.

Reply to
Yakhub

Yakhub potrzebuje śrubokręta, a ty mu warsztat samochodowy proponujesz. W jego przypadku wystarczy zatrzask równolegle do wyświetlacza i inwerter do CSa.

Waldek

Reply to
Waldemar Krzok

druciarstwo. Żeby była z tego magistrala, jak Michoo pisze, to potrzeba jeszcze jednego zatrzasku np. 74HC573 żeby pamiętać stan dla przekaźników.

Marek

Reply to
Marek Lewandowski

Pewnie i tak, w tym przypadku. cd4094 kosztuje te 1,30zl a pcf8574 6zl. (tme). Elastycznosc pcf-a wieksza no i elegancja. :) Wiec w ogolnosci warto znac oba rozwiazania...

Reply to
ptoki

Użytkownik "Yakhub" snipped-for-privacy@gazeta.pl napisał w wiadomości news:1xankmpgv3hec$. snipped-for-privacy@wazzenon.pl...

Są też podwójne d-muxy 2->4 (potrzebne 2) no i muxy analogowe (czyli de facto sterowane klucze np. coś z serii DG4xx) ale to rozwiązanie może być nieco za wolne (potwierdzi ktoś?). BTW, sposób jest raczej mało elegancki więc za bardzo się w tę stronę nie zagłębiaj :)

e.

Reply to
invalid unparseable

No tak, wychodzi czytanie bezwzrokowe. Oczywiście poleganie na "bezwładności" to druciarstwo i prędzej czy później się zemści.

Reply to
Michoo

Użytkownik "Waldemar Krzok" snipped-for-privacy@zedat.fu-berlin.de> napisał w wiadomości news: snipped-for-privacy@mid.uni-berlin.de...

Jak już, to zatrzask do przekaźników z oddzielnym CS-em i ma pełną swobodę kontaktu z wyświetlaczem w dwie strony +święty spokój z przekaźnikami (lub czymkolwiek innym w ich miejscu).

e.

Reply to
invalid unparseable

Po co oddzielny CS? Ma 6 linii: D0-D3, R/W, CS. No to jest CS == 1 to display, CS == 0 to zatrzask. lub na odwrót; R/W to R/W :-)

Waldek

Reply to
Waldemar Krzok

Dnia Thu, 21 Oct 2010 19:05:35 +0200, Waldemar Krzok napisał(a):

Może i tak, ale w sumie - rozwiązanie fajne i eleganckie (tylko 1 scalak). A IIC i tak zamierzam męczyć. Do tego informacja o książce, w której najwyraźniej jest trochę ciekawych informacji, pomimo, że tytuł nie ma nic wspólnego z moim tematem :).

Tak, czy inaczej - dziękuję.

Reply to
Yakhub

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.