Hallo, ich versuche zur Zeit mit einem AT89C2051 - den ich allerdings nur als Seriell zu Parallel converter benutze - einen AT89S52 über dessen SPI zu programmieren. Das SPI Signal wird dabei per Software auf dem Computer erzeugt. Vor einem Jahr hat das auch alles super funktioniert, habe das Projekt dann kürzlich wieder "rausgekramt" und bekomme nun die programmierten AT89S52 chips nicht mehr zum laufen :( Am Programmiergerät sollte es eigentlich nicht liegen, da ich mein Programm erfolgreich wieder auslesen konnte. Wenn ich den AT89S52 jedoch resette (benutze z.Zt. nur ein Kabel welches ich kurz auf high setze; RST ist über 560 Ohm Wiederstand mit GND verbunden) startet das Programm nicht... Mein Testprogramm sieht so aus: begin: mov P1, #10101010b mov P1, #01010101b ajmp begin Merkwürdig ist, dass ich manchmal nach dem Anlegen der Spannung (ohne reset) das 10101010 Signal an P1 bekomme, sobald ich dann jedoch resette, ist der gesamte Port auf high... Das Programm scheint also schon irgendwie in den Weiten des Speichers zu sein ;) Hat jemand eine Idee, was ich falsch machen könnte? Das ist mein erstes µC Projekt seit so ca. einem Jahr, kann also gut sein, dass ich irgendwas triviales falsch gemacht hab... Vielen Dank schonmal im Voraus Peter
Hi Peter, lass mal die ISP Schnittstelle weg, das Programm sollte doch nach einem RESET loslaufen. EA=1 ? häufiger Fehler. Gruß Semmel
Hi, die Programmierkabel hab ich alle weggenommen, aber nach einem Reset tut sich nichts :( EA = 0 (muss das auf 1?), genauso wie P0 = 00H. Bei P1, P2, P3 sind alle Pins auf 1 Beim Durchmessen von P0 (nach einem Reset) haben dann die LEDs die ich an P1 habe mal kurz angefangen zu blinken, also das Verhalten gezeigt, was eigentlich (nur wesentlich schneller) stattfinden sollte. Könnte es irgendein problem mit der Taktung geben? Sodass das Programm zu langsam, oder gar nicht läuft? Ich habe allerdings schon mehrere Quarze mit 12MHz und 22.11...MHz ausprobiert. Der Quarz ist auch nur 5mm vom Chip entfernt. An meiner noch recht primitiven Resetschaltung bei der ich RST einfach kurz über ein kabel mit VCC verbinde kann es doch eigentlich auch nicht liegen, oder? Gruß P
Was mir noch zur Taktung eingefallen ist... Wenn man den AT89S52 programmieren und auslesen kann, sollte der Quarz ja eigentlich in ordnung sein, oder? Gruß P
Hi Peter EA muss auf 1, andernfalls erwartet der AT89S52 ein BUS System. EA = External Access, EA=1 => Flash EA = 0 => external RAM/EPROM Semmel
Hi Semmel, das wars! Vielen Dank! Nächstes mal sollte ich dann also doch das ganze Datenblatt sorgfälltig lesen... ;) Gruß P
hi ich weis nicht ob sich das Problem erledigt hat aber ich denke dass dein Programm einfach nur zu schnell durchgearbeitet wird und due es garnicht merkst dass die lesd blinken! versuch mal zwischen die zwei ausgaben eine warteroutine zu machen. am besten: MOV R1, #C8H MOV R2, #14H WARTE: DJNZ R1, WARTE DJNZ R2, WARTE so müsste du das blinken auf jedenfall sehen!
Hi, das Problem ist gelöst, es lag an dem EA Pin den ich nicht mit VCC verbunden hatte. Das mit der Geschwindigkeit war mir klar. Ich habe zum Überprüfen ein Oszi angeschlossen. Trotzdem danke P
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.