Forum: Mikrocontroller und Digitale Elektronik 8051er nimmt manche Programme nicht


von Scales O. (scales)


Lesenswert?

ich will einen AT89C51ED2 programmieren,
das Programm wird erfolgreich compiliert und funktioniert im Simulator

FLIP kann auch eine Verbindung zum Microcontroller herstellen,
er kann ihn löschen und andere Programme draufschreiben

aber immerwieder gibt es bei manchen Programmen Probleme,
die Verbindung wird hergestellt, aber sobald ich programmieren drücke
kommt ein Timeout Error

das komische ist dass es definitiv an dem Programm liegen muss,
mit manchen geht es immer und mit den anderen nie, egal wie oft ichs
versuch

ich hab schon verschiedene Microcontroller (alle der gleiche Typ) und
Programmer probiert,
aber immer das Gleiche Ergebniss

compilieren tu ich mit asem-51 (bzw. mit einem IDE dafür: MIDE)


ich versteh nicht wo da das Problem ist,
eigentlich überprüft der Bootloader über den man das PRogramm schreibt
ja nichts,
also müsste man doch jedes einprogrammieren können

also hat vielleicht jemand ne Idee was dem Microcontroller, oder
vielleicht sogar Flip da nicht passen könnte?

von Dieter Werner (Gast)


Lesenswert?

> also hat vielleicht jemand ne Idee was dem Microcontroller, oder
> vielleicht sogar Flip da nicht passen könnte?

Vielleicht die vom Programm belegten Adressbereiche ?

von Scales O. (scales)


Lesenswert?

also ganz kleine Programme gehen eigentlich immer,
also könnte das gut sein

aber eigentlich müsste der Bootloader das doch so reinschreiben dass es
passt,
und ein 100 Byte Programm müsste doch passen

also was soll ich dagegen machen?

von Peter D. (peda)


Lesenswert?

Was hasten fürn Quarz genommen ?

Wenns kein Standardwert ist, wie z.B. 11,0592MHz, dann mußte mal mit
der Baudrate runtergehen.


Peter

von norad (Gast)


Lesenswert?

@scales

>aber immerwieder gibt es bei manchen Programmen Probleme,
>die Verbindung wird hergestellt, aber sobald ich programmieren drücke
>kommt ein Timeout Error.

Das Problem ist wenn Du in deinem P3 irgendwie verwndest oder P3
zurückgesetzt wurde.
D.h. beim ersten Verbinden kommt Timout error und beim zweiten mal
klappt es. Ist aber normal

norad

von Scales O. (scales)


Lesenswert?

ich hab nen 12 Mhz Quarz genommen (weis dass das ungünstig ist),
in meiner Anleitung stand 38400 Baud, dachte der Bootloader kann nichts
anderes,
deswegen hab ich das noch nicht ausprobiert


>Das Problem ist wenn Du in deinem P3 irgendwie verwndest oder P3
>zurückgesetzt wurde.
>D.h. beim ersten Verbinden kommt Timout error und beim zweiten mal
>klappt es. Ist aber normal

ich versteh nicht was das mit P3 zu tun haben soll,
in den kurzen Programmen funktionierts auch mit P3

auch wenn ichs öfter probier macht das keinen unterschied


ich probier jetzt mal ne niedrigere Baudrate,
immerhin hab ich auch ein ganz schön langes Verlängerungskabel dran

von Scales O. (scales)


Lesenswert?

Baudrate war wirklich das Problem,
danke

von norad (Gast)


Angehängte Dateien:

Lesenswert?

UPS!
Wer lesen kann ist klar im Vorteil.


Welche Flip Version verwendest DU??

Bei Flip 2.4.6 konnte ich gar keine Programme übertragen da ich einen
25 Mhz Quarz verwende und da ist die Baudrate nicht so günstig.

Atmel hat mir aber eine neu Datei geschickt (AtIsp.dll) die man in den
Ordner Bin Speichert.

Hab die Datei im Ahnhang beigefügt vielleicht hilfts.

norad

von Scales O. (scales)


Lesenswert?

frag mich was die da mit einer dll Datei groß ändern wollen,
das Problem liegt ja an der Hardware

ich hab jedenfalls 1.88, oder 1.8.8 keine Ahnung,
für Linux gibts keine neuere Version

aber bei mir funzts ja jetzt eh,
scheint an der Kabellänge gelegen zu haben

und die niedrige Baudrate stört nicht wirklich,
ob ich nun 1 Sekunde, oder 1,00irgendwas Sekunden wart ist mir relativ
egal

von norad (Gast)


Lesenswert?

@scales

Kann ich es schmecken oder riechen,das Du mit Linux arbeitest!
Witzbold.
Dann ist die dll natürlich Quatsch.
In der dll wurde die Toleranz der Baudratenabweichung erweitert oder
geändert.

Auf jedenfall übertrage ich wieder mit 115200 Baud anstatt 4800Baud
das ist der Unterschied.

norad

von Peter D. (peda)


Lesenswert?

@norad

"In der dll wurde die Toleranz der Baudratenabweichung erweitert oder
geändert."


Ne, daran kann man nichts ändern.
Wenn die Bits falsch sind, dann sind se falsch.

Man kann höchstens Stop-Bit-Fehler ignorieren, d.h. es müssen dann nur
9 Bit anstatt alle 10 Bit stimmen.

Bzw. da ja nur ASCII übertragen wird, kann man auch noch das 8.
Datenbit ausmaskieren.

Diese Dirty-Hacks gehen aber nur in Empfangsrichtung MC -> PC.


Wenn aber der MC falsch empfängt, ists Essig.


Peter

von Scales O. (scales)


Lesenswert?

>Kann ich es schmecken oder riechen,das Du mit Linux arbeitest!
>Witzbold.

das war ja kein Vorwurf oder so,
ich hab bloß gesagt dass ich 1.88 hab weil du gefragt hast

und hätte ich nicht gesagt dass ich Linux benutz, wär gleich der
Ratschlag gekommen die neue Version zu nehmen


das mit der DLL war allgemein gemeint, windows zu benutzen wär auch
nicht das Problem gewesen

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.