AT89C51ED2 Ports funktionieren nicht

OP #3137430
Hallo,

nach langem Versuchen und Recherchieren muss ich wohl um Hilfe bitten.

Problemdefinition:
Versuche einen AT89C51ED2 (PLCC68-Gehäuse) anzusteuern.
Aber es klappt nicht so, wie ich es mir vorstelle.

Ich verwende Keil µVision 4 zum Programmieren und Flip 3.4.7 zum 
Flaschen.
Ich kann die .HEX erstellen, mit Flip eine Verbindung aufbauen und 
anscheinend erfolgreich flaschen.

Aber der IC tut nichts.

Testcode:
1
#define MICROCONTROLLER_T89C51ED2
2
#include <mcs51reg.h>
3

4
void main(void)
5
{
6
    while(1) 
7
  {
8
    P0 = 0xAA;
9
    P1 = 0xAA;
10
    P2 = 0xAA;
11
    P3 = 0xAA;
12
    P4 = 0xAA;
13
    P5 = 0xAA;
14
  }
15
}

Selbst dieser simple code funktioniert nicht.

Beim Versuch mit einer LED, bleibt diese an allen Pins aller Porte aus.
Direkt an VCC leuchtet sie aber.

VCC liegt bei ~4,95V.

Wisst ihr Rat oder irgendwelche Dinge, die ich noch testen könnte?
OP
Leider weiß ich nichts über das BLJB bit.

Die Beschaltung ist wie im Anhang.

Und was lowaktiv betrifft, ich habe extra den Wert 0xAA gewählt, damit 
die eine Hälfte an und die Andere aus ist.

Aber egal wie ich die LED pole, die leuchtet einfach nicht, als ob der 
µC komplett sperrt.

Also ich schon folgendes getestet:
LED-GND an Port & LED-VCC an VCC -> leuchtet nicht
LED-GND an GND & LED-VCC an Port -> leuchtet nicht
sogar
LED-GND an VCC & LED-VCC an Port -> leuchtet nicht
LED-GND an Port & LED-VCC an GND -> leuchtet nicht

Aber tut sich nichts.
Angehängte Dateien:
OP
Ich habe mal versucht da noch einen 47K Widerstand auf masse zu legen, 
ohne dass sich etwas geändert hat.

Warum kein Massepotenzial anliegt kann ich auch nicht sagen.
Die Schaltung ist mehr oder weniger nachgebaut.
beim googeln nach "HW_Doku_AT89C51ED2-Testboard.pdf" solltet ihr fündig 
werden.
Gast
Alexander O. schrieb:

> Warum kein Massepotenzial anliegt kann ich auch nicht sagen.
> Die Schaltung ist mehr oder weniger nachgebaut.

Trotzdem sollte man dann jederzeit darüber in Kenntnis sein, was in der 
Schaltung passiert.

Dann schau mal ins Datenblatt, wie der Reset-Pegel sein sollte, ob das 
mit der Schaltung überein stimmt. Denn normalerweise liegt am Reset ein 
zeitbestimmendes RC-Glied zwischen VCC und GND. Es sei denn, der 
Reset-Pin hat intern irgendwo eine Masse, z.B. über Pulldown-Widerstand. 
Das erscheint mir aber ungewöhnlich.
Gast
Alexander O. schrieb:

> beim googeln nach "HW_Doku_AT89C51ED2-Testboard.pdf" solltet ihr fündig
> werden.

Ja, OK. Der Reset wird wohl über DTR von der RS232 gesteuert. Das geht 
ja aus dem Schaltbildanhang nicht hervor.

Ob beim Flash-Download über Keil aber DTR angesteuert wird, und wie DTR 
im Ruhezustand ist, ist eine neue Frage. Vielleicht braucht man da noch 
was anderes als die Keil-Umgebung.
Gast
Alexander O. schrieb:
> Leider weiß ich nichts über das BLJB bit.
>
> Die Beschaltung ist wie im Anhang.

Du hast doch mit FLIP programmiert. Das ist eine Einstellung in FLIP. 
Wenn das BLJB falsch gesetzt ist läuft deine Applikation nicht an.
Ich glaube das BSB auf 0x01 und SBV auf 0x00 zu setzen sollte ausreichen 
um vom on-chip Flash von Adresse 0 loszulaufen.
OP
Nach langem testen scheint es zu funktionieren.
Bei dem Schaltplan wird der Programmmodus durch einen DIP-Schalter 
betätigt.
Ich habe diesen bei vielen Tests vergessen umzulegen bzw. zu trennen.
Jedoch hatte ich auch bereits Tests am DIP-Schalter getätigt, ohne 
vorherigen Erfolg.

Im Moment funktioniert es, wenn ich diese umlegen und dann den Reset 
drücke.

Aber ich hatte bisher auch viel herumexperimentiert, deswegen weiß ich 
nicht genau, ob es nur an diesem Schalter lag.

Ich werde noch ein wenig testen müssen.

Was die anderen Vorschläge betrifft:
Das setzen des BLJB schien nach dem Reset keinen unterschied zu machen.
Auch der Widerstand am Reset zum GND hatte nichts geändert.
Gast
Alexander O. schrieb:

> Im Moment funktioniert es, wenn ich diese umlegen und dann den Reset
> drücke.

Es sieht mir fast so aus, als ob mit dem DIP-Schalter zwischen echtem 
Betrieb an der RS232 und autonomem Betrieb umgeschaltet wird.

Viele Flash-Tools verwenden an der RS232 das DTR-Signal zum Reset.

Aber, wenns denn jetzt geht...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.