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) ???
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
@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
> 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
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?
@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?
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
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.
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?
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...
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.
@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?
@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 ...
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.
@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?
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.
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".
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
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.
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.
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
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.
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
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
@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 ...
> 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
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
@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
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