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
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
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)?
@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
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.
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.
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).
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
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.
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
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
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.
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.
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