mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT89S52 startprobleme


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: semmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peter,

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

Gruß

Semmel

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: semmel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Semmel,

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

Gruß
P

Autor: Zahn Waldemar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.