Projekt uP

Zadaj tu pytanie, jeśli nie wiesz w jaki sposób zrobić układ realizujący założone funkcje.
Grigor
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 8
Rejestracja: czw 24 lis 2005, 11:05
Lokalizacja: Lublin
Kontaktowanie:

Projekt uP

Postautor: Grigor » czw 24 lis 2005, 11:10

Mam do wykonania projekt układu mikroprocesorowego w którym zwiększono liczbę przerwań zewnętrznych do 32(uP 8051)bardzo prosze o pomoc!!!

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » czw 24 lis 2005, 21:04

Byc moze chodzi o cos takiego...
Oprocz takiego ukladu byc moze chcesz sprawdzac ktora konkretnie linia wywolala przerwanie. Wtedy albo kazda z linii wejsciowych podlaczasz do jakiejs "nieprzerwaniowej" linii uC (jesli tyloma dysponujesz) albo korzystasz z multipleksera. Kiedy pojawia sie przerwanie, oprogramowanie sprawdza na ktorej linii jest stan niski - i podejmuje odpowiednie dzialanie.

Jesli impulsy wejsciowe sa krotkie (i jest mozliwosc ze zanim sprawdzimy co i jak, impuls sie skonczy), mozna rozbudowac uklad o rejestry zatrzaskowe strobowane sygnalem przerwania i czyszczone "recznie" przez uC... ale nie wiem czy jest sens rysowac wiec pytam...
Pozdr.

PS: NOR na schemacie to np. 4002 :)
Załączniki
32int.JPG
(7.58 KiB) Pobrany 1296 razy

Grigor
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 8
Rejestracja: czw 24 lis 2005, 11:05
Lokalizacja: Lublin
Kontaktowanie:

Projekt z uP

Postautor: Grigor » pt 25 lis 2005, 0:01

Dzięki wielkie proszę jeszcze jak można o drobne wyjaśnienie tego schematu w prostszy sposób.Z tego co mi się wydaje to przewrwanie na tym schemacie jest przyjmowane poziomem niskim na INT0(IT0=0)jeżeli na każdych wejściach są jedynki i na którymś pojawi sie zero co będzie oznaczać zgłoszenie przerwania nie wiem czy dobrze myślę?pewno nie :oops: pytałem się trochę i wiem ze można to zbudować też na kontrolerach przerwań np.8253(cztery)w jaki sposób można je podłączc?a także na zatrzaskach wiem że to może byc trudne do zrobienia ale proszę o jakiś częściowy schemat żebym może zrozumiał :oops: dzięki wielkie za zainteresowanie i pomoc.Nie jestem za dobry w tym temacie staram się pojąć uP8051 ale ten projekt mnie przerasta :(

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » pt 25 lis 2005, 1:14

Coz... skoro nie znasz '51 to - jesli mozesz - nie poznawaj... Powaznie. Bedziesz mial traume na cale zycie. Zabierz sie za cos co uzywa sie wspolczesnie... 51 jest wymierajaca rodzina ukladow - pomimo ogromnego, wrecz maniackiego uporu niektorych, by wymagac od nich tego czego nie potrafia.

A do rzeczy: Przerwanie jest przyjmowane poziomem niskim i zglaszane poziomem niskim - tak sie standardowo robi. Czyli dokladnie tak jak opisales - 0 na ktorejkolwiek linii powoduje wygenerowanie przerwania.

Przy tej ilosci linii uklad na zatrzaskach bedzie dosc duzy i skomplikowany. Ukladami 8259 - bo zapewne o nie chodzi - nie zajmowalem sie wczesniej. Zajrze do dokumentacji i zobacze co bedzie lepiej dzialac.

A na razie zachecam do zastanowienia sie nad zmiana mikroprocesora (jesli to mozliwe) - uklad przerwan mozna zastosowac taki sam ale gwarantuje ze bol glowy bedzie mniejszy ;) '51 jest "klasycznym" rozwiazaniem - co nie znaczy ze dobrym.

Pozdr.

P.S. Wybor ukladow uC jest duzy - ja "jak zwykle" polecam moje ulubione AVR :)
http://www.atmel.com/products/AVR/

jadzwin
Raczkujący użytkownik 4
Raczkujący użytkownik 4
Posty: 22
Rejestracja: pn 26 wrz 2005, 21:08

Postautor: jadzwin » pt 25 lis 2005, 11:26

Np. ATMEga 164 spelnai Twoje potrzeby 32 pzrerwaznia zewnetrzne :)

Pozdr
Jadzwin

Gość

Postautor: Gość » pt 25 lis 2005, 22:15

Niestety na razie muszę zostać przy '51 nakaz odgórny :lol: ten pomysł z bramkami jest świetny i myślę że zostanę przy nim ale nie wiem czy to wystarczy bardzo wymagającemu mojemu prowadzącemu zajęcia i chciałbym zobaczyć jak można zrobić te przerwania na sterownikach 8259 i czy one są kompatybilne wogóle z tym procesorem? Dzieki wielki już i tak za tę pomoc z waszej strony pozdro.

Grigor
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 8
Rejestracja: czw 24 lis 2005, 11:05
Lokalizacja: Lublin
Kontaktowanie:

projekt z uP

Postautor: Grigor » sob 26 lis 2005, 12:26

Niestety na razie muszę zostać przy '51 nakaz odgórny :lol: ten pomysł z bramkami jest świetny i myślę że zostanę przy nim ale nie wiem czy to wystarczy bardzo wymagającemu mojemu prowadzącemu zajęcia i chciałbym zobaczyć jak można zrobić te przerwania na sterownikach 8259 i czy one są kompatybilne wogóle z tym procesorem? Dzieki wielki już i tak za tę pomoc z waszej strony pozdro.[/quote]

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » sob 26 lis 2005, 22:58

Schemat wersji z 16 przerwaniami - rozbudowa do 32 to tylko kwestia dolozenia 2 scalakow. 8259 niezbyt mi sie spodobal - ta wersja umie praktycznie to samo a mniej roboty z programowaniem tego ukladu.
Dla przejrzystosci schematu narysowalem wyjscia tylko D0 i D1.

BTW: Uczciwie ostrzegam: Jesli pojdziesz do pracy i "popelnisz" taki uklad to raczej nie licz na awans :/
A prowadzacego ktory jest na tyle ograniczony ze kaze wam wymyslac takie sadomaso marnujace czas i pieniadze - radze traktowac ze spora rezerwa. Ale zdaje sobie sprawe ze na uczelniach jest takich dinozaurow mnostwo :( Sam mialem z jednym do czynienia... Coz, zycze powodzenia :)
Pozdr.
Załączniki
16int.JPG
(35.45 KiB) Pobrany 1150 razy

Grigor
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 8
Rejestracja: czw 24 lis 2005, 11:05
Lokalizacja: Lublin
Kontaktowanie:

Postautor: Grigor » ndz 27 lis 2005, 0:51

co oznaczają wyjścia OE,LE i D0,D1 jakie są jego odpowiedniki w '51 ,do jakich wejśc je podpiąć w nim? dzięki narazie pozdro

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » ndz 27 lis 2005, 3:58

OE przelacza wyjscia zatrzaskow w stan wielkiej impedancji. Dzieki temu mozna uzyc linii D0-D15 do czegos innego...
LE zatrzaskuje stan wejsc, mozna by tutaj dac jakis przerzutnik... chodzi o to ze jesli stan niski na linii przerwania trwa krocej niz procesor zdazy wczytac linie D0-D15 to nie wiemy na ktorej linii to przerwanie sie pojawilo.
D0-D15 (tak jak wczesniej napisalem, narysowalem tylko D0 i D1) sluza do sprawdzenia na ktorej linii pojawilo sie przerwanie.

Ogolnie zasada dzialania jest taka:
- Na ktorejs linii przerwania pojawia sie stan niski
- Powoduje to pojawienie sie stanu niskiego na linii -INT
- Stan niski na -INT powoduje ustawienie przerzutnika dolaczonego do LE (nie ma na schemacie) i zatrzasniecie przez to stanu linii wejsciowych
- Powoduje rowniez wygenerowanie przerwania w uC
- uC podaje stan niski na linii OE co powoduje pojawienie sie stanu linii D0-D15 z chwili wygenerowania przerwania
- uC sprawdza ktora linia jest "niska" i podejmuje stosowne dzialanie
- uC podaje stan wysoki na OE (zwalniajac szyne) i zeruje przerzutnik LE powodujac powrot do stanu oczekiwania na przerwanie.

Moze troche pokrecone ale tak jest kiedy ma sie za zadanie wywazac otwarte drzwi :/ Mam nadzieje ze uklad w tym pomoze ;)
Pozdr

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » ndz 27 lis 2005, 4:09

Zeby nie bylo watpliwosci, dolaczam uklad przerzutnika.
Sam przerzutnik to np. polowa HC109.
Linia EOI (End Of Interrupt) powoduje powrot do oczekiwania na przerwanie - tak jak opisalem wczesniej.
Pozdr.
Załączniki
ff.JPG
(5.14 KiB) Pobrany 1132 razy


Wróć do „Podzespoły i układy”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika. i 35 gości