Hallo, gestern kam die Ladung mit Elektronikteilen an und ganz stolz baute ich mir die BlowIt-Schaltung (http://www.geocities.com/dinceraydin/8051/) sowie eine kleine Testschaltung für den 89c2051 (http://www.iguanalabs.com/1st2051.htm) zusammen... Naja, langer Rede kurzer Sinn: Die LED blinkte nicht sondern leuchtete andauernd. Die Spannungsversorgung ist stabil, ich habe die Schaltungen mehrfach auf fehlende Verbindungen und ähnliches geprüft. Auch gehe ich davon aus, dass ich den Qellcode, den es auf der Seite zum Download gab richtig in intel hex code compiliert habe. Absolute "DAU"-Fehler schließe ich also aus. Mögliche Fehler sind wohl: 1. Quarz schwingt nicht (kann ich so nicht nachprüfen) 2. die Brennerschaltung zusammen mit dem BlowIt Programm tut nicht ganz das, was sie soll. Deshalb einfach mal die Frage in die Runde: Wer hat bereits erfolgreich mit BlowIt einen 2051 beschrieben? Mussten dafür irgendwelche Manipulationen an der Hardware vorgenommen werden? (ich meine mich zu erinnern, dass ich dies bereits in einem Forum gelesen hätte, kann den Beitrag jedoch nicht mehr finden) Seltsam finde ich, dass ich beim ersten mal Beschreiben die Meldung des Programmes bekommen habe, dass alles wunderbar funktioniert hat. Als ich dies (nachdem der uC nicht das machte, was er soltle) ein zweites Mal tat, kam die Fehlermeldung: "Never Ready ? Programming aborted." Naja, vielleicht kann mir ja irgendeiner aus Erfahrung ja einen Tipp geben, in welche Richtung ich mich mal schlau machen könnte. Für BlowIt entschied ich mich in erster Linie, da ich keinen programmierten Chip benötig und mit relativ wenig Löten einen einfachen Programmer habe, allerdings weiß ich mangels Erfahrung nicht, ob er überhaupt etwas taugt... Mein erster Ansatz jetzt ist erst mal, mit Hilfe des Datenblattes des 89c2051, dem Pythonprogramm und der BlowIt-Schaltung zu schauen, was dort genau beim Programmieren vor sich geht. Gruß und danke, Karl
Habe gerade, wie es in http://www.mikrocontroller.net/forum/read-1-76195.html#76358 beschrieben wurde pin 4 und pin 5 gegen GND gemessen. Habe jeweils ca. die hälfte von vdd drauf. Anscheinend scheint der Quarz also irgendwie zu schwingen. Ich suche dann mal weiter...
Hallo Karl, ich würde versuchen, den LPT mit einem langsameren Modus zu betreiben. (kann man im Bios einstellen). Zum Programmieren des 2051 braucht man genaue Timings. Soweit ich gesehen habe, hat der Bursche aus Izmir einen Uraltrechner mit 485 MHz. Kann sein, daß es bei ihm gutgeht. Ich hätte aber einen anderen Vorschlag für Dich: Nimm einen 89S52 von Atmel, den kannst Du über SPI programmieren. Das geht auch über die Parallelschnittstelle, man braucht aber keine 12V Programmierspannung und der Adapter ist supereinfach. Außerdem kann man den µ in der Anwendungsschaltung lassen. Er kostet auch nicht mehr als der 2051, hat schön viele Ports (ist bei der Programmentwicklung hilfreich) und einen Timer mehr. Gruß Jack
Danke Jack, ich werde deine Tipps heute mal ausprobieren. Vielleicht bekommme ich es ja damit irgendwie hin. Allerdings frage ich mich, inwiefern der langsamere Modus etwas bringt. Das Pythonprogramm gibt die Signale auf ms genau an die Schnittstelle weiter. In diesem Fall ist ein schneller LPT, der verzögerungsfrei reagiert, doch eher sinnvoll(?)... Wenn Probleme mit dem Timing auftreten, dann doch eher auf Betriebsystemebene, oder? kurzer Ausschnitt aus Quellprogramm: Code_begin- out(port+2,erase_mode ^ prog_bit) # P3.2 = 0 delay(0.012) # wait 12ms #This is ERASE PULSE! out(port+2,erase_mode) # P3.2 = 1 -Code_end Mit einem (leider nicht vorhandenen ;) digitalen Oszi müsste ich doch Klarheit bezüglich des Timings bekommen... Vielleicht frag ich da mal im Bekanntenkreis rum. Ausserdem werde ich mir das Datenblatt vom 89S52 mal anschauen. Vielen Dank für den Tipp mit SPI. In diese Richtung hatte ich mich bisher noch überhaupt nicht umgeschaut. Du hast es schon richtig gesehen, dass ich für meine einfachen Experimente nicht allzuviel Geld ausgeben möchte ;) Gruß und Danke Karl
Hallo nochmals eine dumme Frage: Eventuell liegt hierin die Ursache meines Problems... wierum zeichnet man eigentlich standartmäßig die Pinbelegungen des Parallelports? \ -------------------------- / \ 1 2 12 13 / \ 14 25 / ----------------------- (dies ist die Sichtweise auf der [URL]http://www.geocities.com/dinceraydin/8051/[/URL] Homepage von BlowIt oder \ -------------------------- / \ 13 12 2 1 / \ 25 14 / ----------------------- Diese Darstellung fand ich auf einem weiterführenden Link von Wikipedia. und welche Sicht ist denn nun von vorne und welche von hinten??? wo könnte ich dies nachschauen? Konkreter: Wenn ich vom PC auf das Kabel Parallelport kabel schaue, befindet sich Pin 1 dann links oder rechts? Gruß und Danke Karl
Habs mir gerade hiermit selbst beantwortet: http://www.dotnet-magazin.de/itr/online_artikel/psecom,id,397,nodeid,31.html Ich habe den Brenner wohl spiegelverkehrt angelötet... Nehmt mir meine uC-Lizenz wieder ab, bevor ich sie mir verdient habe!
Hier ist mal das Schaltbild für den SPI-Adapter. Die Widerstände sollten besser 220R betragen. Die Pins auf dem Sub-D25 sind eigentlich immer beschriftet, aber manchmal nur mit der Lupe zu erkennen. Viel Spaß beim programmieren Jack
danke für die Schaltung des Adapters, hast du mir vielleicht noch den einen oder anderen Link für den Anfang mit dem 89S52? (tuts etc...) (natürlich werde ich heute abend auch googlen, aber wenn du bereits etwas in deinen Bookmarks gespeichert hast, sind es für dich ja nur ein paar Mausklicks ;) Die Pins auf dem Sub-d25 mögen beschriftet sein, ich nahm jedoch ein altes Druckerkabel und ließ die dem PC zugewannte Seite geschlossen um lediglich durch Nachmessen die Verbindung zu finden. Aussen ist er leider nicht beschriftet... Egal. Ich drehe es erst einmal rum und hoffe, dass ich durch den falschen Anschluss nichts in die Luft gejagt habe. Genießt das schöne Wetter... und tschüß
Bevor ich mich aufmachte, das schöne Wetter zu genießen, habe ich noch schnell den Stecker geöffnet und stellte fest, dass ich es tatsächlich richtig angeschlossen habe(bschriftung der pins...danke @jack). Jetzt bin ich wieder bei meinem Anfangsproblem...
Natürlich brauchst Du erst mal ein Programm, das Deinen Code in den µ lädt: http://www.geocities.com/asim1108/projects.html Ansonsten brauchst Du für den 89S52 kein besonderes Tutorial, die all- gemeinen 8051-Seiten reichen dafür aus. Der 89S52 ist praktisch ein 89C52, nur daß er eben SPI hat. Wenn Du wirklich in die 8051-Assembler Programmierung einsteigen willst, dann würde ich das "Mikrocontroller- Applikations-Kochbuch" von Andreas Roth empfehlen. Hier werden grund- legende Routinen für das Rechnen mit Binärzahlen beschrieben, die Ansteuerung von LCD's, die serielle Schnittstelle usw., das Buch ist wirklich ausgezeichnet (IWT-Verlag). Gruß Jack
Vielen Dank für deine konstruktiven Vorschläge, Jack. Das einzige, was ich zusätzlich zum uC 89s52 benötige ist dann also ein 40 pin Sockel, sowie eine 5polige Steckverbindung für den von dir vorgestellten Adapter. Den 12 Mhz-Quarz + Kondensatoren kann ich von meiner alten Schaltung verwenden. Mit 220 R meinst du sicherlich 220 Ohm? Bleibt die Frage, was ich mit meinen beiden (hoffentlich noch funktionierenden 2051) mache und an was es schließlich scheiterte... Viele Grüße Karl Ps: wie schreibst du eigentlich dein \mu in diesem Forum?
Das µ ist auf meiner Tastatur (IBM) mit M + AltGR zu erreichen. Die Schutzwiderstände in der Adapterschaltung habe ich verkleinert, weil die Parallel-Schnittstelle mit 3,3 anstatt 5V arbeitet. @2051... vielleicht probierst Du einfach mal einen anderen Programmer aus z.B. http://www.pjrc.com/tech/8051 Auf dieser Seite gibt's auch jede Menge Code-Beispiele. Gruß Jack
Hallo Jack und alle anderen, habe mir nun 2 mal den 89s52 gekauft: Leider geht bei beiden nichts, bereits das Beschreiben schlug fehl. Den SPI Adapter baute ich nach Jacks Bild auf. ( http://www.mikrocontroller.net/attachment.php/344331/avr-parallel.gif ) Wozu sind eigentlich die Verbindungen von Pin 2 nach 12 und 3 nach 11 ? Zusätzlich zog ich noch ein dickes Masse kabel zwischen Rechner Masse und GND. ich nutze hier den von Jack vorgeschlagen spi-flash programmer. http://www.geocities.com/asim1108/spipgm/spipgm.html Dort wählte ich8 9s52 als Controller aus und überprüfte, dass die Pinbelegung mit der im Schaltbild für den SPI Adapter übereinstimmte (was auch stimmt bis auf BEN und SS, die ja gar nicht auf dem Adapter eingebaut sind.) Port LPT1 adresse 378 scheint zu stimmen. Present data Port(88) und present control Port(04) habe ich nicht verändert, das wird schon stimmen... Ansonsten ist noch ein Haken bei "Auto Verify" Ich habe -5V stabile Spannung an VCC und GND anliegen, -einen Oszilator bestehend aus Quarz 12Mhz Grundton, 2 x 33p gegen Masse an XTAL1 und XTAL2 nahe am µC. - Reset folgendermaßen beschalten 10 µF nach VDD und 8kOhm nach GND Als Fehler meldung im SPIPGM bekomme ich stets: Device Signature did not match Continue? falls ich fortsetze kommt: No Response of the µC Sind die vielleicht die Widerstände im SPIAdapter noch zu groß? Im Gegensatz zum 89c2051 habe ich 0 V zwischen XTAL1/2 und GND gemessen. D.h. der Quarz schwingt nicht... Liegt das lediglich daran, dass er nicht beschrieben ist, oder ist da jetzt irgendetwas kaputt? Vielen Dank für eure Hilfe.
Nachtrag: EA habe ich mit VCC verbunden, da im Datenblatt steht, dass er für internal program execution auf high gesetzt sein soll.
Hallo, @ Karl We ich habe zwei Frage zu deinem damaligen Problem. Hattest du dennoch den Fehler mit dem Brennen von Blow It erfolgreich loesen koennen? Koenntest du mir das BlowIt Programm schicken? Vielen Dank Daniel
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.