AT89C51ED2 Ports funktionieren nicht

OP #3137430
Lesenswert?

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 #3137471
Lesenswert?

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 #3137513
Lesenswert?

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 #3137541
Lesenswert?

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 #3137556
Lesenswert?

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 #3137599
Lesenswert?

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 #3137611
Lesenswert?

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 #3137636
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren