Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.sci.electronics > #249455 > unrolled thread

Atmel MEGA2561 programmieren

Started byBernd Laengerich <bernd.laengerich@web.de>
First post2018-11-16 21:40 +0100
Last post2018-11-18 23:27 +0100
Articles 5 — 3 participants

Back to article view | Back to de.sci.electronics


Contents

  Atmel MEGA2561 programmieren Bernd Laengerich <bernd.laengerich@web.de> - 2018-11-16 21:40 +0100
    Re: Atmel MEGA2561 programmieren Heinz Schmitz <kma@kma.org> - 2018-11-17 10:37 +0100
    Re: Atmel MEGA2561 programmieren Michael Bäuerle <michael.baeuerle@gmx.net> - 2018-11-17 11:16 +0000
      Re: Atmel MEGA2561 programmieren Bernd Laengerich <bernd.laengerich@web.de> - 2018-11-17 16:45 +0100
      Re: Atmel MEGA2561 programmieren Bernd Laengerich <bernd.laengerich@web.de> - 2018-11-18 23:27 +0100

#249455 — Atmel MEGA2561 programmieren

FromBernd Laengerich <bernd.laengerich@web.de>
Date2018-11-16 21:40 +0100
SubjectAtmel MEGA2561 programmieren
Message-ID<g58o97Fad58U1@mid.individual.net>
Hi,

ich stehe gerade vor einem Rätsel. Gestern habe ich einen MEGA2561 auf 
eine Platine gelötet. Heute wollte ich den mittels ISP programmieren.
Habe den FastBoot-Loader programmiert, das Ding startet (Anzeige mit 
LED). Danach wollte ich das eigentliche Hauptprogramm, weil er schon am 
Dongle hängt, auch programmieren: Nix läuft.

Nachdem das alles merkwürdigerweise mit mehreren Versuchen nicht lief, 
habe ich festgestellt, daß der irgendwie nur die Hälfte des Speichers zu 
haben scheint: Der Bootloader, der ab 3FC00 liegt, erscheint auch unter 
1FC000. Beim Speichern des Hauptprogrammes über 1FC00 hinaus wird der 
dann zerschrieben. Schreibe ich den Bootloader ab 0FC00, dann taucht er 
beim Lesen auch wieder unter 2FC00 auf.

Der Programmer ist ein MX-USBISP Programmer, der nur unter ProgISP 1.72 
läuft. Leider nicht STK500-kompatibel. Damit habe ich aber noch nie so 
große Atmels programmiert.

Frage dazu: Ist es möglich, daß eine fehlerhafte Außenbeschaltung (Pin 
z.B. dauerhaft auf Masse) diesen Fehler intern hervorruft?

Ansonsten kommt mir nur noch defekter Proz oder Programmer in den Sinn.

Bernd

[toc] | [next] | [standalone]


#249456

FromHeinz Schmitz <kma@kma.org>
Date2018-11-17 10:37 +0100
Message-ID<j9ovudduuoqg7c9mpqrkc0nl9egeo9u0h6@4ax.com>
In reply to#249455
Bernd Laengerich wrote:

>Nachdem das alles merkwürdigerweise mit mehreren Versuchen nicht lief, 
>habe ich festgestellt, daß der irgendwie nur die Hälfte des Speichers zu 
>haben scheint:

Wo hast du den Chip gekauft?

Grüße,
H.

[toc] | [prev] | [next] | [standalone]


#249461

FromMichael Bäuerle <michael.baeuerle@gmx.net>
Date2018-11-17 11:16 +0000
Message-ID<AABb7/h+F78AAAvf.A1.flnews@Server4.micha.freeshell.org>
In reply to#249455
Bernd Laengerich wrote:
> 
> ich stehe gerade vor einem Rätsel. Gestern habe ich einen MEGA2561 auf 
> eine Platine gelötet. Heute wollte ich den mittels ISP programmieren.
> Habe den FastBoot-Loader programmiert, das Ding startet (Anzeige mit 
> LED). Danach wollte ich das eigentliche Hauptprogramm, weil er schon am 
> Dongle hängt, auch programmieren: Nix läuft.
> 
> Nachdem das alles merkwürdigerweise mit mehreren Versuchen nicht lief, 
> habe ich festgestellt, daß der irgendwie nur die Hälfte des Speichers 
> zu haben scheint: Der Bootloader, der ab 3FC00 liegt, erscheint auch 
> unter 1FC000. Beim Speichern des Hauptprogrammes über 1FC00 hinaus wird 
> der dann zerschrieben. Schreibe ich den Bootloader ab 0FC00, dann 
> taucht er beim Lesen auch wieder unter 2FC00 auf.
> 
> Der Programmer ist ein MX-USBISP Programmer, der nur unter ProgISP 1.72 
> läuft. Leider nicht STK500-kompatibel. Damit habe ich aber noch nie so 
> große Atmels programmiert.
> 
> Frage dazu: Ist es möglich, daß eine fehlerhafte Außenbeschaltung (Pin 
> z.B. dauerhaft auf Masse) diesen Fehler intern hervorruft?
> 
> Ansonsten kommt mir nur noch defekter Proz oder Programmer in den Sinn.

Das Flash der AVRs wird wortweise addressiert (weil die AVR-Befehle
16bit Breite haben), d.h. jenseits der 128KiByte Grenze (ab Wort-Adresse
0xFFFF) sind mit 16bit-Adressen Klimmzüge erforderlich um die zweite
Bank zu verwenden.
Deine Adressen oben sind Byte-Adressen, d.h. die Grenze zur zweiten Bank
liegt dann bei 0x1FFFF/0x20000. Das würde die Spiegelung von 0x3FC00 zu
0x1FC00 erklären (nur der halbe Speicher zugänglich).

Wenn dein Programmer das serielle ISP-Interface verwendet, dann muss
er via "Load Extended Address Byte" die Adressbits jenseits 0xFFFF
setzen, bevor er auf das Flash (oder dessen Page-Buffer) zugreift.
Das ursprüngliche ISP-Protokoll hatte nur 16bit Adressen, d.h. damit
ist der Flash-Speicher jenseits 128KiByte gar nicht zugänglich.
Ich würde vermuten, dass dein Programmer und/oder deine Programmier-
software nicht mit AVRs >128KiByte Flash umgehen kann.

[toc] | [prev] | [next] | [standalone]


#249484

FromBernd Laengerich <bernd.laengerich@web.de>
Date2018-11-17 16:45 +0100
Message-ID<g5ard9Fo7oaU1@mid.individual.net>
In reply to#249461
Am 17.11.2018 um 12:16 schrieb Michael Bäuerle:

> Wenn dein Programmer das serielle ISP-Interface verwendet, dann muss
> er via "Load Extended Address Byte" die Adressbits jenseits 0xFFFF
> setzen, bevor er auf das Flash (oder dessen Page-Buffer) zugreift.
> Das ursprüngliche ISP-Protokoll hatte nur 16bit Adressen, d.h. damit
> ist der Flash-Speicher jenseits 128KiByte gar nicht zugänglich.
> Ich würde vermuten, dass dein Programmer und/oder deine Programmier-
> software nicht mit AVRs >128KiByte Flash umgehen kann.

Danke, der Verdacht hat sich erhärtet. Das Ding blendete mich ob des 
schönen Gehäuses. Den Bootloader habe ich jetzt draufgeflasht und dann 
seriell die eigentliche Software > 128KB. Das hat funktioniert, auch 
Verify klappt. Vermutlich komme ich jetzt nicht mehr in den Bootloader, 
aber das ist mir erstmal egal.

Es ist wohl tatsächlich der ISP-Dongle oder die zugehörige Software. 
Aufschrift intern MX-USBISP V5.00 2018-03-18. Man kann wohl USBASP drauf 
flashen (zumindest für V4.00 wird das behauptet), was ich beizeiten mal 
probieren werde.

Damit steht ein ISP-Programmer auf der Einkaufsliste.

Bernd

[toc] | [prev] | [next] | [standalone]


#249546

FromBernd Laengerich <bernd.laengerich@web.de>
Date2018-11-18 23:27 +0100
Message-ID<g5e7atFgk83U1@mid.individual.net>
In reply to#249461
Am 17.11.2018 um 12:16 schrieb Michael Bäuerle:

> Ich würde vermuten, dass dein Programmer und/oder deine Programmier-
> software nicht mit AVRs >128KiByte Flash umgehen kann.

So, jetzt habe ich einen Arduino Uno als STK500v1 genutzt, um den 
MX-USBISP mit USBasp von Thomas Fischl zu versorgen. Das funktioniert, 
ich kann jetzt mittels avrdude sowohl den Arduino als auch den USBasp 
ansprechen.

Die Version 2011-05-28 von USBasp sagt in den release notes:

usbasp.2011-05-28 (v1.4)
------------------------
- added TPI support for ATTiny4/5/6/10 (by Slawomir Fraś)
- added support for controllers with flash >128kb (by Slawomir Fraś)

Merkwürdigerweise liefert der USBasp immer noch Mist, während der 
Arduino korrekt arbeitet. Kann man also auch nicht empfehlen.

Naja, Reichelt wird wohl demnächst liefern...

Bernd

[toc] | [prev] | [standalone]


Back to top | Article view | de.sci.electronics


csiph-web