Fehler bei Programmübertragung in den AVR

Gast #2161672
Lesenswert?

Hi,

ich habe folgendes Problem:

Beim schreiben meiner .hex datei in meinen Atmega2561 bekommen ich einen 
Fehler an Adresse 1FF00. Die passiert aber nur, wenn meine Programmgröße 
über oder gleich 50% ist.

Als Programmierer benutze ich den Standard Parallelportadapter mit 
74HC244.

Das Programm übertrage ich direkt aus Bascom in den Controller. Bascom 
meldet nach dem schreiben und auslesen den Fehler "Difference at 1FF00".

Was kann das sein? Ich bin langsam am verzweifeln, da ich das neue 
Programm dringend einproggen muss.

MfG
#2161680
Lesenswert?

@  Felix H. (Gast)

>Fehler an Adresse 1FF00. Die passiert aber nur, wenn meine Programmgröße
>über oder gleich 50% ist.

Hmm, das ist die Grenze über 128kB.

>Das Programm übertrage ich direkt aus Bascom in den Controller. Bascom
>meldet nach dem schreiben und auslesen den Fehler "Difference at 1FF00".

Entweder ist das kein Atmega2561 oder du hast einen anderen im BASCOM 
eingestellt.

MfG
Falk
Gast #2161822
Lesenswert?

@Knut: warum einen anderen Programmierer? Das ist doch der Standard 
ISP-Programmierer...

@Falk: also auf dem Chip steht Atmega2561 drauf. Habe auch in Bascom den 
richtigen eingestellt. Ansonsten würde Bascom sofort rummeckern. Ist 
aber nicht der fall...

sonst noch ne idee?

MfG
Gast #2161838
Lesenswert?

>@Knut: warum einen anderen Programmierer? Das ist doch der Standard
>ISP-Programmierer...

Vor 10 Jahren war er das vieleicht mal;)

>@Falk: also auf dem Chip steht Atmega2561 drauf. Habe auch in Bascom den
>richtigen eingestellt. Ansonsten würde Bascom sofort rummeckern. Ist
>aber nicht der fall...
>
>sonst noch ne idee?

Vieleicht kann Bascom über 128k gar nicht mehr programmieren?
Nur so ne Vermutung.
Gast #2161850
Lesenswert?

@Jobst: warum denn voll? Ein Atmega1281 wäre an diesem Punkt voll... 
aber der 2561 hat doch den doppelten speicher.

@holger: bei mir hat der immer zuverlässig funktioniert. Also warum was 
neues Probieren wenn das bewährte funktioniert ^_^

mit welchem Programm könnte ich die übertragung denn noch machen? Bascom 
spuckt mir die .hex ja aus.

könnte es an der Kabellänge liegen? Der LPT Port ist direkt auf der 
Platine mit dem Atmega mit drauf. Verbindung zum PC erfolgt mit 3 Meter 
25-Poligem Sub-D Kabel.

MfG
#2161851
Lesenswert?

@holger (Gast)

>Vieleicht kann Bascom über 128k gar nicht mehr programmieren?
>Nur so ne Vermutung.

Dann sollte der IC nicht wählbar sein bzw. keine Include Files dafür 
existieren. Wühl

Also meine BASCOM-Demo hat ein m2560def.dat  und m2561def.dat. Sollte 
also gehen.
#2161858
Lesenswert?

@  Felix H. (Gast)

>@Jobst: warum denn voll? Ein Atmega1281 wäre an diesem Punkt voll...
>aber der 2561 hat doch den doppelten speicher.

Eine Wort-Adresse ist zwei Byte breit.

>mit welchem Programm könnte ich die übertragung denn noch machen? Bascom
>spuckt mir die .hex ja aus.

Wie groß ist dein HEX-File?

>könnte es an der Kabellänge liegen?

Nein. Die unteren Adressen macht er doch problemlos.

MFG
Falk
Gast #2161865
Lesenswert?

Hi,

dann sollte er mir beim compilieren aber nicht 50% Speicher belegt 
anzeigen. Ich habe schon Atmega32 voll programmiert. Da sagt er dann 
schon bescheid, wenn der Speicher zu klein ist.

Meine .hex ist laut windoof-explorer 358KB groß, die .bin hat genau 
128KB.

MfG
#2162123
Lesenswert?

Felix H. schrieb:
> Meine .hex ist laut windoof-explorer 358KB groß,

Die Dateigröße ist erstmal irrelevant, es kommt auf den Inhalt an. In 
die Hexdatei kann man mittels Textbetrachter oder Texteditor reinsehen, 
in jeder Zeile steht die Adresse, an die die Daten gebraten werden 
sollen. Diese ist aber erstmal nur 16 Bit breit, reicht also nur bis 64 
KB. Der Offset zu größeren Adressräumen wird durch spezielle Zeilen in 
der Hex eingestellt. Einfach mal die Hex danach untersuchen.

...
#2163087
Lesenswert?

Felix H. schrieb:
> Als Programmierer benutze ich den Standard Parallelportadapter mit
> 74HC244.

Alles was über die 64K an Binärcode hinausgeht muss mit einem
"Extended Segment Address Record" eingeleitet werden. Das ist dann der 
Offset für den nächsten 64K-Block.

Dieser ist in deinem "Geht-Nicht"-Hex-File auch vorhanden.
Habe das File mal mit dem JTAGICEmkII auf einen 2560 geflasht.

Kein Fehler. Verify Ok.

Entweder kann der Brenner keine Adressen > 64K verarbeiten oder das 
Programm, welches die Hex-Daten in Binärdaten übersetzt, kommt nicht 
damit klar. Tippe mal auf letzteres.

Am Bascom und dem erzeugten Hex-File liegt es jedenfalls nicht.

mfg.
Gast #2163166
Lesenswert?

interessant...

was sollte ich als nächstes versuchen? Den Programmer wechseln ist eher 
schwierig. Ist momentan kein anderer vorhanden und der jetzige ist wie 
gesagt, bereits auf der Platine integriert. Sollte ich erstmal ein 
anderes Programm zum übertragen verwenden? Ich hab mich schon ein wenig 
in PonyProg eingelesen. Sollte ichs damit mal testen? Dabei steht 
allerdings, dass das Programm den EEPROM mit überschreibt und damit 
löscht! Ich habe auf diesem allerdings Daten abgelegt. Geht das auch 
ohne EEPROM löschen?

Gruß
Felix
Gast #2163187
Lesenswert?

Möglicherweise wäre es hilfreich wenn Du Deinen Programm mal genauer 
spezifizierst. Denn so ganz klar ist (mir jedenfalls) noch nicht, ob es 
nicht doch am Programmer liegt.
Falls es ein selbstgebauter ist, wäre die Schaltung gut und evtl. der 
Link von wo Du die Schaltung hast. Falls es ein gekaufter ist, wäre hier 
auch ein Link hilfreich.
Gast #2163207
Lesenswert?

Hi,

ich verwende diese Schaltung hier:

http://www.rn-wissen.de/index.php/AVR-ISP_Programmierkabel

vllt sollte ich mir mal langsam einen anderen anschaffen... 
vorausgesetzt es liegt daran. Über die Paralelle Buche dauert das schon 
4 minuten bis die 128K da reingedrückt sind... und dann das ganze 
nochmal auslesen =P

was haltet ihr von dem AVR ISP MK2? Vom Preis her recht annehmbar.
Gast #2163232
Lesenswert?

Hm. Nach der Beschreibung ist das Ding kompatibel zum STK200 bzw. 
STK300. Da die schon recht alt sind wäre es evtl. möglich, das die 
Software dazu die gröesseren Megas nicht unterstützt. Hardwaremäßig sehe 
ich kein Problem, da ja das normale MISO/MOSI-Interface verwendet wird.
Evtl. hilft ein Update, wobei mir nicht klar ist, wo man das jetzt noch 
her bekommt.
Allerdings hatte ich immer nur ein STK500 und das MKII; kann also nichts 
aus eigener Erfahrung dazu sagen. Vielleicht/hoffentlich kennt ja jemand 
anders hier den Programmer besser.
Gast #2172305
Lesenswert?

soo, da bin ich wieder.

Teil bestellt, geliefert, angeschlossen.... GEHT NET!

habe die aus Bascom erzeugte .hex file im AVR Studio eingefügt und 
Programmiert. Jetzt bekomme ich IMMER den Fehler:

WARNING: FLASH byte address 0x003E is 0x00 (should be 0xDD).. FAILED!

Habe schon verschiedene Geschwindigkeiten ausprobiert... 125K, 20K, 
6K... immer das gleiche =( Jetzt bekomme ich auch kein "kleines" 
Programm mehr in den Controller, was ja vorher mit dem alten Progger 
noch ging...

HILFE!!!
Gast #2172348
Lesenswert?

>Habe schon verschiedene Geschwindigkeiten ausprobiert... 125K, 20K,
>6K... immer das gleiche =( Jetzt bekomme ich auch kein "kleines"
>Programm mehr in den Controller, was ja vorher mit dem alten Progger
>noch ging...

Wie sieht deine Schaltung an den ISP Pins aus?
Gast #2172370
Lesenswert?

schock... der alte Programmierer hat eben auch einen Fehler bei 003E 
rausgeworfen... dachte schon der Chip wäre hin, aber beim zweiten Anlauf 
hat es dann doch geklappt. Habe das funktionierende Programm mit dem 
alten Progger wieder drin.

Beschaltung? Ich habe nur einen 10K Pullup an Reset. Mehr nicht. Den 
100K am MISO vom alten Programmierer habe ich abgeknippst. Sollte der 
dranbleiben? Dachte das wäre alles in dem USB-Wunderteil integriert...

Gruß
Gast #2173308
Lesenswert?

hi,

habe jetzt eine andere Platine mit Atmega128L dran. Beim flashen kommt 
folgendes:

Reading FLASH input file.. OK
Setting mode and device parameters.. OK!
Entering programming mode.. OK!
Programming FLASH ..      FAILED!
Leaving programming mode.. OK!

ich weiss langsam nichtmehr weiter... die kabellänge vom 6er 
Wannenstecker bis zum µC beträgt gute 15cm... Ist das etwas zu lang?
Gast #2173427
Lesenswert?

So, habe es jetzt nochmal am mega2561 versucht... Beim ersten Versuch 
hat das Programmieren sofort funktioniert. Auch die überprüfung ohne 
Fehler =) Danach gehts aber nichtmehr! Egal was ich mache... Versorgung 
weg, MK2 neu verbinden an PC sowie Atmel, AVR Studio neu starten... 
nichts geht.

Erst wenn ich das Programm wieder über den alten Parallel-Programmierer 
reingeladen habe, kann ich erneut EINMAL mit dem MK2 proggen. Dann 
wieder gleiches Phänomen. Hatte das schonmal jemand? Find ich absolut 
seltsam...
Gast #2173450
Lesenswert?

hi,

also die 100n sind schon dran ;)... ich habe das mit dem "nur" nen 
Pullup auf die Beschaltung der Programmierleitungen bezogen.

ich versteh das nicht... die Schaltung selbst ist ja schon etwa ein 
halbes Jahr alt und läuft tadellos. Bin nur jetzt über die 50% mit der 
Programmgröße gekommen und da zickt der alte Progger rum!

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