Forum: Mikrocontroller und Digitale Elektronik AT89S52 startprobleme


von Peter (Gast)


Lesenswert?

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

von semmel (Gast)


Lesenswert?

Hi Peter,

lass mal die ISP Schnittstelle weg, das Programm sollte doch nach einem
RESET loslaufen. EA=1 ? häufiger Fehler.

Gruß

Semmel

von Peter (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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

von semmel (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

Hi Semmel,

das wars! Vielen Dank!
Nächstes mal sollte ich dann also doch das ganze Datenblatt
sorgfälltig lesen... ;)

Gruß
P

von Zahn Waldemar (Gast)


Lesenswert?

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!

von Peter (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.