Hallo, bin leider blutiger anfänger und hab mehr als drei Tage gebraucht den 8928252 per ISP über den parallelen zu programmieren .. nutze dazu sp89, was angeblich auch klappt. Zumindest behauptet dies das Programm. Nun mein Problem: der Code, den ich hochlade, wird absolut nicht ausgeführt ... Compiliert wurde er mit ASEM51 1.3! Wer weiß Rat? .. Was mach ich falsch? Ich verzweifele! Muss ich nach dem Programmieren noch verschiedene Pins umändern? Danke schonmal ... Hermann PS: Der Code (im Anhang) soll übrigends immer nur P2.6 (da is ne Diode mit Vorwiderstand dran) an- und ausschalten! Habe das auch schon an zich anderen Ports probiert, aber nichts ging!
EA, Reset, Quarz überprüfen. An ALE muß Quarz / 6 rauskommen, PSEN muß konstant high bleiben. Peter
Hallo! Wichtig!: EA an +5V damit er den Code im Flash nimmt. Wenn du nen Quarzoszillator benutzt, sollte am Oszi-Ausgang ca. 1,8 Volt bei einem Digitalmulti rauskommen. Nimm mal einen Pin von Port1 und häng die LED von +5V über Vorwiderstand an den Pin. Noch nen Tipp für einen Programmer: Ich benutze AEC_ISP mit einem 89S53 über Parallelport. Funktioniert ohne Probleme. SP89 habe ich schon von Problemen gehört, getestet hab ich noch nicht. Gruß, hoschi
Danke erstmal für die Tips ... leider geht es noch immer nicht ... hab es jetzt nochmal mit AEC_ISP probiert und jetzt geht garnichts mehr .. er behauptet, dass er den flash beschrieben hat und wenn ich ihn wieder auslese, ist immernoch alles auf ff ... das nen programm mal abgearbeitet wird ist sowieso nicht drinn! Vielleicht nochmal ein paar Worte zum Board: Vcc an +5V EA an +5V PSEN an +5V Quarz 16MHZ an XTAL1 + XTAL2 sowie über 33pF and GND RESET über 1uF (50V +-20%) an +5V und über 22k0 an GND SCK über 22pF und 100 Ohm an GND Der Parallelport wurde je nach Software angeschlossen (MISO, MOSI, SCK, RESET, GND) Den Quarz kann ich leider nicht prüfen, da ich keinen Oszi habe ... Hermann
ich nochmal, >PSEN an +5V Nein! Könnte eventl. den Kontroller schädigen????? Einfach mal frei lassen. Der PSEN-Pin brauchst du nur beim Ausführen von externem Code. Den Reset würde ich mit 10uF und 10KOhm machen. Ich denke 1uF ist für den Reset bei den 89SXX etwas zu klein, dann springt er dir lustig im Flash rum. Sonst: Vcc an +5V, EA an +5V, und auf alle Fälle ein 100nF-Kondensator zwischen +5V und GND zum Entstören. >SCK über 22pF und 100 Ohm an GND Hä???? Du schreibst du hättest es mit AEC_ISP versucht, kuck dir mal die Anleitung (AEC_ISP.PDF) dazu an. Das einzige Problem dabei ist, dass du auf alle Fälle zuerst den Controller an Spannung legen musst!!!, dann erst PC an, dann Flashen, Reset-Freigabe im Menü auf HIGH (dann müsste das Prog laufen). Beim Ausschalten zuerst PC aus, dann Spannung an Kontroller weg!!! Hab mal einen 74HC244 zum Entkoppeln versucht, ging mit AEC_ISP aber irgendwie nicht. Achso: Bei AEC_ISP im Setup-Menü Reset-High setzen! Mehr fällt mir grad nicht ein, eventl. Steckerbelegung Parallelport prüfen, sind bei jedem Programmer anders. Eventuell mal ein Quarzoszillator (24 Mhz) an Stelle von Quarz + Kondensatoren. Wenn du Pech hast ist der Controller hinüber. Gruß, hoschi
Hallo, auch wenn Deine Hardware stimmt, kann Dein Programm nicht laufen! Grund ist folgender: Eine Routine, die mit RETURN endet, kann nur mit einem CALL aufgerufen werden, da nur dieser Befehl die Prg-Adresse auf dem Stack hinterlegt, von der aus ins Unterprogramm gesprungen wurde und zu der bei einem RETURN zurückgesprungen wird. Dein Stack ist aber leer und der MC macht bei 'ret' im Unterprogram 'waitmal' alles, nur nichts was er soll... . Ändere einfach im Hauptprogram die Zeile "jmp waitmal" in ein "call waitmal" wobei das eigentliche Mnemonic 'ACALL' für Sprünge innerhalb 11Bit-Adresse und 'LCALL' für Sprünge innerhalb 16Bit-Adresse ist. Ansonsten läuft Dein PRG. Ich habe es eben getestet - so ein Epromsimulator ist schon eine feine Sache.... grins Bin mir sich geholfen zu haben... ;-) Gruß, Arne
Hallo, habe alle Vorschläge von hoschi umgesetzt! Habe die Parallelport anbindung überprüft und alles nochmal versucht! -> NIX! Es geht nix! .. aber hier vielleicht noch etwas, was weiterhilft! Wenn die flash und eprom buffer vom AEC_ISP leer sind (alles ff) dann zeigt er mir vortschrittsbalken an .. verifiziert den code und sagt: OK .. (ich habe keine ahnung ob sich das programm bei leeren buffern alles spart und nur so tut oder ob es wirklich was reinschreibt) wenn ich jedoch das led.hex (welches ich mit dem call befehl modifiziert habe (thx Arne) in den flash (oder eprom) buffer schreibe und wieder programmieren will, bekomme ich die folgenden Meldungen "Error while programming flash memory" und beim Verifizieren "Flash byte error in address 0000"! Also leider alles so wie vorher ... Hermann PS: nochmal ein zwischen-danke für die super schnelle und freundliche Hilfe ...
Hi, wie lang ist denn dein Parallelportkabel? Wenns zu lang ist, dann kommen die Signale nicht mehr richtig an, und der Controller versteht nichts von dem, was dein PC von ihm will. Ich benutze schon immer die AEC_ISP Software. Ist ein klasse Teil. Nur das Interface habe ich ein wenig modifiziert. Hab noch ne Signalaufbereitung reingebaut. (Ist, glaube ich, ein 7438. Müsste ich allerdings nachschauen.) Probiers doch einfach mal mit nem ganz kurzen Kabel. (Max. 30cm lang. Und häng auf jeden Fall den PSEN von +5V weg. Der hat nichts mit dem ISP-programmieren zu tun. Den brauchst du nur, wenn du mit externem Speicher arbeiten willst.) Wie du schon gesagt hast, musst du bei der Software erst den Buffer füllen, bevor du programmieren kannst. Bis denn, ERDI - Soft.
Note: At89s8252 SPI needs sharp edges at SCK pin. Some PC parallel cards has high capacitance at the output pins requiring a 72HCT14 to rebuild those pulses: .---- 74HCT14 ----. | | 10 ACK -------10 11-----12 13------P1.6 MISO 8 D6 ---------1 2---@---3 4---@---P1.7 SCK 7 D5 ---------9 8-------5 6-------P1.5 MOSI Connect a 1nF cap from (@) to ground. OK! So sollte das Programmierkabel auf der µControllerseite aussehen. Dann sollte es einwandfrei funktionieren.
Hallo, danke für die Tips .. leider hilft alles nichts ... sobald er anfängt was zu schreiben bricht er ab ... d.h. wenn ich die start adresse auf 0000h setze bricht er sofort ab ... wenn ich sie auf 1000h setze kommt er so bis 50% bei 1b00h bis 80% und bei 1ff0h bis 90% .. also alles was nicht ff ist macht ihm Probleme ... Ich habe mal die Pins vom parallelen gemessen und da ist mir aufgefallen, dass sich auch der 5 PIN also D3 immer zwischen high und low bewegt ... der ist jedoch bei der Belegung von aec_isp garnicht vorgesehen ... warum wird er dann angesteuert? Naja .. die anderen werden auch angesteuert also insofern ist das Kabel glaube ich auch OK ... kann ich den Chip noch anders programmieren? Seriell oder so? Langsam verliere ich die Hoffnung ... Hermann
Moin Hermann! Wenns dich tröstet ich hab das selbe Problem mit den 8252 und bin trotz high-tech-oszi noch nicht weiter! MfG und wenn du den Fehler hast sag bescheid!
Ich benutze diesen Programmer und hatte noch nie Probleme mit dem AT89S8252: http://www.specs.de/users/danni/tools/isp53/index.htm Du mußt bloß einmal den benötigten AT89C2051 programmieren lassen, z.B. bei Segor. Peter
Was für nen Rechner habt ihr denn? Was für ein Betriebssystem? In welchem Modus läuft eure parallele Schnittstelle? Ist das Target-Board auch mit Spannung versorgt? Denkt daran, das Kabel muß kurz sein. (Oder mit ner Signalaufbereitung beim µController ausgestattet sein!) Waren die Controller schon mal programmiert? (Vielleicht sind die Schutzbits gesetzt. Dann muß dann den Controller komplett löschen.) Geht der Controller überhaupt? Schwingt der Oszillator? Benutzt ihr auch das richtige Kabel? (Muß 1:1 durchverbunden sein.) So, diese Fragen sollten euch mal ne weile beschäftigen. Wenns dann immer noch nicht funktioniert, probiert es mal auf nem anderen Rechner. Bis denn, ERDI - Soft.
Kann mir jemand mal ne Funktionierende hex schicken, die einfach einen PORT-pin setzt und löscht? Danke schon mal!
Noch mal was: Welchen Typ benutzt Ihr? S oder LS? Ich weiß nicht, ob die Programmiersoftware den Typ abfrägt oder nicht. Falls ja, kann das der Grund sein, warum der Controller nicht programmiert wird. (Auch mal in der Software den richtigen Typ einstellen.)
Hallo! Also, wie gesagt, pass auf die Reihenfolge beim Anlegen der Spannung auf, sonst ist der uC und vielleicht auch die parallele Schnittstelle des PC hinüber. Dann bringen hier alle Nachbesserungen nix mehr. Mein 89S53 tat auch mal kurz nix mehr. Bier getrunken, eine Nacht geschlafen, Verbindungen nochmla gecheckt -> er ging wieder. Ich würde mal beim Quarz anfangen, ob der was tut. Mit digitalmulti zwar schwer, wenn am Ausgang des Oszi aber ca. 1,8 bis 2,4 Volt anliegen müsste er tun. Kabel max. 30 cm zwischen PC und Controller, Pins 18-25 an GND. Was noch ein Versuch Wert wäre: LEDs an Port 1 und ein paar mal den Reset durchführen und kucken, ob die LEDs an/aus gehen. Hast du die Resetbeschaltung auf 10uF und 10K geändert? Setup-Einstellungen im Menü von AEC_ISP richtig (Reset=High)? Hast du noch irgendwelche Geräte am Parallelport installiert oder noch alte Scannertreiber etc. installiert? Meiner läuft mit Windows98 und 486 bzw. Pentium 1GHz einwandfrei. Gruß, hoschi
Ok, hier nun ne kleine HEX, die mit dem AT89S8252 funktionieren müsste. (Mit dem L-Typ auch. Hab sie allerdings nicht ausprobiert.)
Moin! Danke für die hex, aber kann ich die hex einfach speichern? Am besten du schickst mir dir hex noch mal per mail. Ronny.Fritz@sew-eurodrive.de DANKE!!! MfG
Rechtsklick, "Save Target as.." oder "Ziel speichern unter...", und schon hast du die original HEX-Datei bei dir auf der Platte.
Hallo, also nachdem ich nun wirklich alles ausprobiert habe, was Ihr vorgeschlagen hattet, und trotzdem nichts funktioniert hat, bin ich heute morgen los und hab nen neuen Controller besorgt. Jetzt funktioniert alles einwandfrei. Habe den alten anscheinend beim rumprobieren zerschossen ;) ... naja ... Vielen Dank nochmal für die zahlreichen Tipps .. jetzt kann es endlich los gehen ;)) Hermann
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.