...hab' Dir mal einen Memtest hochgeladen - den hat mal jemand für den Z80-MBC2 auf Hackaday programmiert...
Kann es sein das einfach Dein "Forth13.bin" korrupt ist?
Franky
...hab' Dir mal einen Memtest hochgeladen - den hat mal jemand für den Z80-MBC2 auf Hackaday programmiert...
Kann es sein das einfach Dein "Forth13.bin" korrupt ist?
Franky
Kann es sein das einfach Dein "Forth13.bin" korrupt ist?
Danke!
Unwahrscheinlich. Alle anderen Images funktionieren auch nicht. Oder ist das Ding "picky" was die SD Karten anbelangt?
Ich habe eigentlich den Eindruck es wird korrekt geladen.
EDIT : Memtest wird auch nicht ausgeführt
Langsam bin ich im Bilde.
Ich hatte mir das Teil vor ein paar Wochen schon mal angeschaut, auch den Arduino Sketch, aber anscheinend nicht weiter beachtet.
Wenn ich dich richtig verstehe, hakt dein System wenn du den Z80 startest.
Ich vermute du hast noch keine LA?
Dann wurde ich dem Z80 mal das folgende Programm laden:
Opcode ist 0x76
Jetzt liest der Z80 immer von Adr 0 den Opcode 0x76. So kannst du alles mit MREQ, RD, Chipselects mit dem Oszi ueberpruefen.
M1 oder MREQ als Trigger einstellen, dann kriegst du ein stehendes Bild.
Alles unter der Voraussetzung INT, WAIT und BUSRQ bleiben inaktiv.
Wenn du das alles gemessen hast, kannst du von einen lauffaehigen Z80 ausgehen.
Fuer alles andere ist der ATMEGA zustaendig.
Viel Erfolg!
Danke!
Ich hab einen 8Ch Salea Clone.
Wie bekomme ich das Programm in die Maschine?
76 <ENTER> im Terminal?
Wie kommen die Programme in das RAM bevor der Z80 gestartet wird?
Wenn ich das richtig verstanden habe, kannst du eine .hex Datei im IOS runterladen.
Die hex mach ich dir gleich.
Nachtrag: Datei in halt.hex aendern
ich kann die hex Datei übers Terminal schicken, also eintippen...
Also egal was ich ihm schicke, die Reaktion an der CPU sind immer gleich, auch wenn ich gar nichts schicke
RD : 1 Mhz Rechteck
WR: nichts
M1 : 1Mhz Rechteck
Clock : 4 Mhz
MREQ 1 MHz
Auf den Adressleitungen auch
Auf den Datenleitungen passiert - nichts.
Auch nicht, wenn ich das Programm schicke.
Wenn ich die CPU rausnehme, funktioniert das IOS Menu genauso (läuft wohl auf dem Atmega), aber die 1Mhr Signale sind weg.
Die CPU scheint also "etwas" zu tun.
Welcher Pegel ist den auf den Datenleitungen?
Alle 0?
Wenn der HALT bei Adr 0 ausgefuehrt wird, entspricht deine Messung den Erwartungen.
Aber was ist auf den Daten?
Nachtrag:
Wobei der MREQ zwar 1M/s wiederholt wird, aber 2 Pulse haben muss.
Der MREQ kommt waehrend des M1 und waehrend des RFSH.
BTW: Der Z80 braucht min 4 Takte/Opcode, daher alles mit 1MHz.
ATmega 32?
Das ist kein üblicher Typ bei Arduinos?
Welcher Pegel ist den auf den Datenleitungen?
Alle 0?
Ja.
ATmega 32?
Das ist kein üblicher Typ bei Arduinos?
Doch. Trotzdem gehts bei mir nicht. Ich hab die Lötstellen kontrolliert, die Spannungen, hab alle ICs getauscht.... Da bleibt nur für mich nicht mehr viel mehr übrig als das ich beim Programmieren oder Fuses setzen was falsch gemacht habe.
Hmmm,
magst Du vielleicht mal Bilder von Deinem Board posten? ...will Dir keinesfalls zu nahe treten - hast Du die Position der beiden Widerstandsarrays mal überprüft?
:)Franky
Welcher Pegel ist den auf den Datenleitungen?
Alle 0?
Ja.
Dann muessen die Adressleitungen aber wackeln.
Wieso steht das HALT-Hexfile nach dem "Z80 is running from now"?
Welches "Loading boot program" ist den geladen worden?
Auf den Adressleitungen auch
Sorry, das habe ich falsche verstanden.
Dann ist das HALT auch nicht geladen, sondern wahrscheinlich alles 0x00.
hast Du die Position der beiden Widerstandsarrays mal überprüft?
:)Franky
Danke für den Hinweis. Wie müssen sie denn richtig eingebaut werden?
Ich habe den vertikalen Strich auf den Resistor Arrays mit der quadratischen Markierung auf dem PCB in Deckung gebracht. EIne kurze Bestätigung, daß dies richtig oder falsch ist, wäre großartig.
Dann muessen die Adressleitungen aber wackeln.
Wieso steht das HALT-Hexfile nach dem "Z80 is running from now"?
Welches "Loading boot program" ist den geladen worden?
Was heißt denn, wackeln?
Das Z80 is running from now steht da immer...
Ich habe den Menupunkt angegeben, wo man per Console ein hex file schicken kann "5 - iload".
Was heißt denn, wackeln?
Dann muessen sich die Adressleitungen aendern.
Ich habe den Menupunkt angegeben, wo man per Console ein hex file schicken kann "5 - iload".
Ja, aber zuerst steht da Z80 is running und danach erst das HALT Hexfile.
Die Reihenfolge ist mir komisch.
Laedt das iLoad evtl. eine Datei von der SD Karte?
Ok, die Widerstandsarrays sind bei mir genauso eingelötet- was für Transistoren hast Du eingesetzt? Meine sind anders orientiert! Ich hab' 2N2907 drinnen - da kuckt der Schnörpsel jeweils in Richtung Atmel bzw. Z80!
:)Franky
Alles anzeigenDann muessen sich die Adressleitungen aendern.
Ja, aber zuerst steht da Z80 is running und danach erst das HALT Hexfile.
Die Reihenfolge ist mir komisch.
Laedt das iLoad evtl. eine Datei von der SD Karte?
Nein. Wenn ich die SD Karte enferne, beklagt er sich, aber die Iload-Funktion kann ich trotzdem nutzen.
DIe Reaktion der Maschine ist aber gleich, ob ich nun ein hex schicke oder nicht.
Gibts was, was ich mit dem 8ch Salea Clone sinnvoll testen könnte?
Einen neuen Mem Chip (heute mit der Post bekommen) habe ich auch getestet. Zweite CPU und zweiten 74HC00 auch. Ebenso weiteren Atmega.
Also für mich entweder:
- Fehler beim bestücken
- der Atmega ist falsch geflasht (Fuses?)
Kroiter : Was machen bei Dir die LEDS? Die rote LED neben dem SD Leser ist nie an. Genauso die HALT, DMA und IO
OP LED habe ich nie leuchten sehen. Im Betrieb blinkt bei mir die IOS Led im Menu und leuchtet konstant danach.
Es gäbe da ja noch diese Testprogramme für die LED's...
Hast Du mal die Transistoren gecheckt?
:)Franky
Es gäbe da ja noch diese Testprogramme für die LED's...
Hast Du mal die Transistoren gecheckt?
:)Franky
Die Transistoren bringen ja nur die LEDs zum leuchten..... Leuchten die bei Dir (HALT / IO OP?)
der Atmega ist falsch geflasht (Fuses?)
Da das IOS anscheined funktioniert, wuerde ich das ausschliessen.
Aber dein iLoad kommt mir immer noch komisch vor.
Also mein Verstaendbis vom IOS und iLoad:
Z80 wird im Reset gehalten.
Der ATMEGA schaufelt das RAM mit Daten voll.
Z80 wird aus dem Reset entlassen
Mit LA oder Oszilloskop muesstest du sehen koennen, wann ins RAM geschrieben wird.
Du tippst das Hexfile von Hand ein?
Dann muesste zu der Zeit der Z80 im Reset sein und ein Pulse am WE des RAMs erkennbar sein.
Ansonsten den LA starten (auf WE triggern), und iLoad betaetigen.
Kommt der WE? Ist der Z80 im RESET? Den halben Datenbus kannst du ja aufzeichnen.
Das mal vorne weg.
Gerade nochmal ausprobiert! HALT sehe ich praktisch nie, IOS/DMA/IO_OP flackern beim Booten fröhlich vor sich hin und leuchten dann konstant!
:)Franky
funkenzupfer : Ich glaube, da stimmt schon was nicht. Nur wenn ich den RESET Button halte, geht die Resetleitung auf low (Da im Pinout negiert, heißt das, Reset wird kommandiert, wenn low?)
Wenn ich den Reset Button loslasse, habe ich da 5V. Auch so lange ein Programm, z.B. Basic geladen wird
.
Gerade nochmal ausprobiert! HALT sehe ich praktisch nie, IOS/DMA/IO_OP flackern beim Booten fröhlich vor sich hin und leuchten dann konstant!
:)Franky
Oho. Dann ist da was im Argen! Könnte es sein, daß ich meine Transistoren 2N2907 falsch eingelötet habe?
Jepp - schau' Dir bitte nochmal mein Bild an! Der Aufdruck ist nach vorne (Platinenrand) - den mittleren Pin musste ich ganz schön verbiegen damit er auch in das mittlere Loch passte.
War mir am Anfang auch nicht sicher ob ich die Datenblätter richtig interpretiert hatte - es hatte aber auf Anhieb so funktioniert!
:)Franky
Q1 und Q2 steuern nur die LEDs an, nichts schlimmes.
Aber fuers Debugging besser!
Hab die Ts umgedreht. LEDs leuchten immer noch nicht. Der Fehler ist auch der gleiche geblieben.
Hab mir das IOS mal angeschaut.
Der ATMEGA kann den Z80 taktgenau steuern.
Das iLoad Kommando laedt ein Programm in den Speicher und bringt danach den Z80 in den Reset und laesst den Z80 dann laufen.
Was das Programm macht, hab ich noch nicht geschaut. Evtl. liest es ein Hexfile ein.
Gibt's eigentlich 'ne anstaendige Doku zu dem Teil?
(Da im Pinout negiert, heißt das, Reset wird kommandiert, wenn low?)
Die Signale mit dem Strich drueber sind invertiert, d.h. active low, meint das Signal ist aktiv wenn der Pegel 0 ist.
Deshalb lass uns von aktiv und inaktiv reden, nicht von high und low.