Forum: Mikrocontroller und Digitale Elektronik AT89C51RD2 nach Neukauf keine Connection


von Bernhard Uhl (Gast)


Lesenswert?

Hallo!

Ich habe soeben einen AT89C51RD2 von Atmel (der aus unbekanntem Grund 
zwischen Versorgung und Masse nur mehr 5 Ohm augbieten konnte und somit 
den vorgeschalteten Stab.-IC schon nach sehr kurzer Zeit zum thermal 
overload brachte) durch einne neuen, exakt den selben uC ersetzt und 
kann jetzt nicht mehr via RS232 auf ihn zugreifen.

Ich habe daher überprüft ob er überhaupt etwas macht, habe daher die 
Port-Spannungen beim Reset gemessen (müssten 5V sein). Diese Ports 
befinden sich jedoch permanent auf einem Potential von 5V. Der Reset hat 
jedoch darauf keinen Einfluss.

Darum meine Frage: Gibt es irgendetwas was man tun muss, wenn man einen 
neuen uC kauft (denn ich habe irgendwie das Gefühl der uC arbeitet gar 
nicht) ???

von Jobst M. (jobstens-de)


Lesenswert?

Normalerweise sollte er in einer funktionierenden Umgebung arbeiten.
Hast Du ein Schaltbild?


Gruß

Jobst

von Ralf (Gast)


Lesenswert?

Du hast hoffentlich nach dem Ausbau des defekten Controllers und vor dem 
Einbau des neuen Controllers untersucht, warum der defekte Controller 
defekt war? Kann ja sein, dass es mal kurzzeitig Überspannung gab, was 
noch andere Schaltungsteile ins Nirvana geschickt hat, die wiederum 
für's korrekte Funktionieren wichtig sind?

Als erste Kontrolle fallen mir da abgesehen von der Versorgungsspannung 
der Reset ein (hast du wohl schon geprüft) sowie die Prüfung, ob der 
Quarz quarzt.

Ralf

von Bernhard Uhl (Gast)


Angehängte Dateien:

Lesenswert?

@Jobst M.: Schaltplan + Bild der Platine ist angehängt!

@Ralf: Wie überprüft man denn ob der Quarz richtig funtkioniert? Ich 
habe leider kein Oszillsokop, nur ein Multimeter. Somit kann ich auch 
den Reset nicht richtig überprüfen, da mein Reset-Taster nur einen 
kurzen Impuls von ca. 5V und einer dauer von 50ms an den uC sendet und 
das Multimeter diesen einfach nicht wirklich erfassen kann

von Jogibär (Gast)


Lesenswert?

Hallo,

programmiert ist dieser, oder ?

Jogibär

von Ralf (Gast)


Lesenswert?

> Wie überprüft man denn ob der Quarz richtig funtkioniert? Ich
> habe leider kein Oszillsokop, nur ein Multimeter.
Ein schwingender Quarz sollte dir einen Spannungswert von etwa VCC/2 
anzeigen...

> Somit kann ich auch den Reset nicht richtig überprüfen, da mein Reset-
> Taster nur einen kurzen Impuls von ca. 5V und einer dauer von 50ms an den
> uC sendet und das Multimeter diesen einfach nicht wirklich erfassen kann
Ähm... du könntest ja auch einfach mitm Finger draufbleiben, oder? :)

Ralf

von Bernhard Uhl (Gast)


Lesenswert?

Meinst du den uC? Ich habe ihn im Elektronikfachhandel gekauft. Muss man 
ihn den vorher irgendwo anders programmieren lassen um ihn selber via 
RS232 zu programmieren?

von Jogibär (Gast)


Lesenswert?

Hallo,

da muß noch die Firmware drauf.
Solange ist der wie tot.


Jogibär

von Bernhard Uhl (Gast)


Lesenswert?

@Ralf: Danke für die Infos. Habe beides Überprüft: Quarz und Reset 
müssten funktionieren ...

@Jogibär: Das könnte das alles erklären. Wie und wo bekommt man eine 
solche firmware bzw. wie kann ich diese dann auf den uC bringen?

von Jogibär (Gast)


Lesenswert?

Hallo,

irgendwie vom Hersteller der Karte.
Oder von einer mitgelieferten CD.

Wenn es dumm läuft, mußt Du den programmierten Chip vom Hersteller 
kaufen.
Das lassen die sich normalerweise fürstlich bezahlen.

Jogibär

von Bernhard Uhl (Gast)


Lesenswert?

Der Hersteller der Karte bin ich mehr oder weniger selber ... und eine 
CD habe ich auch nicht ...

Aber wie könnte ich die firmware denn auf den uC bringen? Ich habe ja 
keine Connection zum uC.

von Bernhard Uhl (Gast)


Lesenswert?

Ich habe jetzt mal ein bisschen gegoogelt und leider überhaupt nichts 
passendes in richtung firmware gefunden ...

weiß irgendwer wo man so was im web findet?

von Stephan (Gast)


Lesenswert?

Bernhard Uhl schrieb:
> Der Hersteller der Karte bin ich mehr oder weniger selber ... und eine
> CD habe ich auch nicht ...
>
> Aber wie könnte ich die firmware denn auf den uC bringen? Ich habe ja
> keine Connection zum uC.

sehr kurios...

von Bernhard Uhl (Gast)


Lesenswert?

@Stephan: Was ist kurios?

von rhamirez (Gast)


Lesenswert?

wo hast du denn den ersten µC her bzw wie hast du den programmiert?

von Matthias K. (matthiask)


Lesenswert?

AT89C51RD2 hat einen internen, werksseitigen UART-Bootloader drauf. Um 
den zu nutzen nimmt man am besten "FLIP", findest Du zum Download auf 
den Atmel-Seiten. Damit kannst Du Dein eigenes Programm in den Flash 
laden.

Die 2 Taster auf den Board starten bei Bedarf den Bootloader. Wie, das 
genau geht, findest Du hier im Forum mehrfach beschrieben. Im Prinzip: 
PSEN mus auf Low liegen, dazu nun kurz RESET drücken, dann erst dann 
PSEN wieder auf HIGH.

von Oliver J. (skriptkiddy)


Lesenswert?

@Bernhard Uhl
Atmel liefert die Teile mit einem Bootloader aus. Dem Datenblatt 
entnehme ich folgende Bedingung für einen direkten Sprung in den 
Atmel-Bootloader nach dem Reset:
PSEN = 0
EA   = 1
ALE  = 1 or Not Connected
http://www.atmel.com/dyn/resources/prod_documents/doc4235.pdf  (S. 101)

Ist diese Bedingung bei einem Reset erfüllt?

von Bernhard Uhl (Gast)


Lesenswert?

@rhamirez: Den ersten uC und die gesamte Peripherie habe ich vor ca. 1,5 
Jahren in der Schule zusammengelötet. Damals musste ich keine Firmware 
laden ...

@Matthias K.: Das habe ich schon mehrfach gemacht und habe ich schon 
gewusst (trotzdem danke). Ich habe ja den uC schon 1,5 Jahre problemlos 
betrieben. Nur jz ist, warum auch immer, auf einmal permanent der 
Stab.-IC überhitzt da (wie bereits geschrieben) der uC zwischen +5V und 
Masse nur mehr 5 Ohm hatte, darum habe ich beschlossen einmal diesen 
auszutauschen. Als ich dann den uC wieder über flip programmieren wollte 
konnte ich keine Vernindung zu diesem aufbauen ...

von Bernhard Uhl (Gast)


Lesenswert?

@Skript Kiddy: JA diese Bedingungen sind erfüllt (habe sie gerade 
überprüft). Weißt du an was es sonst liegen könnte?

von Oliver J. (skriptkiddy)


Lesenswert?

Bernhard Uhl schrieb:
> Weißt du an was es sonst liegen könnte?
Hat es vielleicht der Max232 auch nicht überlebt?
Einfach mal die Pins 11 und 12 am Max232 kurzschließen. Dann mit einem 
beliebigen Terminalprogramm schauen ob du ein Echo bekommst. Wenn du ein 
Echo bekommst, sollte der Max232 noch leben. Achja ich weiß nicht, ob 
der µC diesen Test irgendwie beeinflusst. Deshalb würde ich ihn vorher 
aus dem Sockel nehmen.

von Bernhard Uhl (Gast)


Lesenswert?

@Skript Kiddy: Hab deinen Test ausgeführt. Habe mit Docklight connected 
und die Pins 11 und 12 kurzgeschlossen. Ich bekomme lauter so 
eigenartige Echos wie ein "y" mit 2 Punkten darüber oder andere komische 
buchstaben. Ist das so richtig?

von Oliver J. (skriptkiddy)


Lesenswert?

Mit echo meinte ich, dass du das auf dem Terminal siehst, was du 
sendest.
Hast du den µC entfernt?
Ich kenne dein Terminalprogramm auch überhaupt nicht. Sowas wird bei mir 
mit Hyperteminal oder Putty getestet.

von Bernhard Uhl (Gast)


Lesenswert?

Nein, ich bekomme keine Echo. Das was ich vorher geschrieben hatte war 
wohl etwas zufälliges als ich die Pins 10 & 11 unabsichtlich 
kurzschloss. Also das heißt der max232 ist kaputt?

Leider habe ich kein Hyperterminal (gibt es in Vista nicht), daher 
benütze ich die Freeware-Programme "HTerm" oder "Docklight".

von Bernhard U. (berniuhl)


Lesenswert?

Und Ja, ich habe den uC entfernt

von Oliver J. (skriptkiddy)


Lesenswert?

Bernhard Uhl schrieb:
> Nein, ich bekomme keine Echo. Das was ich vorher geschrieben hatte war
> wohl etwas zufälliges als ich die Pins 10 & 11 unabsichtlich
> kurzschloss. Also das heißt der max232 ist kaputt?

Bin mir nicht sicher ob du das selbe unter Echo verstehst wie ich. Also 
wenn du in dem Terminal-Fenster eine Taste drückst, sollte die darin 
auch erscheinen (so ist es jedenfalls bei Buchstaben und Ziffern). 
Vorrausetzt du hast die beiden Pins am MAX232 gebrückt und die 
Betriebsspannung liegt an.
Wenn du dabei wirklich kein Echo bekommst, dann ist der  MAX232 
wahrscheinlich defekt. Einfach mal nen neuen in den Sockel stecken. Die 
Dinger kosten ja nicht die Welt.

Bernhard Uhl schrieb:
> Leider habe ich kein Hyperterminal (gibt es in Vista nicht)
Stimmt, aber es funktioniert trotzdem unter Vista und Windows 7. Hier 
sind alle benötigten Dateien:
http://rapidshare.com/files/413478504/Hyperterminal.zip.html

von Bernhard U. (berniuhl)


Lesenswert?

Danke für das Programm!!

Ich werde nun den max232 mal ersetzen und falls ich dann noch immer 
keine Connection habe, dann melde ich mich wieder.

Danke soweit.

von Oliver J. (skriptkiddy)


Lesenswert?

Bernhard Uhl schrieb:
> Ich werde nun den max232 mal ersetzen und falls ich dann noch immer
> keine Connection habe, dann melde ich mich wieder.

Wann kann man mit einer Antwort deinerseits rechnen? Musst du den MAX232 
noch besorgen oder hast du ihn griffbereit? Außerdem wäre es nett, wenn 
du dich auch melden würdest, falls es mit dem neuen MAX232 funktioniert. 
:-)

Grüße
Das Skriptende Kind.

von Bernhard U. (berniuhl)


Lesenswert?

Ja ich muss den MAX232 erst besorgen! werde mich auf jedem fall melden!!

von Jobst M. (jobstens-de)


Lesenswert?

Kauf gleich mehrere :-)

Der Schaltplan gehört nicht zu der abgebildeten Platine oder ist nicht 
komplett.

Folgende Liste abarbeiten - wenn etwas nicht zutrifft, NICHT weiter 
machen und hier melden:



1. Alle ICs entfernen.

2. einschalten.

3. 5V Nachmessen. Sollte nicht mehr als 5,5V sein.

4. Board mit PC verbinden (wenn nicht schon passiert).

5. Mit dem Terminal-Programm eine Verbindung herstellen:
 9600 Baud
 8 Datenbits
 Keine Parität
 2 Stopbits
 Keine Flusskontrolle
(Anmerkung: noch ist dies egal, aber hinterher umzustellen ist blöd. 
Soll lt. Datenblatt bei einem 12MHz Quarz mit 2400, 4800, 9600 19200 und 
38400 Bd funktionieren)

6. Prüfen, ob die im Terminal eingegebenen Zeichen NICHT zurück kommen.

7. Im IC-Sockel des MAX 232 die Pins 13 und 14 miteinander verbinden.

8. Prüfen, ob die eingegebenen Zeichen nun zurück kommen.

9. Alle Kabel und die Brücke zwischen Pins 13 und 14 entfernen.

10. MAX 232 richtig herum einsetzen.

11. Serielle Verbindung und Stromversorgung wieder herstellen.

12. Prüfen, ob die im Terminal eingegebenen Zeichen NICHT zurück kommen.

13. Am IC MAX 232 die Pins 11 und 12 miteinander verbinden. (z.B. 
kleinen Schraubendreher dazwischen halten, dabei nicht die Pins 12 und 
13 erwischen ...)

14. Prüfen, ob die eingegebenen Zeichen nun zurück kommen.

15. Alle Kabel und die Brücke entfernen.

16. Den Controller korrekt einsetzen.

17. Serielle Verbindung und Stromversorgung wieder herstellen.

18. Reset- und Programm-Taster gleichzeitig drücken, zuerst Reset und 
DANN Programm loslassen.

19. 'U' (groß!) Auf dem Terminal eingeben.

20. U kommt zurück - Herzlichen Glückwunsch, Du hast erfolgreich den 
Bootloader gestartet.


Das Board funktioniert und Du kannst mit FLIP (oder auch von Hand mit 
dem Terminal) Programme auf den Controller laden.

Reset verlässt den Bootloader wieder und startet Deine Software.


Gruß

Jobst

von Bernhard U. (berniuhl)


Lesenswert?

Danke für die tolle Anleitung!!

Leider komme ich nur bis zum Punkt 14 in deiner Anleitung. Denn die 
eingegebenen Zeichen kommen NICHT zurück. Es wird nur ab und zu ein 
hexadezimales "FF" gesendet, gleich nachdem ich die Pins 11 und 12 
verbinde.

von Oliver J. (skriptkiddy)


Lesenswert?

Bernhard Uhl schrieb:
> Leider komme ich nur bis zum Punkt 14 in deiner Anleitung.
Allem Anschein nach ist der MAX232 im Eimer. Hast ja sicher schon welche 
bestellt. ;)

Gruß
skriptkiddy

von Jobst M. (jobstens-de)


Lesenswert?

Sollte mit einem frischen MAX232 das selbe Problem bestehen, mal die 
Spannungen prüfen:

Pin 2 zwischen 8V und 9V gegen Masse
Pin 6 zwischen -8V und -9V gegen Masse (ja, negativ!)

Sollte das nicht passen, ist einer der Elkos defekt oder verkehrt herum.
Was mich etwas verblüfft ist, daß der Elko an Pin 2 mit Minus an +5V 
hängt.
Das halte ich nicht für so eine gute Idee, denn bei Belastung der +Vs 
(8V) kann es passieren, daß diese unter 5V sinkt und damit der Elko 
verkehrt herum geladen wird. Oder durch einen defekten MAX232. Elkos 
mögen Verpolung überhaupt nicht!


Gruß

Jobst

von Bernhard U. (berniuhl)


Lesenswert?

@Jobst M.: Danke für den Tipp! Die Spg am Pin 2 betrug 9,3V und die an 
Pin 6 -8,9 V! Also alles in Ordnung!

@Skript Kiddy: Nachdem ich den MAX232 ausgetauscht hatte funktionierte 
wieder alles einwandfrei!! Nochmal Danke für die tolle step-by-step 
Anleitung zum austesten!

Auch an alle anderen die dazu beigetagen hatten das Problem zu lösen ein 
Herzliches Dankeschön, echt tolles Forum!!

Ich weiß zwar nicht was nun wirklich den uC und den MAX232 zerstört 
hatt, aber es funktioniert wieder alles !!

Am Ende möchte ich noch einen kleinen Irrtum aus der Welt räumen: Man 
benötigt beim AT89C51RD2 KEINE extra Firmware die man sich vom 
Hersteller irgendwie auf den uC spielen lassen muss ...

von Ralf (Gast)


Lesenswert?

> Man benötigt beim AT89C51RD2 KEINE extra Firmware die man sich vom
> Hersteller irgendwie auf den uC spielen lassen muss ...
Korrekt. Ein Blick ins Datenblatt verrät nämlich, dass der Hersteller 
den Bootloader (logischerweise) schon in der Fab draufpappt...
Ist ne nette Sache, so'n Bootloader :)

Ralf

von Oliver J. (skriptkiddy)


Lesenswert?

Ralf schrieb:
> @Skript Kiddy: Nachdem ich den MAX232 ausgetauscht hatte funktionierte
> wieder alles einwandfrei!!
Freut mich, dass ich dir helfen konnte.


>Nochmal Danke für die tolle step-by-step
>Anleitung zum austesten!
Die Step-By-Step-Anleitung stammt aber nicht von mir, sondern von Jobst 
M.
Dem gebührt also der Dank. ;)

Grüße
skriptkiddy

von Ralf (Gast)


Lesenswert?

@Skript Kiddy:
>> _Ralf_ schrieb:
>> @Skript Kiddy: Nachdem ich den MAX232 ausgetauscht hatte funktionierte
>> wieder alles einwandfrei!!
> Freut mich, dass ich dir helfen konnte.
Ich hab das nicht geschrieben :)

Ralf

von Bernhard U. (berniuhl)


Lesenswert?

Oh tut mir leid ... natürlich hat Jobst M. das verfasst ...

von Oliver J. (skriptkiddy)


Lesenswert?

Ralf schrieb:
> @Skript Kiddy:
>>> Ralf schrieb:
>>> @Skript Kiddy: Nachdem ich den MAX232 ausgetauscht hatte funktionierte
>>> wieder alles einwandfrei!!
>> Freut mich, dass ich dir helfen konnte.
> Ich hab das nicht geschrieben :)
>
> Ralf
Sorry irgendwie vertan. Wahrscheinlich an der falschen Stelle die 
Zitierfunktion aufgerufen.

skriptkiddy

von Ralf (Gast)


Lesenswert?

Macht ja nix, wollte nur keine Lorbeeren, die nicht mir gehören =)

Ralf

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.