Forum: Mikrocontroller und Digitale Elektronik Atmega32A flashen über Bootloader u.o. SD-Karte


von Lukas B. (Firma: KRK Elektronik) (lukasboehm78)


Lesenswert?

Hallo liebe Community,

für ein Projekt ist es erforderlich, mehrere Atmega32A mittels einer 
Programmiersteuerung zu flashen. Also mit einem einzelnen Knopfdruck 
sollen dann bis zu 10 Atmega's, entweder in Reihe, idealerweise 
parallel, geflasht werden.

Nun zu meiner ersten Frage:

Das .hex File, welches ich ohne Probleme via AVR-ISP-Adapter und 
Atmel-Studio in meine Prozessoren flashe, ist 66KB groß. Der ATmega32A 
hat aber nur 32KB Speicher. Was passiert beim flashen denn genau, dass 
meine scheinbar zu große .hex-Datei plötzlich in den Prozessor passt?

Meine zweite Frage:

Ich habe mir ein paar Gedanken gemacht, wie ich das Anwendungsprogramm 
übertragen kann. Mein aktueller Plan ist es, die ATmega's über eine 
SD-Karte zu programmieren. Ein externen ATmega32A soll für diesen 
Prozess die Steuerung übernehmen. Damit meine ich, dass mein "Haupt-" 
Atmega in die anderen erst einen Bootloader hinein programmiert, welcher 
sich über die SD-Karte das Anwendungs-Programm lädt.

Ist das sinnvoll?

Viele liebe Grüße
Lukas Böhm

von Sebastian R. (sebastian_r569)


Lesenswert?

Lukas B. schrieb:
> Das .hex File, welches ich ohne Probleme via AVR-ISP-Adapter und
> Atmel-Studio in meine Prozessoren flashe, ist 66KB groß. Der ATmega32A
> hat aber nur 32KB Speicher. Was passiert beim flashen denn genau, dass
> meine scheinbar zu große .hex-Datei plötzlich in den Prozessor passt?

Intel HEX, jedes Byte wird als 2 Byte gespeichert.

Lukas B. schrieb:
> Ist das sinnvoll?

Wenn dein Programmer schon den Bootloader schreibt, weshalb dann nicht 
auch gleich das Anwendungsprogramm?

Für spätere Updates kann man dann ja die SD-Funktion drin lassen.

von Stefan F. (Gast)


Lesenswert?

Lukas B. schrieb:
> Was passiert beim flashen denn genau, dass
> meine scheinbar zu große .hex-Datei plötzlich in den Prozessor passt?

Nicht die HEX Datei wird in den Speicher übertragen, sondern die Daten 
darin. https://de.wikipedia.org/wiki/Intel_HEX

Lukas B. schrieb:
> Damit meine ich, dass mein Haupt-Atmega in die anderen erst einen
> Bootloader hinein programmiert, welcher sich über die SD-Karte das
>  Anwendungs-Programm lädt. Ist das sinnvoll?

Würde ich nicht machen. Wenn dabei was schief geht, blickt niemand mehr 
durch. Die Bootloader sollten nur einmal bei der Produktion des Gerätes 
installiert werden.

von deutschleera (Gast)


Lesenswert?

Lukas B. schrieb:
> dann bis zu 10 Atmega's

Lukas B. schrieb:
> Mein aktueller Plan ist es, die ATmega's über eine
> SD-Karte zu programmieren.

Bitte keine Deppenapostrophen.

http://www.deppenapostroph.info

von c-hater (Gast)


Lesenswert?

Lukas B. schrieb:

> Ist das sinnvoll?

Nein, natürlich nicht. Das treibt den Handling-Aufwand in ungeahnte 
Höhen.

Wennschon ein dedizierter Controller benutzt werden soll (um den 
Bootloader zu flashen), dann kann der auch gleich das komplette Programm 
auf die Targets flashen, und zwar auf alle 10 gleichzeitig.

Man müsste halt nur einen Controller verwenden, der deutlich "größer" 
als die Targets ist. Das Konzept mit der SD-Karte kann man dabei 
durchaus beibehalten, nur das diese dann an diesem Programmiercontroller 
hängt.

Der Rest ist Software. Sprich: man muss programmieren können. Wobei für 
die kompliziertesten Teile ja hinreichend fertige Libs verfügbar sind. 
Man muss nur einen Plan haben, wie man die richtig zusammenbaut.

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.