ilania

Jul 23, 2024 Last reply: 1 year ago 12 Replies

W ramach zabawy z "antycznymi" rozwiązaniami zacząłem ostatnio eksperymentować z kilkoma egzemplarzami 8048, które leżały u mnie w szufladzie. Złożyłem układ testowy na płytce i napisałem program do migania diodami w asemblerze. Scalak bliżej niezidentyfikowanego producenta działa bez jakichkolwiek zastrzeżeń. Natomiast gdy włożyłem w podstawkę MAB8048H od Philipsa, zaczynają się dziać dziwne rzeczy - przeważnie program nie startuje po podłączeniu zasilania, czasem startuje i działa chaotycznie. Układ resetu jest wykonany zgodnie z notą katalogową - z wykorzystaniem kondensatora 1uF i rezystora 1k (ograniczający prąd zwarcia po naciśnięciu przycisku). Próbowałem zwiększyć kondensator przy pinie reset (najpierw do 2,2uF, potem do 10uF) oraz zastosować inny rezonator kwarcowy (z 6MHz do 4MHz). Jeśli ręcznie wykonam reset, to program działa już stabilnie. Wszystkie posiadane egzemplarze MAB8048H zachowują się w ten sam sposób więc wątpię, żeby chodziło o jakieś losowe uszkodzenie konkretnego egzemplarza.



Ktoś ma pomysł co może odpowiadać za takie zachowanie?


Tu masz cos specyficznie do MAB8048

formatting link
reset wygląda jakby zgodnie z Twoim opisem. Ale piszą, ze powinien trwac co najmniej 10ms ...

Czyli chyba nie 10ms jest problemem.

Wzbudzanie/stabilizacja pracy kwarcu może być problemem.

najlepiej byłoby oscyloskopem czy analizatore zobaczyc, co się dzieje przy takim nieudanym starcie.

J.

Teraz jeszcze dodatkowo zmodyfikowałem układ resetu, wpinając pomiędzy pin RST i plus zasilania diodę Schottky'ego (wpiętą katodą do plusa) - w ten sposób przy zaniku zasilania kondensator szybko rozładuje się, wymuszając stan niski na RST. Nie ma to jednak żadnego wpływu na opisywany problem.

Z tego co widzę, to potrzeba znacznie więcej niż 10 ms. Jeśli po podłaczeniu zasilania trzymam reset przez co najmniej kilka sekund, to układ się uruchamia.

Właśnie też teraz przyszło mi do głowy, że może przy tym konkretnym modelu generator potrzebuje więcej czasu, żeby zacząć pracować poprawnie po podłączeniu zasilania. Możliwe, że układ wymaga jakiegoś konkretnego rodzaju rezonatora? A może te współczesne różnią się czymś istotnym od historycznych?

Ok, podpiąłem oscyloskop. Wszystko wskazuje na to, że winę za takie zachowanie układu ponosi generator sygnału zegarowego. Na tym lepiej działającym egzemplarzy 8048 impulsy na linii ALE pojawiają się właściwie natychmiast po podłączeniu zasilania. Na tym gorzej działającym mija trochę czasu, zanim pojawi się tam stabilny sygnał - od ułamka sekundy, nawet do kilku sekund. Dodatkowo ten pierwszy scalak nie ma najmniejszego problemu z wystartowaniem generatora, gdy do pinu X1 podłączona jest sonda oscyloskopu. Ten drugi w takich warunkach nie chce ruszyć.

Jakie będzie najlepsze rozwiązanie? Szukać innego kwarcu? Zmienić (zwiększyć?) pojemność kondensatorów przy kwarcu? W tej chwili stosuję

22 pF.

Ok. Wygląda na to, że pomogła sztuczka z rezystorem 1M podłączonym równolegle do kwarcu.

Ogolnie - nie widzę powodów, aby kwarc ruszał jakies sekundy. Ułamek sekundy to tak. Te 10ms może być potrzebne, aby napięcie zasilające się ustabilizowało, i procek nie pracował w dziwnych warunkach.

Może i stabilna praca kwarcu, z pełną dokładnością, wymaga jakiejs rozgrzewki, ale procesor ruszy na róznych częstoliwościach.

Natomiast jak widać - kwarce mają swoje narowy. Pojemnosci, jak widac rezystory, overtony ...

Jest jeden niuans - normalnie tam jest jakis wzmacniacz/bramka. Jeden pin od kwarcu jest wyjsciem, drugi wejsciem. Na wejsciu sygnał słaby, i oscyloskop potrafi go stłumic. Na wyjsciu bramki sygnał solidny ... o ile jest pełna bramka.

I teraz - różne wersje, w szczególności NMOS i CMOS, mogą mieć odwrócone piny. W jednym oscyloskop zablokuje na X1, w drugim na X2.

A w tym MAB jeszcze jakos inaczej - patrze na fig 6 - zewnętrzny zegar trzeba doprowadzic do obu pinów.

Fajnie, ze rezystor pomógł, bo szukanie może być wredne.

Normalnie on sluży do "linearyzacji bramki" i zamiany na wzmacniacz, ale jak widać - sobie radzą bez niego. Ale jak też widać - nie zawsze :-)

J.

To znaczy wyglądało to tak, jakby próbował ruszyć - był widoczny jakiś chaotyczny sygnał (nie przyglądałem mu się bliżej). Dopiero po tym okresie od ułamka sekundy do kilku sekund pojawiała się stabilna sinusoida. I jeśli wtedy zrobiłem ręczny reset, to wszystko działało poprawnie.

Hmm... Okazuje się, że o ile rezystor pomógł, to nie wyeliminował problemów w zupełności. Układ ciągle miewa problemy z rozruchem - tym razem już tylko po podłaczeniu zasilania po dłuższej przerwie. Próbowałem wymienić kondensatory przy kwarcu (najpierw na 27pF, potem na

18pF) ale nie było różnicy. Zwiększenie kondensatora przy RST do 10 uF także nie rozwiązuje sprawy. Gdy rezonator już się wzbudzi, to wszystko pracuje poprawnie i stabilnie. Próbowałem trzech różnych rezonatorów: dwóch 6MHz i jednego 4MHz. Może oczekuje jakiegoś konkretnego typu rezonatora? Może nie lubi się ze współczesnymi, tymi w niskich obudowach?

Nie jest to problemem, bo mam zapas 8048 od różnych producentów. Po prostu nie daje mi spokoju pytanie, dlaczego akurat te MAB8040H od Philipsa mają ten problem z rozkręceniem generatora, a wszystkie inne działają poprawnie. MAB8050 swoją drogą także nie ma tego problemu...

Tak pewnie było, ale to raczej nie jest normalne zachowanie kwarcu.

Powinno rozwiązać o tyle, ze jeśli po dłuzszym czasie kwarc dobrze startuje, to 10uF zapewnia dłuższy czas. Ale ciągle za mały?

A Ty masz jakies plany z tym związane? Bo nie bardzo wiem, do czego by można 8048 dziś użyć ...

Też jestem ciekaw. Pojemności? Rodzaj pracy ("szeregowy"/równoległy) ... no ale przeciez pracują z innymi prockami. Amplitudy/energie drgan?

J.

Z ciekawosci poszukałem dokumentacji Intela

formatting link
na stronie 35 (2-9) jest opis ... pobieżny bardzo. Tyle, ze napisali, ze X1 to wejscie. No i "completely self-contained" ... wbudowane kondensatory ?

Na strona 48 (2-22) jest cieakwie, ale to o 8021 Kondensatory niepotrzebne ? Tak to jakos dziwnie napisali, ze nie wiem. Chyba wbudowane. Do generacji wystarczy jeden rezystor 10k - bez kwarcu.

ale juz na stronie 105 (5-1) są 2*20pF, z ciekawą notką. "A standard series resonant XTAL [...] will provide better than 1% accuracy. If higher accuracy is required, a parallel resonant XTAL should be specified, which will operate with a load capacitance of 20-25pF.

For more information see Intel Application Note AP-35"

I dalej pełno schematów z kondensatorami.

Jakby podobnie jak ten MAB.

J.

Pewnie wykorzystam je jeszcze w jakichś projektach hobbystycznych. Lubię projekty retro, a trochę różnych części udało mi się zebrać przez lata i czasem wykorzystuję je do złożenia czegoś. Sam też trochę nie wierzyłem, że przy skromnych parametrach można do czegokolwiek wykorzystać 8048. Jednak ostatnio miałem do zrobienia pewien drobny projekt i z ciekawości zrobiłem go właśnie na tym MCU, zamiast na jakiejś Atmedze. Działa i robi co ma robić, a pisanie kodu a asemblerze jest fajną rozrywką intelektualną. ;) Oczywiście nigdy nie użyłbym takiego elementu w projekcie robionym na zamówienie albo w czymś, od czego wymaga nie się niezawodności i niskiego poboru prądu. Jednak jakieś amatorskie projekty - jak najbardziej da się na tym zrobić.

Wygląda na to, że kluczowy był kwarc. Znalazłem jeszcze jeden 10 MHz w wysokiej obudowie, wyglądający na stary. Po jego zastosowaniu MAB8048H zaczął się zachowywać znacznie lepiej - startuje stabilnie nawet bez rezystora 1M i z kondensatorem 1uF na linii RST.

Tylko musisz dodawac zewnętrzny rom z programem. To chyba juz lepiej jakiegos atmelka użyc.

Z drugiej strony - dla starego kwarca kluczowy był procesor :-)

J.

Różnych EPROM-ów też mi się trochę nazbierało przez lata. Wykorzystuję je co prawda w różnych projektach komputerów retro, ale to będzie dodatkowa okazja, żeby je wykorzystać.

Jasne. Gdybym musiał zrobić coś na szybko, to pewnie użyję Attiny/Atmegi, jakiegoś PIC-a, Arduino nano albo którejś z płytek z STM32. Jednak tutaj mówimy o relatywnie prostych projektach robionych dla frajdy i w ramach intelektualnej rozrywki, bo tak traktuje programowanie w asemblerze. No i jednak takie układy sprawdzą się w projektach komputerów retro, jako podzespoły wspomagające - na pewno pasują tam bardziej od jakiejś Atmegi. ;)

Większym problemem jaki potencjalnie widzę może być debugowanie. Nie ma wbudowanego UART-a, więc nie wyprintuję sobie żadnych wiadomości. O sprawdzeniu stanu programu jakimś debugerem też można zapomnieć. Z drugiej strony pewnie są jakieś symulatory, więc przynajmniej fragmenty kodu pewnie będzie się dało wcześniej przetestować w wirtualnym środowisku.

Na razie prosty kawałek kodu wykorzystujący część możliwości układu udało mi się bez większych problemów napisać w dwa wieczory.

Trochę dziwne jest to, że tylko egzemplarze od Philipsa są takie wybredne, jeśli chodzi o kwarc. Te od NEC-a oraz innego producenta (którego nie byłem w stanie zidentyfikować po oznaczeniach) działały poprawnie ze współczesnymi rezonatorami.

Nawet nie oto chodzi - mini projekt, po procek słaby, a płytka sie rozbudowuje.

a) softwareowy, b) I2C czy inny wyswietlacz, c) Cos tam piszą o pracy krokowej. d) symulator Epromu.

Albo kwarc jakis wybredny.

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required