Forum: Mikrocontroller und Digitale Elektronik Problem AT89C51RC2 mit FLIP


von Juergen B. (jbaben)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe das Problem mit der Programmierung des MC AT89C51RC2 mit dem 
Programm FLIP.
Wenn die erzeugte HEX-Datei größer als 128 Byte ist, wird die HEX-Datei 
nicht übertragen.
Die HEX-Datei habe ich mit dem Programm MC-51 V5.9.2 erzeugt.
Datei blink_LED_P1.hex 128 Byte funktioniert.
Datei blink_LED_P1_0.hex 153 Byte funktioniert nicht.

von uff basse (Gast)


Lesenswert?

Und was wäre dein Anliegen bzw. Frage dazu? Sollen wir
uns deine Fragen selbst stellen oder wie hattest du dir
das gedacht?

von Juergen B. (jbaben)


Lesenswert?

Sorry,
ich dachte das Problem wäre ausreichend dargestellt.
Mein Problem ist: ich möchte natürlich auch größere HEX-Dateien als nur 
Dateien mit 128 Byte übertragen.
Der Flash-Speicher beträgt ja 32 KByte.
Ich kann mir leider nicht denken wo bei mir der Fehler liegen könnte, 
deshalb mein Thread.

MfG

Juergen B.

von Georg G. (df2au)


Lesenswert?

Juergen B. schrieb:
> funktioniert nicht

was verstehst du darunter? Funktioniert der Upload nicht oder tut die 
Datei nicht das Verlangte?
Eine genauere Beschreibung des Fehlers wäre hilfreich.

von Thomas Z. (usbman)


Lesenswert?

das hat aber nichts mit der Größe der Hexdatei zu tun. Zeig die Sourcen.

Was zum Teufel ist MC-51 V5.9.2

: Bearbeitet durch User
von Juergen B. (jbaben)


Angehängte Dateien:

Lesenswert?

Hallo,

da habe ich mich wohl zu kurz mitgeteilt.
1. funktioniert nicht bezieht sich auf die Übertragung mit FLIP.
   Löschen und Blank Check für das Device AT89CRC2 ist OK, bei Program 
kommt
   die Fehlermeldung: Time Out (nach 10 Sekunden).

2. MC-51 V5.9.2 ist der Assembler-Compiler welcher die beiden 
HEX-Dateien erzeugt hat.

3. Anbei die beiden Sourcen

4. Ich habe auch HEX-Dateien die mit Keil C-Compiler erzeugt wurden 
getestet, gleiche Fehlermeldung. Da die erzeugten HEX-Dateien bei der 
gleichen Funktion (blikende LED an Port P1.0) schon größer als 128 Byte 
sind.

MfG

Juergen B.

von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Anbei dein blink-0 in etwas anderer Form. Versuch doch mal, ob es sich 
flashen lässt.

Ich kenne Flip nicht. Nach deinem Test kennen wir die Ursache. mit "128 
Bytes" hat es mit Sicherheit nichts zu tun.

von Thomas Z. (usbman)


Lesenswert?

reduziere mal die Baudrate für Flip. Das Flashen einer Intel Hex Zeile 
braucht etwas Zeit. 9600 ist ein guter Wert

von Georg G. (df2au)


Lesenswert?

Ich hätte erst nach dem Flip Handbuch suchen sollen...

Unter Troubleshooting findet man:
Time Out Error
– Check the communication medium connections and the target hardware
power supply.
If everything is allright, reset the target hardware and select a 
smaller baud
rate from the FLIP communication medium dialog box. For maximum
performance purpose, FLIP and its software companion (the bootloader) do
not perform any data flow control (no XON/XOFF). Therefore, at high baud
rates, it may happen that the bootloader has no time enough to perform 
data
management and does not answer properly to the FLIP commands or the
answer comes too late.

Thomas hat es schon geschrieben, du versuchst mit zu hoher 
Geschwindigkeit zu flashen. Den Programmierer von Flip sollte man <von 
der Zensur gestrichen>.

von Gunnar F. (gufi36)


Lesenswert?

steht auch in der Anleitung von Flip, dass die maximale Baudrate von der 
Quarzfrequenz am Controller abhängt.

von Juergen B. (jbaben)


Lesenswert?

Hallo,

vielen Dank für die ausführlichen Antworten, mein Problem ist nun 
gelöst.
Lösung: Baudrate = 9600.

Ich hatte nur gelesen das die Baudrate = 57600 sein muss.
Ich verwende einen Quarz mit 16.000 MHz.

Eine Frage noch:
Wenn nicht FLIP, welches Programm kann ich denn dann verwenden ?

MfG

Juergen B.

von GeGe (Gast)


Lesenswert?

Juergen B. schrieb:
> Ich verwende einen Quarz mit 16.000 MHz.
RS232 ist eine asynchrone Schnittstelle, das Problem ist bei diesen 8052 
Mikrocontrollern laufen bei 16Mhz Sender und Empfänger bei höheren 
Baudraten zu weit ausseinander und irgendwann wird ein gesendetes Byte 
verschluckt.

Juergen B. schrieb:
> Eine Frage noch:
> Wenn nicht FLIP, welches Programm kann ich denn dann verwenden ?

Ich kenna auch nur FLIP, aber mit einem anderen Programm hat man das 
Problem genauso.

Hier schon älter:
Beitrag "RS232 mit 89C51"

von Peter D. (peda)


Lesenswert?

Juergen B. schrieb:
> Ich verwende einen Quarz mit 16.000 MHz.

Nimm besser mal 14,7456 oder 11,0592MHz.

von Thomas Z. (usbman)


Lesenswert?

Der 89C51RC2 hat meines Wissens einen dezidierten Baudrategenerator das 
entschärft das Problem etwas. Wenn ich mich richtig erinnere benutzt der 
Bootloader den auch.

von GeGe (Gast)


Angehängte Dateien:

Lesenswert?

Peter D. schrieb:
> Nimm besser mal 14,7456 oder 11,0592MHz.

der AT89C51RC2 kann man auch höher Takten, laut Datenblatt im X2 Modus 
bis 30MHz bei Versorgung 4,5V-5,5V und gar 60MHz im Standardmodus.
24MHz wäre also für den auch noch ein guter Quarz. (s.Bild aus 
Datenblatt)

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.