Hallo zusammen, Vor kurzem habe ich mich an den Nachbau des im Elektorheft 2 und 3 / 1998 beschriebenen 80C32 Basicsteuercomputers gemacht. Den Platinensatz als auch das Eprom habe ich mir über Geist Elektronik liefern lassen. Leider blieb die gewünschte Funktion aus. Die im Heft beschriebenen Tests (Spannungsmessung und Prüfung des Oszillators) konnte ich durchführen. Die Einstellungen am PC habe ich entspr. der Beschreibung vorgenommen. Da ich mit meinem Rat am Ende war, bestellte ich mir die Bauteile, die Platienen und das Eprom erneut um einen bauseitigen Fehler auszuschließen. Leider auch diesemal ohne Erfolg! Ich bin nun mit meinem Latein völlig am Ende. Kann mir hier jemand ein paar Tips geben um die Dinger endlich zum Laufen zu bringen? Schöne Grüße Tobias
Ich habe mir auch so ein Ding gebastelt - allerdings gibts das Hexfile für den Basic-Interpreter kostenlos im Internet... Auwei, das kann sehr vieles sein... Wenn die Betriebsspannung am Controller anliegt und das Quarz nebst Kondensatoren richtig bestückt ist, gibts eigentlich keinen Grund, weshalb der Oszillator nicht laufen sollte. Wichtig wäre, zu wissen, was Du bislang ausprobiert hast.
Befindet sich der Interpreter im uC oder in einem EPROM ? Irgendwo habe ich auch noch einen AT89C32 mit der Software hier rumliegen, lief einwandfrei: Reingeflashed, mit dem PC verbunden und ein kurzer Text erscheint im Terminalprogramm.
GRMPF - ich kriege nichts über das Ding raus. Gehe ich recht in der Annahme, daß Du einen 80C32 ohne eigenes ROM (oder Flash) in der Schaltung hast? Dann muß das Basic in einem externen ROM sein. Wenn sich das Basic nicht meldet, kann dies folgende Ursachen haben: - Verbindung zum PC nicht korrekt. Man muß ja die Leertaste drücken, damit die Kommunikation startet. Allerdings sollte man nach dem Einschalten des Basic-Rechners mindestens 5 Sekunden warten, da er schon ein wenig zum Initialisieren braucht. Drückt man die Leertaste zu schnell, bekommt die Autobaud-Routine nicht alles mit und es tut sich nichts. Hast Du schon Verbindungen mit anderen Systemen mit dem PC aufgebaut? Um die Verbindung zum PC grundsätzlich zu checken, versuche folgendes: Zieh den RS-232-Stecker am Basic-System ab und brücke Pin 2 + 3 am Kabel. Dann wird jede Übertragung des PC sofort zurückgesendet. Du solltest also auf dem Bildschirm exakt das sehen, was Du eingibst. Funktioniert das nicht, hast Du ein Problem mit dem PC. - Verbindung zu den Externen Speicherbausteinen nicht korrekt. Wenn irgendwelche Adress- oder Steuerleitungen nicht richtig verbunden oder kurzgeschlossen sind, dann kann das System nicht starten. Daß dies zweimal auf verschiedenen Platinen passiert, ist allerdings unwahrscheinlich - aber nicht unmöglich. Gibt es irgendwelche Jumper auf der Platine? Evtl. können damit verschiedene Speicherkonfigurationen eingestellt werden. Wenn die nicht richtig eingestellt sind, funktionierts auch nicht. Was auch gerne passiert: Das ROM auf dem falschen Steckplatz... Übrigens startet das System auch nicht, wenn der RAM nicht richtig angesteuert werden kann.
Hallo zusammen, erstmal vielen Dank für die zahlreichen Tips und Infos. thkais: Ausprobiert habe ich so ziemlich alles was man als Leihe tun kann. So habe ich mir ein neues Nullmodemkabel zugelegt, die Schaltungen an einen zweiten PC getestet, sämtliche IC's gewechselt und zu guter letzt die gesamte Schaltung neu aufgebaut. Deinen Ratschlag beim Kabel (Brücke 2+3) habe ich versucht. Klappt einwandfrei. Somit scheidet der PC und das Kabel doch aus? Benedikt: der Interpreter befindet sich in einem EProm welches ich mir (2mal) bei Geist Elektronik (die vertreiben die Platinen und Eproms von ELEKTOR). Eigentlich müsste ein Fehler in der Software doch auszuschließen sein? Könntest du mir deinen zur Verfügung stellen? Der müsste doch funktionieren, oder? --------------------- Könnte ich einem meine Schaltung mit Beschreibung zusenden. Ich bin selbstverständlich bereit, sämtliche Kosten und Aufwendungen zu tragen. Grüße Tobias
Ich hatte anfangs auch gewisse Startprobleme.... bei mir lags an einer nicht richtig kontaktierten Steuerleitung - da kann man sich manchmal einen Wolf suchen... Wenn das mit dem Kabel funktioniert, kann man PC-Software und Kabel selbst ausschließen. Gehen wir mal einen Schritt weiter: Ich vermute, daß ein MAX232 die Konvertierung des Signals übernimmt. Nimm den 80C32 aus der Fassung heraus, brücke Pin 10 und 11 an der Fassung des 80C32 und mache nochmal den Test, ob die ausgegebenen Zeichen den eingegebenen entsprechen. Damit wäre der komplette Signalweg der seriellen Schnittstelle bis hin zum Prozessor gecheckt. Hast Du irgendeine Möglichkeit, ein EEPROM selbst zu programmieren? Ich könnte Dir dann ein kleines Programm schicken, das zumindest die Grundfunktionen sicherstellt. Auch interessant wäre die Information, ob und welche Jumper auf der Platine vorhanden sind. Prinzipiell könnte ich Deine Schaltung durchchecken, aber das sollten wir als allerletzte Möglichkeit vorsehen.
Besorg dir am besten einen AT89S52 bei Reichelt. Dieses kannst du ohne viel Hardware über den LPT programmieren. Die Software dazu gibt es bei Atmel.
@Benedikt: Es gibt aber ein Problem. Die Platinen, die Tobias hat, sind für den 80C32 mit externem ROM ausgelegt. Um ein internes Programm mit dem AT89S52 ausführen zu können, muß er den /EA -Pin auf VCC legen können, der ist aber vemutlich fest auf GND gelegt. Es sei denn, auf der Platine existiert ein Jumper zum Umschalten. Außerdem würde mich interessieren, wie Dein 89S52 die Meldung senden konnte, ohne daß ein externes RAM dran war. Hast Du eine andere Version des MCS-52 Basic? Ich benutze die original V1.1, nur die EPROM-Routinen habe ich durch EEPROM-Routinen ersetzt (der Source ist frei verfügbar). @Tobias: Kannst Du mal einen Scan vom Schaltplan machen? Schicke ihn mir per mail, wegen des Copyright wirds nicht gern gesehen, wenn das veröffentlicht wird.
Es gibt ja mindestens 10 verschiedene Versionen davon: Alleine schon 2 oder 3 Elektor Versionen, die orginale Version, mit und ohne Fließkomma usw. Ich musste mehrere Versionen ausprobieren, bis es ging. Auch ohne SRAM kommt der Bergrüßungstext, wenn ich mich noch richtig erinnere.
Hm - die Elektor-Versionen kenne ich nicht. Bei der V1.1 läuft ohne RAM definitiv nichts, zusätzlich muß man (sofern die Baudrate nicht mit dem "PROG"-Befehl gespeichert wurde) erst die Leertaste drücken, bevor eine Meldung kommt.
Hallo thkais, ich glaube wir kommen dem Problem langsam auf dei Schliche! Ich habe die Versorgungsspannung angelegt und nur den MAX 232 auf die Platine gesteckt. Beim brücken der Pin 10 und 11 an der Prozessorfasung oder aber auch der Pin 11 und 12 am MAX 232 passiert im Monitorproramm nach Eingabe nichts. Die vorgegebenen Bauteile (5 Elkos 10uF und eine Kondensator 100 nF) sied wie beschrieben eingesetzt. Auch mit einem neuen MAX 232 tut sich nichts. Dabei fällt mir ein, dass ich nicht die vorgesehenen 25V Elkos sondern 35 V verwendet habe. Dass kann es aber doch nicht sein. Ein EEProm kann ich leider nicht programmieren. Grüße Tobias
Hier ist auch nochmal der Schaltplan! Grüße Tobias
Bei mir wird leider der Schaltplan nicht geöffnet... Checke doch mal folgendes am Max232: Pin 2 : Sollte um die +8 bis +10 V liegen Pin 6 : Sollte um die -8 bis -10 V liegen. Falls dies nicht der Fall ist, tippe ich auf verpolte Kondensatoren.
Die Spannungen liegen wie ziemlich genau bei + und - 9V. Den Schaltplan habe ich jetzt als gif hinterlegt.
Gut - sowohl der Schaltplan als auch die Spannungen sind in Ordnung... Seltsam - eigentlich sollte das dann funktionieren. Ist vielleicht am SUB-D Steckverbinder auf der Controller-Platine etwas faul? Wenn Du Pin 10-11 am Controller bzw. 11-12 am Max232 gebrückt hattest und es kommt nichts an, dann muß es irgendwo zwischen dem Max und dem Stecker liegen. Schau doch mal mit dem Durchgangsprüfer die Verbindungen zwischen Max und SUB-D Stecker durch.
Nimm mal ein Terminal- und kein Monitorprogramm (Winterm, brücke am Max Pin 11 und 12) und gib einen Buchstaben ein. Dieser muß danach im Terminalprogramm sichtbar sein, sonst steckt der Fehler zwischen PC und Max. Josef
@Josef: Das Terminal-Prog ist bereits gecheckt, und Pin 11+12 hat er auch schon gebrückt gehabt. Siehe oben.
Den ersten Fehler habe ich gefunden. Die Pins der SUB-D Buchse sind spiegelverkehrt herausgeführt. Ich habe ihn jetzt auf die Rückseite gelötet. Die Brücke auf dem MAX232 Sockel von 13 nach 14 wird jetzt im Terminalprogramm angezeigt. Nicht jedoch eine Brücke von 11 nach 12. Die Spannung liegt dabei an. Ich habe das jetzt mit 3 verschiedenen IC's ausprobiert. Übrigens habe ich im Terminalprogramm die Einstellungen wie folgt gewählt: 19200Bit/s, 8 Datenbits, keine Datenbits, Stopbits 1, keine Flussteuerung (war so in der Elektor beschrieben)
übrigens ist das Ergebnis in beiden Schaltungen identisch!
Hm - Könnte es sein, daß Du zur Verbindung an den PC ein falsches Kabel hast? Es gibt Kabel, die kreuzen Pin 2 + 3 (und weitere Pins, ein sog. Null-Modem Kabel), Du brauchst ein Kabel, bei dem die Kabel nicht gekreuzt sind. Wenn Du am Ende des Sub-D Kabels Pin 3 durchmißt, sollte +/- 8..12V anliegen, an Pin 2 nahezu 0 V (gegen Pin 5 gemessen). Ist dies nicht der Fall, hast Du ein Null-Modem Kabel erwischt.
Volltreffer!! Ich hatte, wie in der Beschreibung beschrieben, ein Null Modem Kabel benutzt. Jetzt, mit einer 1:1 Verbindung kann ich den Pin 100 und 11 des Prozessors kurzschließen und erhalte tatsächlich die gewünschte Rückmeldung auf dem Terminalprogramm. Erst mal vielen Dank!!! Leider tut sich jetzt mit eingesetztem Prozessor, Ram und Eprom noch immer nichts. Gibts noch weitere Möglichkeiten zum Fehlereingrenzen? Schöne Grüße Tobias
Gut, also ist nun die serielle Kommunikation in Ordnung. Weiter oben wurde schon angesprochen, daß Elektor wohl eine modifizierte Version des Basic benutzt - ich habe mich mal umgeschaut und den Autor des Basic-Rechners gefunden. Die dortige Version entspricht der V1.1, die ich auch benutze. Die weitere Fehlersuche gestaltet sich ohne Oszilloskop als schwierig, denn es kann nun vieles sein. Das mit der Leertaste schon gecheckt? Ich habe da noch keine Bestätigung von Dir. Wenn alle Stricke reißen, dann melde Dich bei mir per Mail, evtl. greifen wir doch auf die Versandmethode zurück. Hier noch der Link zum Autor: http://home.arcor.de/h.boehling/80c32.htm
Hallo thkais, Die Leertaste habe ich jedesmal (in allen Varianten (schnell und langsam) gedrückt. Ein Oszi habe ich zu Verfügung. das Terminalprogramm des Autors habe ich bereits installiert und teste es jedesmal mit. Wenn du noch ein paar Ideen hast probiere ich sie noch aus, ansonsten sende ich dir den Rechner per Post zu. Deine EMail Adresse ist mir noch nicht bekannt. Schöne Grüße Tobias
Glaube dass die serielle Komunikation immer noch nicht läuft ! Mit dem Osci oder Logiktester würde ich am Controller auf der RXD-Leitung messen, ob bei einer Tastenbetätigung am PC/Terminalprogramm hier etwas passiert. Meistens happert es genau hier. Ansonsten den Logiktester auf die TXD Leitung und Strom einschalten. MCS Basic meldet sich normal mit einer kurzen Meldung automatisch. Also dürfte auch am Osci was sichtbar werden, wenn das Board funktioniert. SG Josef
@Josef: Tobias hat Pin 10 und Pin 11 am Controller-Steckplatz gebrückt und bekommt die vom Terminal gesendeten Zeichen zurück. Damit ist die serielle Kommunikation bis hin zum Controller O.K., zumindest sehe ich keinen Grund, weshalb sie das nicht sein sollte. Das Basic 1.1 sendet erst dann etwas, wenn das RAM richtig initialisiert werden konnte und wenn die Leertaste gedrückt wurde. Eine automtatische Meldung kommt nur dann, wenn sich im Programm-Eprom (nicht zu verwechseln mit dem System-Eprom) die Baudrate befindet. Da kann jetzt vom defekten Controller bis hin zu einer vergessenen Lötstelle alles der Fall sein. @Tobias: Ich würde erst mal mit dem Oszi schauen, ob am Pin 29 (PSEN) ein Signal anliegt. Es sollte ca. 1/6 des Quarztaktes haben. Außerdem Pin 20 (ALE) checken, da sollte sich ähnliches tun. Ist das der Fall, dann läuft der Controller schon mal. Wenn ich den Schaltplan richtig interpretiere, ist IC4 das System-ROM. Wie hast Du den Jumper an IC4 beschaltet? Wenn das Basic sich an Adresse $0000 des Eproms befindet, muß der Jumper auf die beiden A14-Leitungen gesteckt werden. Auf keinen Fall darf der Jumper offen sein - dann funktionierts garantiert nicht. Probier auch mal die andere Jumper-Position. Falls das alles nichts gebracht hat, kommt noch richtig Arbeit auf Dich zu: 1. Die Datenleitungen checken. Einmal, ob alle richtig miteinander verbunden sind, und einmal, ob irgendwo ein Kurzschluß ist. 2. Das Gleiche mit den Adressleitungen. 3. Und auch die Steuerleitungen checken.
Habe das Board aus Elektor 4/91 zusammen gebaut. Funktioniert soweit auch. Habe aber Probleme mit den Editor,wenn ich eine Befehlszeile schreibe. wird sie nach RETURN direkt ausgeführt.
Ohne Zeilennummer am Anfang der Zeile wird die Zeile direkt ausgeführt. Das MCS-51 Basic ist eine Version aus der guten, alten Zeit, als man noch genau wußte, in welcher Zeile man sich befand ;)
@Tobias Hast Du es schon mit einem NOP - Stecker probiert? So kannst Du eigentlich ganz gut testen wie weit die Kommunikation zwischen Prozessor und ROM funktioniert, weil durch den NOP-Befehl der Adresszähler hochgezählt wird. Das kann man sich mit einem Oszi ganz gut anschauen. Wenn das geht, weißt Du, das Prozessor, Latch, Oszillator miteinander auskommen. Ich hoffe mal dass Du das richtige EPROM auf Deinem Board hast. Es gibt da Unterschiede.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.