Forum: Mikrocontroller und Digitale Elektronik ATMEGA128 Bootloader?


von Christoph (Gast)


Lesenswert?

Hallo,

ich hab die C-ControlPro Mega 128, auf dieser ist ein ATMEGA128 
Controller drauf.
Ich würde gerne diesen Controller alleine verwenden, aber auf dem 
Controller von Conrad ist ein Bootloader drauf.
Gibt es irgendeine Möglichkeit den Bootloader herunterzuladen und auf 
einen anderen ATMEGA128 zu flaschen oder einen anderen Bootloader der 
gleich funktioniert das ich die den Controller mit Basic programmieren 
kann?

mfg
Christoph

von Christoph (Gast)


Lesenswert?

Hat keiner von euch eine Antwort für mich??

von Peter D. (peda)


Lesenswert?

Christoph wrote:
> Hat keiner von euch eine Antwort für mich??

Nicht mal 2,5h, hast Du überhaupt Expreßzuschlag bezahlt ?


Ich benutze keine Monster Mega128 um dann 90% des Flash ungenutzt zu 
lassen.
Kann daher nicht helfen.


Peter

von Tobi O. (der_ossi)


Lesenswert?

geht das nicht mit dem AVR studio?

muss ehrlich sagen, dass ich das noch nie probiert habe, weil ich die 
selbe Eigenschaft wie Peter habe :)

von SiO2 (Gast)


Lesenswert?

Datenblatt lesen, und nicht rummotzen.

von Christoph (Gast)


Lesenswert?

Ich will ja nicht rummotzen!!

Nur ich kenn mich nicht so gut aus!!

Nach was soll ich im Datenblatt suchen??

mfg

von Stefan (Gast)


Lesenswert?

So viele benutzen den C-ControlPro Mega 128 anscheinend nicht. Da heisst 
es mehr Geduld haben, bis sich jemand meldet. Nutz die Zeit und die 
Gelegenheit und arbeite dich in die Doku deines µC ein. Vergleiche dein 
System mit den 08/15 ATMega-Systemen wie die hier im Wiki beschrieben 
sind. Jede Gemeinsamkeit und jeder Unterschied bringt dich weiter.

OK. Jetzt die Meinung eines C-ControlPro Mega 128 Laien...

Such danach, wie die C-ControlPro Mega 128 Toolchain funktioniert und 
wie das Board beschaltet ist (sic).

Überdenke dein Vorhaben. Ist es überhaupt notwendig den jetzigen 
Bootloader zu killen? Kann (oder will) der keinen Binärcode aus fremden 
Toolchains laden?

Obacht!!! Wenn du den jetzigen Bootloader absägen willst, musst du 
anschliessend einen anderen Zugang zum µC haben oder du stehst draussen 
und hast einen kratzigen Schlüsselanhänger!

Kann bei diesem Modul über ISP oder JTAG ein in Binärcode übersetztes 
Programm als HEX-File geladen werden? Das ist IMHO die 
Grundvoraussetzung, um den Bootloader auf einfache Weise zu ersetzen.

Für die ISP Programmierung brauchst du natürlich einen ISP fähigen 
Programmer. Für JTAG entsprechend ein JTAG-Device.  Und wenn der jetzige 
Bootloader ersetzt werden soll, musst du natürlich zusätzlich einen 
anderen Bootloader haben.

Wenn du ISP oder JTAG Zugang hast, kannst du sehr wahrscheinlich auch 
den vorhandenen Bootloader auslesen. Ein anderer Weg wäre ein µC 
Programm zu schreiben und mit dem vorhandenen Bootloader zu 
installieren, welches dir den Inhalt des µC sendet. Der muss aber nicht 
auf einem fremden Board funktionieren, ggf. ist er mit der Hardware 
verdongelt.

Und wie erzeugt das begehrte BASIC die Programme für den µC? Arbeitet es 
mit einem Interpreter mit Bootloader auf dem µC (unwahrscheinlich) oder 
erzeugt es durch Kompilieren einen Binärcode (Maschinenprogramm)?

von Christoph (Gast)


Lesenswert?

@Stefan

Hallo,

danke für deine Antwort!
ISP Zugang hat der Controller so wie er jetzt ist.

Am besten währe wenn ich den Bootloader auslesen könnte dann könnte ich 
ihn auch auf einen anderen Controller wieder installieren, nur wie mach 
ich das?? Wie gesagt einen ISP Zugang hat er mit dem kann ich die Daten 
über eine USB Schnittstelle an den Controller senden. Benötige ich da 
irgendeine Software damit ich den Bootloader auslesen kann??

mfg
Christoph

von Stefan (Gast)


Lesenswert?

Ich habe mal kurz die Doku überflogen
(http://www.c-control-pro.de/documentation/hardware.htm)

Wenn der µC applikationsfertig ist sind auf dem µC

1/ der Bootloader (für Programmieren und Debuggen)
2/ der Interpreter
3/ das Anwenderprogramm

Der Bootloader ist immer auf dem µC. Er schaufelt Daten über USB vom 
Host (PC) auf das Target (µC). Die Daten bestehen aus dem Interpreter 
und dem Anwenderprogramm.

In der Doku steht:

Version 1.39  vom 09.06.2005
neue Features

• BASIC Unterstützung
• CompactC und BASIC können in einem Projekt gemischt werden
...

Eventuell reicht ein einfaches Update auf diese Version, damit du wie 
gewünscht mit BASIC programmieren kannst.

Wenn du trotzdem den Bootloader ersetzen willst:

Du müsstest klären, wie du den ISP Programmer anschliessen 
willst/kannst, ohne über USB zugehen. Der USB Weg ist nur für den 
Bootloader!

Anhand der Pinzuordung kannst du herausfinden, wo die SPI Pins auf 
welchem Connector liegen. Zusätzlich brauchst du für ISP noch RESET auf 
einem  Connector.
http://www.c-control-pro.de/documentation/pinzuordnung128.htm

Und du brauchst noch einen ISP Programmer, der im allgemeinen obige 
Signale auf einem 10-poligen oder 6-poligen Connector hat.
http://www.mikrocontroller.net/articles/AVR_In_System_Programmer

Wenn der ISP Programmer von AVR Studio unterstützt wird, kannst du mit 
dem Programm ungeschütztes Flash, EEPROM und den Zustand der Fuses 
auslesen. Ob ein Ausleseschutz da ist, wirst du dann sehen.

Dass die ausgelesenen HEX-Files vom Bootloader auf einem anderen 
ATMega128 funktionieren, bezweifele ich. Es fehlt ja die komplette Mimik 
des C-Control Pro Mega 128 Boards. Da sind ja noch mehr Käfer drauf als 
der ATMega128 oder sein Kollege.

Ob ein anderer Bootloader auf dem C-Control Pro Mega 128 funktioniert, 
ist davon abhängig, wie er geschrieben ist. Ich sehe schwarz, einen 
direkt funktionierenden fertig irgendwo zu finden. Er braucht z.B. genau 
die USB Routinen passend zum C-Control Pro Mega 128 Board...

Fazit:

Ich würde einfach mit dem jetzigen Bootloader des C-Control Pro Mega 128 
weiterarbeiten, wenn nix gravierendes dagegen spricht. Rauswerfen des 
Bootloaders gibt dir ein nacktes Board für das du dich selbst um die den 
ISP-Programmer und die Firmware kümmern musst.

von Stefan (Gast)


Lesenswert?

Sorry ich hatte irgendwie im Kopf, dass du mit BASIC arbeiten willst. 
Wie ich darauf komme, weiss ich nicht.

Erzähl mal, was dir an dem jetzigen Aufbau nicht gefällt und warum du 
was ändern willst.

von Stefan (Gast)


Lesenswert?

Ah ich seh's BASIC steht im ersten Beitrag. Sollte ja laut Doku und 
Update gehen.

von Stefan (Gast)


Lesenswert?

Ach so ich sehe deine Motivation aus einem anderen Forenbeitrag.

Du willst einen nackigen ATMega128 holen, auf eine Platine löten, die 
Firmware vom C-Control Pro Mega 128 reinstecken und so einen günstigen 
Klon aufbauen.

Das kann rechtlich bedenklich sein. Und wird technisch so nicht 
funktionieren.

Ich würde in diesem Fall die C-Control Pro Mega 128 Firmware in Ruhe 
lassen und das zweite ATMega128 System von Grund auf selbst aufbauen.

Dabei würde ich nicht mit dem 128 Flaggschiff anfangen sondern erstmal 
mit dem Mega8 Mega16 o.ä. anfangen. Die sind günstiger und leichter zu 
handhaben (DIP).

von Christoph (Gast)


Lesenswert?

Hallo,

ich brauche den ATMEGA128 deswegen weil ich min. 24 Digitale Ports und 2 
RS232 Schnittstellen brauche(eine zum Software reinladen und die zweite 
für ein Gerät das angeschlossen wird.

Ich glaub wenn ich da von Null anfange wird das sehr schwer werden wenn 
ich die ganzen Routinen selber schreiben mus (für RS232 usw..).

auserdem möcht ich das ja nur für Privatzwecke verwenden und da wird das 
dann mit dem rechtlichen nicht so schlimm sein denk ich mal!

mfg
Chrsitoph

von Stefan (Gast)


Lesenswert?

So ganz durchdacht ist die Schoose nicht. Du müsstest eh bei fast Null 
anfangen. Mir stellt sich sogar die Frage, was machst man überhaupt mit 
so einem C-Control Pro (CCP)-Board.

Die CCP-Firmware (Bootloader+Interpreter) wird auf dem 
ATMega128-Selbstbau nicht laufen. Es fehlt dort z.B. der Käfer für die 
USB Schnittstelle und das externe SRAM und die Jumper und und und...

Und die CCP Host-Software kannst du zur Entwicklung einer kleinen Serie 
schlecht nutzen, denn die setzt auf dem Target eine CCP Firmware voraus.

Somit kannst du auch keine fertig entwickelte Programme vom CCP-Board 
direkt auf andere ATMega128-Selbstbauten übernehmen. Es sind keine 
fertigen Maschinenprogramme sondern nur interpretierbare 
Bytecode-Programme. Und dafür fehlt auf Selbstbauten der Interpreter und 
natürlich setzt der Interpreter bestimmte Käfer auf dem Board voraus, 
die ein nicht 1:1-Klon nicht hat.

Wenn man mehrere Targetsysteme aufbauen will und nicht in mehrere CCPs 
investieren will, bleibt eigentlich nur der klassische Weg, insbesondere 
wenn es mal kommerziell werden könnte:

ATMega128-System nach Wunsch aufbauen oder kaufen und mit einer 
"normalen" Entwicklungsumgebung programmieren.

Für Flash-via-RS232 (oder USB) du kannst es schaffen einen 
Open-Source-Bootloader auf dem ATMega128-Selbstbau einzurichten. 
Grundvoraussetzung: ISP-Programming um den Bootloader reinzuschaffen. 
Das ist Standard. Und Programmentwicklung in C oder BASIC auch.

Zurück zum CCP...

Bleibt eigentlich nur der Einsatz als Einzelsystem... die 
CCP-Entwicklungsumgebung nimmt dir ja viel Entwicklungsaufwand weg und 
du kannst schnell zum Ziel kommen.

Aber es bleibt die fixe Beschaltung auf dem CCP, die man nur in Grenzen 
ändern kann. Es wäre nachzusehen, wieviele IO-Pins du tatsächlich zur 
Verfügung hast.

Vielleicht kannst du mit Software-Multiplexing an den Pins und/oder 
einem externen Switch-IC oder einem Bus (I2C fällt mir spontan ein) was 
reissen, wenn es jetzt zu wenige Pins sind. Lösungen dafür gibt es im 
Netz z.B. auch hier in der Artikelsammlung.

von Christoph (Gast)


Lesenswert?

Hallo,

ich grabe das Thema jetzt nochmal aus und erkläre das ganze Problem 
nochmal.

Ich habe den ATMEGA 128 von C-Control als einzelnen Chip gekauft (ohne 
Entwicklungsboard usw.)

Habe mir selbst eine Platine erstellt auf der der Controller aufgelötet 
ist, das funktioniert auch alles ohne Probleme.

Mein Wunsch ist nun auf einen normalen ATMEGA 128 umzusteigen ohne dem 
C-Control Bootloader da ich nicht auf Conrad und C-Control angewiesen 
sein möchte, falls es den Controller einmal nicht mehr zu kaufen gibt.

MfG
Christoph

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Christoph schrieb:
> Mein Wunsch ist nun auf einen normalen ATMEGA 128 umzusteigen ohne dem
> C-Control Bootloader da ich nicht auf Conrad und C-Control angewiesen
> sein möchte, falls es den Controller einmal nicht mehr zu kaufen gibt.

Dann mach dir ein Backup des derzeitigen Flash Inhaltes des C-Control 
Mega, falls du nochmal zurück zur Software vom blauen Klaus willst und 
programmiere dann den Mega128 per ISP und der IDE, die dir zusagt. Das 
kann Bascom sein, LunaAVR oder eben Assembler und C. Du kannst aber auch 
einfach einen frischen Mega128 benutzen.
Interessant ist, das du dafür etwa 10 Jahre gebraucht hast :-O

: Bearbeitet durch User
von Rene (Gast)


Lesenswert?

Hallo. Ich habe mich auch an einem frischen Atmega 128 versucht, nur 
leider wird keines der aufgespielten Programme ( Bascom) vom controller 
gestartet. Der Controller wird zwar erkannt, und scheinbar auch 
programmiert, per usbASP aber ein einfaches Blinken einer Led startet 
einfach nicht??? Daher bin ich jetzt wieder auf den Atmega 8 tqfp zurück 
und fehlende Aus oder Eingänge realisiere ich per Schieberegister.

von Jim M. (turboj)


Lesenswert?

Rene schrieb:
> Hallo. Ich habe mich auch an einem frischen Atmega 128 versucht, nur
> leider wird keines der aufgespielten Programme ( Bascom) vom controller
> gestartet

Fuses nicht korrekt gesetzt, insbesondere M103 Fuse.

von karl (Gast)


Lesenswert?

Hallo,
ich selber benutze für meine Schaltung ebenfalls die Conrad C-Control 
als ATmega32/128. Ich schätze das THT 2.54mm Lochrasteraster, dass auf 
einfachen Lochplatinen benutzt werden kann. Zudem ist der Oszilator 
bereits im Gehäuse mit verbaut. Alle Anschlüsse sind 1:1 nach außen 
gelegt.
Programmieren tue ich in C im AtmelStudio mit dem AVRISP mkII. Natürlich 
muss bevor der Chip mit AtmelStudio geflasht werden kann erstmal ein 
'Erase Chip' mit dem Device Programming Tool im AtmelStudio gemacht 
werden.

Gruß
karl

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.