problem z 80c552

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. 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!
Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

problem z 80c552

Post autor: Yery » 31 paź 2006, 21:33

Mam układ oparty na procesorze 80C552 w którym znajduje sie pamieć programu Flash AT29C256, pamieć RAM 8KB i wyświetlacz LCD wszystko znajduje się w przestrzeni adresowej procka (wykorzystywany jest GAL 16V8 do podziału przestrzeni adresowej). Wiem że wszystkie układy są dobre, a problem jest taki, że całość pracuje bardzo niestabilnie, napisy na wyświetlaczu wyświetlają się litera po literze bardzo wolno by po chwili zniknąć całkowicie potem pojawiają sie jakieś krzaki, algorytm na lcd napisałem też dobrze bo wykorzystywałem go juz naście razy przy innych podobnych systemach mikroprocesorowych, niewiem co jest przyczyną takiej niestabilności, kwarc wymienialem (12MHz) kondensatory 22pF przy kwarcu też, płytke sprawdziłem omomierzem wszystkie ścieżki wydają się też ok, zasilanie jest stabilne (przynajmniej przy pomiarze woltomierzem bo oscyloskopu niemam). Przy każdym układzie znajduję się kondensator filtrujący zasilanie (tantal). Czy ktoś ma jakis pomysł albo miał juz podobny problem ?? Proszę o pomoc.
Pozdrawiam YERY

zajcew
-
Posty: 12
Rejestracja: 15 lut 2007, 14:42
Lokalizacja: Szczecin

Post autor: zajcew » 16 lut 2007, 1:24

Tantal ale jakiej pojemności
generalnie powinieneś mieć jakieś 1000uF przed i po stabilizatrze(7805) obok nich 220-470 nF ceramiczne(zależne od producenta stabilizatore) a potem przy każdym układzie warto dać 100-220 nF
ale jak znaki się pojawiają powoli to pewnie soft Ci się wiesza a przynajmniej zamula. sprawdź też czy przypadkiem program sam siebie nie resetuje np: przez wysterowanie linii "przypadkiem" zwartej z resetem

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Re: problem z 80c552

Post autor: gaweł » 16 lut 2007, 10:15

Yery pisze:Mam układ oparty na procesorze 80C552 w którym znajduje sie pamieć programu Flash AT29C256, pamieć RAM 8KB i wyświetlacz LCD wszystko znajduje się w przestrzeni adresowej procka (wykorzystywany jest GAL 16V8 do podziału przestrzeni adresowej). (...)Czy ktoś ma jakis pomysł albo miał juz podobny problem ?? Proszę o pomoc.
Pozdrawiam YERY
A może jakiś rysunek, bo z opisu słownego nie wszystko jest jasne.

Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

Post autor: Yery » 23 lut 2007, 0:23

jeśli napisze jakikolwiek program testowy przypuśćmy wystawianie na przemian zera i jedynki na jedną linię portu co 1 sekunda, prosty krótki program - działa gdy w do płytki nie jest podpięty wyświetlacz LCD, natomias gdy podepne ten wyświetlacz cały system jak wczesniej napisałem staje się nie stabilny, program wkoncu się wiesza. Pierwsze co pomyślałem gdy to zaobserwowałęm to to ze wysw. jest zepsuty, podpiołem inny to samo, jeszcze inny dalej to samo. Pomyślałem więc ze jeśli na magistrali adresowej i danych siedzi Gal, pamięć flash , ram i jeszcez wyświetlacz to może jest po prostu przeciążona i należy ją podciągnąć jakąś drabinką rezystorową do 5V. Zrobiłem to (drabinką rezystorów 10k) i nadal jest to samo. Nie długo umieszcze schemat tej płytki może ktoś dostrzeże jakiś bład. Jeśli chodzi o kondensatory to przy stabilizatorze są tantale 47uF przed i 22uF za stab. zasilacz jest z duzymi 1000uF kond. także zasilanie raczej wykluczam

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

Post autor: tasza » 23 lut 2007, 9:18

Wrzuć schemat ideowy tego układu, dobrze?
Bez tego zapiszemy się tu na śmierć....

Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

Post autor: Yery » 23 lut 2007, 10:30

mam go w starym orcadzie ze swoimi bazami jak przerobie na protela to zrobie screena i wrzuce

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 23 lut 2007, 10:38

Yery pisze:mam go w starym orcadzie ze swoimi bazami jak przerobie na protela to zrobie screena i wrzuce
Jeżeli masz to w starym orcadzie, to może zrób wydruk na drukarkę laserową np HP3, i przyślij je do mnie, to przerobię je na dowolny rysunek (np JPG) i ci je odeślę lub mogę ci udostępnić program do przerabiania takich wydruków.

Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

Post autor: Yery » 23 lut 2007, 12:01

fajnie by było gdybyś udostepnił dzieki

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 23 lut 2007, 12:38

Yery pisze:fajnie by było gdybyś udostepnił dzieki
Napisz do mnie: gawel_ap@wp.pl

Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

Post autor: Yery » 26 lut 2007, 19:19

programik jest super, dzięki a oto ten schemat o którym była mowa
http://img411.imageshack.us/my.php?image=80c552qt4.jpg

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 26 lut 2007, 20:16

Dlaczego w U2 (HC573) wejście OC (pin 1) jest nieprzyłączone. Daje to niestabilność na szynie adresowej. Te wejście należy przyłączyć do masy.

Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

Post autor: Yery » 26 lut 2007, 20:52

jest podłączone do masy przeoczylem to przepraszam

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

Post autor: tasza » 26 lut 2007, 22:46

Witam,

Czy zawartość gal-a U4 jest Twoja własna czy 'firmowa'?
Chodzi mi o poprawność zależności czasowych (a więc i równań logicznych) sygnału S0
( S0 == E czyli zapis/odcz. na opadającym zboczu tego sygnału)

Druga rzecz - zrób może taki eksperyment: zewrzyj nóżkę R/!W
wyświetlacza do masy (tylko odizoluj od A1, aby nie było zwarcia)
i wtedy zobaczymy jak się całość zachowa.
Podejrzewam chwilowe zwarcia na magistrali na skutek niekontrolowanych odczytów
z LCD...

pozdrawiam,
N.

Yery
-
Posty: 13
Rejestracja: 28 paź 2006, 17:46
Lokalizacja: Łódź
Kontakt:

Post autor: Yery » 26 lut 2007, 23:39

Zawartość Gala jest firmowa. Program nie jest moim pomysłem. Już dawno nie pracuje w tej firmie, a został mi jeden zaprogramowany GAL i pomyślałem ze sobie coś na nim zbuduje (no ale niestety jest problem). Jeśli chodzi o linię S0 to:
S0=(/(/RD*/RW)*A15*A14*A13*A12*A11*/A10*/A9)
czyli F800h - zapis instrukcji do lcd
F801h - zapis danej do lcd
F802h - odczyt flagi zajetosci (instrukcji) z lcd
F803h - odczyt danej z lcd
Nie wiem czy to ma znaczenie ale w firmie program ten działał na PAL - ach. Pomyślałem ze może gal sie nie wyrabia czasowo ale sprawdzając jego parametry stwierdziłem że to raczej nie możliwe. A jeśli chodzi o nogę R/W to sprawdzę.
pozdrawiam

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

Post autor: tasza » 27 lut 2007, 11:17

Hmm....drabinki rezystorowe na magistrali są....
Równanie dekodera też raczej* ok...
te S0...S3 to oryginalnie do czego służyły? do wycinania z mapy pamięci fragmentów na I/O...?

:arrow: Gaweł - czy S0 nie powinien być czasem zanegowany? :roll:

Słuchaj, a może jeszcze taki test - zapnij na magistralę danych układ 74LS573 (8-bit 3-state latch)
http://www.futurlec.com/74LS/74LS573.shtml , wejście LE podłącz do S0,
wejście /OE na GND i uruchom taki programik testowy:

Kod: Zaznacz cały

        org 0h
loop:
        mov DPTR,#0f800h
        mov A,#0aah
        movx @DPTR, A 
        mov A,#55h
        movx @DPTR, A 
        ljmp loop
Na wyjściach Q kostki powinny być stabilne impulsy prostokątne,
na wejściu LE powinien być sygnał taktujący latch, dane z szyny zatrzasną się na
każdym opadającym zboczu S0...
A przez stabilny przebieg na wyjściach Q rozumiem w miarę równe wypełnienie
czyli czas stanu L ~= czas stanu H.
Yery pisze:Nie wiem czy to ma znaczenie ale w firmie program ten działał na PAL - ach.
Pomyślałem ze może gal sie nie wyrabia czasowo ale sprawdzając jego parametry
stwierdziłem że to raczej nie możliwe
Raczej nie powinno mieć znaczenia, przecież taki dekoder można spokojnie zbudować
ze zwykłych kostek (bramki + np. '138/'139) - tak na oko z całkowitym czasem propagacji ~50...100ns dla kostek LS.
Przy zegarze 12MHz to nie powinno się jeszcze dawać we znaki, tak sądzę...

Natasza

[ Dodano: 2007-02-27, 11:46 ]
A ja się jednak uczepię tego GAL-a i sygnału S0....
Popatrzcie tu: http://www.kmitl.ac.th/~kswichit%20/805 ... 51sbc.html
jak jest zrobiony sygnał sterujący strobem modułu LCD...

ODPOWIEDZ