Gast
#53301
Hallo Leutens, im Rahmen eines Schulprojektes arbeiten wir gerade an einer Lösung zur In - System Programmierung eines AT89S8252 durch einen zweiten AT89S8252 auf zwei getrennten Controllerboards. Wir verwenden einen zweiten Controller, der aus einer PC - Applikation, die wir mit Delphi programmiert haben, die notwendigen Adressen und Datenbytes (bereits mit Write-Instruction versehen) über V24 empfängt und über seinen Port 0 auf die Pins MOSI, SCK und RST des Zielcontrollers überträgt. Mittlereiweile sehen die übertragenen Informationen und der Takt am Oszilloskop genau so aus, wie sie in den Unterlagen von Atmel beschrieben sind, mit dem kleinen Unterschied, dass das Taktsignal schon vorzeitig auf Low geht. Unser Ablauf sieht so aus: 1. RST anlegen 2. ca. 90ms warten 3. das "Programm Enable" Bit für Bit senden 4. die Programmdaten aus dem Hex-file geparst mit dem "Write Enable" (aaaaa010) versehen senden 5. RST auf low Die Bitfolge beim Übertragen ist beispielsweise: Instruction Input Bit (MSB zuerst) anlegen 50us warten SCK au HI 50us warten SCK auf LO 50us waren Nächstes Instruction Input Bit anlegen usw. Wir können teilweise auch schon in laufenden Programmen einzelne Programmstellen umschreiben. Leider funktioniert das nur bei ca. 80% aller Versuche und wir können auch noch keine kompletten Programme übertragen. Eigentlich müsste mit unserem Timing alles in Ordnung sein. Die Signale, die am Zielcontroller anliegen haben wir mittlerweile mit einem TTL-Gatter verstärkt, weil wir dachten, der RST-Pegel wäre zu schwach, aber dadurch ist unsere Fehlerhäufigkeit noch gestiegen. Gibt es etwas, was wir da übersehen haben? Jens