-
1. Data: 2020-01-12 20:13:19
Temat: HD44780 na magistrali CPU przestaje działać
Od: Atlantis <m...@w...pl>
Jakiś czas temu w celach czysto edukacyjnych zacząłem tworzyć pewien
projekt, którego celem miało być bliższe poznanie niskopoziomowego
działania systemów mikroprocesorowych oraz nauczenie się programowania w
asemblerze. W tym celu zacząłem przenosić jeden ze swoich wcześniejszych
projektów (zrealizowany oryginalnie na współczesnym, 32 bitowym MCU) na
archaiczną architekturę 6502. Konkretnie sercem układu była CMOS-owa
wersja mikroprocesora: WDC65C02.
Zacząłem od montażu płytki z CPU, pamięciami (EPROM i RAM), dekoderem
adresów oraz prostym portem na 373, aby dzięki kilku migającym diodom
wiedzieć, że sprzęt działa i program jest wykonywany. Diody zaczęły
migać, czyli wszystko ok.
Potem przyszła kolej na kolejną płytkę. Umieściłem na niej kolejny
(lokalny) dekoder adresów, wyświetlacz HD44780 oraz kilka przycisków
podłączonych do portu wejściowego, zrealizowanego na 74HCT245. Elementy
te pracują bezpośrednio na magistrali systemowej, a ich rejestry są
dostępna dla procesora w przestrzeni adresowej. Wszystko ruszyło z
miejsca - byłem w stanie wyświetlać tekst na wyświetlaczu, program
reagował na wciśnięcie przycisków.
Tutaj zrobiłem sobie przerwę i projekt na jakiś czas wylądował na półce.
Ostatnio jednak wykonałem trzecią płytkę. Ta także zawiera swój lokalny
dekoder adresów, a także m.in. timer (MC6840), UART (MOS6551), RTC oraz
GPIO (8255). Podłączyłem płytkę do wolnego gniazda na tasiemce, łącząc
ją z magistralą systemową. Podłączyłem zasilanie i... Urządzenie zaczęło
działać tylko połowicznie.
Krótko mówiąc:
1) Płyta procesorowa nadal działa, program się wykonuje, diody migają.
2) Płytka z wyświetlaczem nie działa. Wyświetlacz jest pustym ale chyba
przechodzi inicjalizację, bo właśnie jest pusty - nie widać na nim dwóch
rzędów złożonych z prostokątów, które wyświetlają się na
niezainicjowanym HD44780.
Na pewno nie ma tutaj konfliktu adresów, bo lokalny dekoder adresów na
trzeciej płytce jest sterowany osobną, niewykorzystywaną nigdzie indziej
linią CS z głównego dekodera - sprawdzałem.
Kolejną rzeczą, która przyszła mi do głowy było uszkodzenie któregoś z
układów, zakłócające działanie magistrali. Zacząłem je więc po kolei
usuwać. Dopiero po usunięciu wszystkich układów z podstawek (łącznie z
dekoderem adresów) udało mi się powrócić do punktu wyjścia - wyświetlacz
znów zaczął działać prawidłowo, ale tylko na chwilę. Dopóki płytka
(choćby pozbawiona układów) jest podłączona, układ działa niestabilnie -
wyświetlacz raz pokazuje tekst, a po ponownym odłączeniu i podłączeniu
zasilania już nie chce.
Dopiero fizyczne odłączenie nowej płytki od magistrali przywraca
normalną pracę.
Ktoś ma jakiś pomysł gdzie w ogóle mogę zacząć debugowanie?
-
2. Data: 2020-01-19 17:16:37
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: Krzysiek <r...@k...net.pl>
W dniu niedziela, 12 stycznia 2020 20:13:54 UTC+1 użytkownik Atlantis napisał:
> Ktoś ma jakiś pomysł gdzie w ogóle mogę zacząć debugowanie?
Trochę to wygląda na problemy sprzętowe - za długa magistrala, zbyt duże pojemności
itp.
Najbardziej przydałby się oscyloskop, by sprawdzić przebieg sygnałów, jakieś
dzwonienia albo zbyt wolne zbocza.
-
3. Data: 2020-01-19 18:47:43
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: "J.F." <j...@p...onet.pl>
Dnia Sun, 12 Jan 2020 20:13:19 +0100, Atlantis napisał(a):
> Kolejną rzeczą, która przyszła mi do głowy było uszkodzenie któregoś z
> układów, zakłócające działanie magistrali. Zacząłem je więc po kolei
> usuwać. Dopiero po usunięciu wszystkich układów z podstawek (łącznie z
> dekoderem adresów) udało mi się powrócić do punktu wyjścia - wyświetlacz
> znów zaczął działać prawidłowo, ale tylko na chwilę. Dopóki płytka
> (choćby pozbawiona układów) jest podłączona, układ działa niestabilnie -
> wyświetlacz raz pokazuje tekst, a po ponownym odłączeniu i podłączeniu
> zasilania już nie chce.
>
> Dopiero fizyczne odłączenie nowej płytki od magistrali przywraca
> normalną pracę.
>
> Ktoś ma jakiś pomysł gdzie w ogóle mogę zacząć debugowanie?
Daj wolniejszy kwarc/generator zegara.
Mozliwe, ze juz sie objawiaja jakies pojemnosci sciezek magistrali.
Bo zakladam, ze skoro czasem dziala, to na dodatkowej plytce nie ma
jakiegos zwarcia.
J.
-
4. Data: 2020-01-21 12:59:26
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: Atlantis <m...@w...pl>
On 19.01.2020 18:47, J.F. wrote:
> Daj wolniejszy kwarc/generator zegara.
> Mozliwe, ze juz sie objawiaja jakies pojemnosci sciezek magistrali.
Procesor jest w tej chwili taktowany zegarem 4 MHz. Płytki są trzy, o
powierzchni zbliżonej do kartki formatu B5, połączone taśmą IDC40. PCB
jednostronne, z dużą liczbą mostków wykonanych kynarem po stronie elementów.
Czy to możliwe, żeby przy takiej konstrukcji i tej prędkości już
wystąpiły problemy z pojemnością ścieżek?
> Bo zakladam, ze skoro czasem dziala, to na dodatkowej plytce nie ma
> jakiegos zwarcia.
Jak na razie żadnego nie zauważyłem.
-
5. Data: 2020-01-21 13:27:05
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5e26e79e$0$518$6...@n...neostrada.
pl...
On 19.01.2020 18:47, J.F. wrote:
>> Daj wolniejszy kwarc/generator zegara.
>> Mozliwe, ze juz sie objawiaja jakies pojemnosci sciezek magistrali.
>Procesor jest w tej chwili taktowany zegarem 4 MHz. Płytki są trzy, o
>powierzchni zbliżonej do kartki formatu B5, połączone taśmą IDC40.
>PCB
>jednostronne, z dużą liczbą mostków wykonanych kynarem po stronie
>elementów.
>Czy to możliwe, żeby przy takiej konstrukcji i tej prędkości już
>wystąpiły problemy z pojemnością ścieżek?
Daj wolniejszy kwarc, to sie szybko dowiesz :-)
Kwarc masz bez dzielnikow ?
IMO - 4MHz to dosc duzo jak na oryginalny 6502 i oryginalny HD44780.
Ale czy teraz robia nadal takie wolne kosci ?
J.
-
6. Data: 2020-01-21 19:21:47
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: Atlantis <m...@w...pl>
On 21.01.2020 13:27, J.F. wrote:
> Daj wolniejszy kwarc, to sie szybko dowiesz :-)
>
> Kwarc masz bez dzielnikow ?
W tym konkretnym układzie nie używam rezonatora, wstawiłem oscylator
kwarcowy o częstotliwości 4MHz. Nie stosuję też dzielników. Pod ręką nie
mam żadnego przestrajanego generatora, więc musiałbym albo kupić
wolniejszą wersję, albo zbudować jakiś zamiennik. :)
> IMO - 4MHz to dosc duzo jak na oryginalny 6502 i oryginalny HD44780.
> Ale czy teraz robia nadal takie wolne kosci ?
Oryginalny MOS6502 pracował z częstotliwością 1 MHz, wersja "A" mogła
być taktowana zegarem 2 MHz. Tyle tylko, że w tym projekcie użyłem
współcześniejszej wersji CMOS (WDC65C02), która może być taktowana o
wiele wyższymi częstotliwościami, sięgającymi chyba nawet 20 MHz.
Wyświetlacz na HD44780 też jest raczej relatywnie nowy, wyprodukowany
raczej kilka-kilkanaście niż kilkadziesiąt lat temu. Pamięci SRAM są
raczej z tych wolniejszych, o czasie dostępu powyżej 100ns.
Niemniej warto zauważyć, że sama płytka procesorowa działa bez problemu
przy 4 MHz (kod do migania diodami). Stabilnie działał też zestaw płytka
CPU + płytka wyświetlacza. Problemy pojawiły się dopiero przy próbie
podłączenia trzeciego modułu.
-
7. Data: 2020-01-21 20:57:30
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: "J.F." <j...@p...onet.pl>
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5e27413c$0$525$6...@n...neostrada.
pl...
On 21.01.2020 13:27, J.F. wrote:
>> Daj wolniejszy kwarc, to sie szybko dowiesz :-)
>> Kwarc masz bez dzielnikow ?
>W tym konkretnym układzie nie używam rezonatora, wstawiłem oscylator
>kwarcowy o częstotliwości 4MHz. Nie stosuję też dzielników. Pod ręką
>nie
>mam żadnego przestrajanego generatora, więc musiałbym albo kupić
>wolniejszą wersję, albo zbudować jakiś zamiennik. :)
555 :-)
J.
-
8. Data: 2020-01-27 11:57:19
Temat: Re: HD44780 na magistrali CPU przestaje działać
Od: Atlantis <m...@w...pl>
Ok, udało się potwierdzić hipotezę z pojemnościami ścieżek i zbyt
szybkim taktowaniem. Wszystko zaczęło działać prawidłowo po wymienieniu
generatora na wersję 2 MHz.