Procesory 8051/MCS51 czesto pracuja w tandemie z 74HC373/74HC573 wspoldzielac szyne adresow i danych dla pierwszych 8 bitow.
Ja to czesto bywa w urzadzeniach z lat 90-tych, parametry konfiguracyjne urzadzenia sa zapamietywane w pamieci NVRAM, wlutowanej bezposrednio w PCB. Gdy NVRAM padnie, urzadzenie jest martwe (8051 ma WatchDoga i steruje plytka PSU, wiec kompletny brak oznak zycia)
W plytce z procesorem, dekodowanie przestrzeni adresowej jest prowadzone przy pomocy 74HC139 liniowego dekodera 2->4.
Linie adresowe A13 i A14 sa doprowadzone do IP1, IP2, a wyjscie Y2 jest polaczone z wejsciem ~CE pamieci RAM/NVRAM 2kB x 8bit.
Lokuje to NVRAM w zakresie C000 - C7FF.
Linia ~OE pamieci NVRAM jest podlaczona do lini ~RD 8051.
Wylutowalem chip NVRAM, naprawiono 1 zepsuta sciezke (upewniono sie, ze A7 linia ma polaczenie z A7 linia 74HC573, a linia DA7/Q7 z linia D7 NVRAM).
Wstawilem 80C51 z wewnetrznym FLASH, w ktorym wstawilem edytor pamieci(EA do VCC, aby startowal z wewn. pamieci ROM), oraz wstawilem do plytki NVRAM 2kB x8 wypelniony bajtami FF do plytki... i probowalem odczytac zakres pamieci NVRAM.
Ku memu zdziwieniu wydaje sie, ze D7 nie jest odczytywany poprawnie i nie rozumiem dlaczego..
Pierwsze 127 bajtow gdzie D7 powinien byc 1, jest 0, natomiast zakres 128-256 D7 jest juz 1 poprawnie.
Nastepnie wypelniono NVRAM ciagiem 00, i ponownie odczytano po montazu w plytce.
Tak samo jak poprzednio linia D7 jest odczytywana jako 0 dla pierwszych 127 bajtow, a 1 dla 128-256.
Nie rozumiem w jaki sposob w ogole D7 moze byc zle odczytany, kiedy inne D0-D6 sa dobrze odczytane, przeciez odczyt jest sterowany w ten sam sposob chipem 74HC573?
Czy ktos ma pomysl w jaki sposob taki blad odczytu moze zachodzic?
Caly wysilek po to, zeby byc w stanie w przyszlosci odczytac NVRAM, bez wylutowywania, i zabezpieczyc jego zawartosc na wypadek gdy w koncu bateria w nim padnie, aby byc w stanie rozwiercic NVRAM i podlaczyc zewnetrzna baterie, a nastepnie zaprogramowac go ponownie.
Urzadzenie ma malo miejsca i NVRAM + podstawka juz blokuje wstawienie innej plytki, wiec trzeba bedzie "obnizyc" wysokosc NVRAM.. wiec bede musial torturowac NVRAM-y i wyciagac z nich baterie i chip SRAM i probowac zrobic jakiegos golego pajaka..
