Hallo, das von mir angekündigte Beitrag "CC-Pro mit eigenem Hex-File programmieren" Loader Programm für die C-Control Pro kann nun hier (siehe Attachment) heruntergeladen werden. Es handelt sich um eine erste Version des Programmes welches als "Proof of Concept" zu verstehen ist. Mit dem Programm kann man Hex-Files die man z.B mit AVR-Studio erstellt hat auf die C-Control Pro raufspielen, ohne dass dessen Bootloader gelöscht werden muss. Man könnte somit also immer noch Programme mit der Conrad IDE entwickeln. Warum der Aufwand? Ganz einfach, mit der Conrad IDE lässt sich nur Interpretiertes C (Compact-C) schreiben, was unnötig Rechenleistung verschwendet. Warum nicht gleich einen "normalen" Atmega128 verwenden? Hier auch ein bisschen Werbung für Conrad: Derzeit bietet Conrad mit dem Probot Einsteigerset mit ca 62€ ein sehr günstiges Komplettset zum Einstieg in die Mikrocontrollertechnik an. Im Vergleich zum Asuro ist der Mikrocontroller (basierend auf dem Atmega 128) deutlich leistungsfähiger und die Sensorenpalette ist auch umfassender aufgestellt. Um die CC-Pro nun mit dem eigenen Hexfile zu Programmieren kann man immer noch das mitgelieferte Programmierkabel (beim ProBot praktischerweise auch noch USB) verwenden (das Programm verwendet ja auch noch den gleichen BootLoader ^^). Im Laufe der Zeit werde ich es sicher noch ein paar mal updaten, vorallem um die Bedienung zu verbessern. Ein Linux-Version ist auch in Planung. SourceCode stell ich zu Verfügung sobald ich ihn etwas überarbeitet habe g Um das Programm starten zu können, muss das .net Framwork installiert sein. Natürlich kann ich bei eventuellen Schäden an der C-Control Pro keine Haftung übernehmen. mfg Thomas
Ich kann ohnehin nicht wirklich nachvollziehen, warum auf der C-Control ein Interpreter laufen muss. Die IDE ist wirklich schön aufgebaut und man kommt damit sehr schnell zu brauchbaren Ergebnissen. Und das, weil es viele nützliche API-Funktionen gibt. Aber diese könnte man doch auch als Bibliothek implementieren, die mit einem ganz normalen C-Compiler zusammenarbeitet. (Mal abgesehen von dem Multithreading - das ich persönlich noch nie ausprobiert habe) Aber der Interpreter ist halt wirklich langsam (40µs zum Setzen von einem Portpin...), das muss doch nicht sein. Ich hab die C-Control selbst in zwei Projekten drin und bin besonders bei den neuen Megas von der Unempfindlichkeit gegenüber EM-Einstrahlung überzeugt. Das liegt wohl an der Multilayerkarte und dem massiven Metalldeckel, den die drauf haben. Mit deinem Tool ergeben sich vor allem für die 128er ganz neue Einsatzmöglichkeiten. Der Interpreter ist nämlich das einzige, was daran wirklich stört. Der Preis ist für die EM-Festigkeit auch ok. Eine Stromschiene mit einem 10kA/300V Puls direkt daneben macht da gar nichts. Was mich schon immer interessiert hat, ist, wie groß der C-Control Bootloader eigentlich ist. Beim Übersetzen wird ja angezeigt, wie viel Code das Programm verbraucht. Aber wie groß darf es denn werden? Im Endeffekt muss der Booltoader ja in der Bootloadersection sein. Denn mit deinem Programm werden Hexfiles ab Adresse 0x0000 geladen. Wenn diese Section beschrieben wird, muss der Loader dafür in der Loadersection vom AtMega liegen und die kann nur ein paar verschiedene Größen haben, die per Fuse eingestellt werden. Aber auslesen kann man den Bootloader bestimmt nicht. Kann die C-Control-IDE eigentlich den Bootloader updaten? Wenn die Schreibschutzfuses nicht gesetzt sind, müsste ein Anwendungsprogramm den Bootloader überschreiben können. Wie sieht es mit dem Auslesen des Bootloaders aus, wenn man ihn versehentlich zerstört hat, wärs ganz sinnvoll, wenn man ihn wieder drauf machen könnte... Grüße, Peter
> Was mich schon immer interessiert hat, ist, wie groß der C-Control > Bootloader eigentlich ist. Beim Übersetzen wird ja angezeigt, wie viel > Code das Programm verbraucht. Aber wie groß darf es denn werden? Gute Frage, um die ich mich auch mal kümmern werde um das Schreiben von zu großen Programmen zu verhindern. > Endeffekt muss der Booltoader ja in der Bootloadersection sein. Denn mit > deinem Programm werden Hexfiles ab Adresse 0x0000 geladen. Wenn diese > Section beschrieben wird, muss der Loader dafür in der Loadersection vom > AtMega liegen und die kann nur ein paar verschiedene Größen haben, die > per Fuse eingestellt werden. Aber auslesen kann man den Bootloader > bestimmt nicht. Kann ich mir auch nicht vorstellen, aber da ich nun weiß wie das Kommunikationsprotokoll aufgebaut ist, könnte man sich den Bootloader selber nachschreiben. Ist halt die Frage inwiefern das noch legal ist.
Ich hab gerade was lustiges entdeckt beim Conrad: C-Control Mega128 Chip Version (ein programmierter AtMega128): kostet 8,37 Euro incl. MwSt. beim Conrad Ein unprogrammierter AtMega128: kostet 20,30 Euro incl. MwSt. beim Conrad Aber an die 7,25 Euro von Reichelt kommen beide nicht ran... Grüße, Peter
Wie wird der AVR denn angesteuert? USB? Wenn du dein Programm nun noch OpenSource machen würdest, könnte ich es mal mit einer Linux-Portierung versuchen...
Die C-Control Programmierschnittstelle ist RS-232. Grüße, Peter
Sven P. wrote: > Wie wird der AVR denn angesteuert? USB? Prinzipiell per Rs232, nur ich verwende einen USB-Rs232 Converter. > Wenn du dein Programm nun noch OpenSource machen würdest, könnte ich es > mal mit einer Linux-Portierung versuchen... Das wär toll, aber bitte hab noch ein paar Tage Geduld wegen dem Sourcecode. So wie der jetzt aussieht zeig ich ihn ungern her ^^
Ist doch keine Schande... was ihr euch immer damit habt...
Bevor man jemanden in sein Heim lässt, sollte man dieses zumindest etwas aufräumen ;) Wenn du das Programm wirklich portieren willst, kommt das ja auch dir zugute.
Wenn ich jeden Hex jetzt in die C Control einladen kann, kann ich dann eigentlich den Bootloader bzw. Interpreter durch pgm_read_byte() auslesen?
Also der Interpreter befindet sich ja so nicht mehr im Flash. Wenn Interesse daran hast schau mal in den Interpreter Ordner von der Conrad IDE - ganau da is er drinnen ;) Den Bootloader auslesen wird wohl eher nicht möglich sein, da Conrad bestimmt die Fuses gegen auslesen gesetzt hat. Mit pgm_read_byte() wird es ohnehin nicht funktionieren, da damit nur Adressen bis 64k ausgelesen werden können. Für größere Adressen gibt es pgm_read_byte_far(). Aber versuchen kannsts ja mal.
Changelog V0.1: - Hexfile wird nun auf Korrektheit überprüft - provisorischer Support für Mega32 (Derzeit wird da nur auf die Programmgröße geachtet) - Support von Programmen > 64k beim Mega128 (bis max 124k, 4k benötigt der Bootloader) -Ladebalken -Letztgewählte Einstellungen speichern Da die Mega32 wahrscheinlich etwas anders initialisiert wird (die Conrad IDE kann sie ja unterscheiden) und ich selbst keine besitze, bräuchte ich jemanden der mir die Kommunikation zwischen Conrad IDE und Mega32 aufzeichnet. Ich hab das mit diesem Programm gemacht: http://www.serial-port-monitor.com/Download/free-serial-port-monitor.exe Dabei würde ich eine Kopie der Anfrageansicht benötigen. Da ich die Datei aus irgendeinen Grund nicht mehr anhängen kann, hier der Link dazu: http://www.file-upload.net/download-1580300/CCPro-Loader0.1.zip.html mfg Thomas
Hallo, das Programm ist übrigens mit Hilfe von Mono auch unter Linux lauffähig. Sollte jemand Probleme mit dem Einbinden des Voltcraft Programmierkabels haben, kann ich dazu auch noch ein kurzes Tutorial schreiben. lg thomas
Die Version 0.2 kann hier[1] runtergeladen werden Changelog V0.2: -Support für Robonova (basierend auf den Programm von i-bot) -Modularer Aufbau: Unterprogramme für unterschiedliche Bootloader können nun als Plugins (einfache dll's) eingebunden werden. Derzeit werden folgende Bootloader unterstützt: C-Control Pro Mega 128 C-Control Pro Mega 32 (nicht getestest) Robonova (nicht getestet) -Konvertieren von Hex-Dateien zu Binaries (Hex2Bin) nun möglich -Fehler beim Laden der Config-Datei unter Linux (Mono) beseitigt. lg Thomas [1] http://www.file-upload.net/download-1615345/CCPro-Loader0.2.zip.html
hallo zusammen habe mir ein ccontrol pro mega 128 gekauft um über eine serielle schnittstelle daten einzulesen. nach dem durchlesen eurer beiträge glaube ich, dass ihr mir weiterhelfen könnt. die schnittstelle liefert mit 3200 baud 1 startbit 8 datenbits und 2 stopbits, wobei das erste stopbit high und das zweite low ist. das program schaut so aus // Hauptprogramm // void main(void) { byte c; char Text1[37]; char Text2[27]; Text1="-- Test serielle Schnittstelle --"; Text2="-WR Schnittstellentest-"; Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,47); //Init RS232: 19200 bps, 8 Bit, 1 Stop, NP Serial_Init(1,SR_8BIT|SR_2STOP|SR_NO_PAR,287); //287 //Init RS232: 3200 bps, 8 Bit, 2 Stop, NP c=0; Serial_WriteText(0,Text1); Serial_WriteText(0,Text2); { Serial_Write(0,c); Serial_WriteText(0,"1"); c=Serial_Read(1); Serial_WriteText(0,"2"); Serial_Write(0,c); Serial_WriteText(0,"3"); }while (1); } das programm bleibt bei Serial_WriteText(0,"1"); hängen. er wartet auf daten von der schnittstelle. habe einen PC angehängt und 2 stopbits über die RS 232 geschickt, das funktioniert mit jeder baurate. hat vielleicht jemand eine idee? danke
Ich hab früher auch ein paar Sachen mit C-Control gebaut. Heute würde ich davon abraten. Wer weiß, wie lange Conrad noch Lust dazu hat, die Dinger zu bauen. Dann steht man da mit seinem proprietären System.
Hallo Jungs, also jetzt hab ich es geschafft mein Board funzt nicht mehr. Wollte mal das Tool CCPro-Loader0.2 testen ist ja hoch interessant! Also hab mit AVR Studio ein Hex File erstellt und wollte es mit dem Loader auf die Unit hochladen! Dazu muss ich sagen das ich die C Control Pro 128 und das Board dazu besitze. Hat über USB nicht gefunzt! Fehlermeldung "Init faild!" O.k egal probiere ich es über RS232 cool funzt die Hex Datei wird übertragen! Tja das war dann aber auch das Ende vom Lied. Jetzt kann ich leider die IDE von Conrad nicht mehr benutzen bekomme keine Verbindung mehr zur CPU weder über USB noch über RS232. Denke mal das ich dann also den Bootloader überschrieben habe! Aber warum? Jetzt kann ich zwar mit dem Loader Hex Files übertragen aber die Programme starten auch nicht. Wie ist das mit den Test Hex File BootLoaderTest.hex welche man downloaden kann ist das für den Mega 128 nicht geschrieben? Muss ich mir jetzt nen neuen Prozessor kaufen um wieder mit der IDE arbeiten zu können? Was hab ich falsch gemacht? Muss ich im AVR Studio einstellen das ich keinen Bootloader mit in das HEX File compilieren darf? Kann ich die CPU einschicken und wird mir dann ein Bootloader wieder aufgespielt? Kann ich den Bootloader wieder selbst aufspielen? Warum kann ich nicht den Bootloader selbst aufspielen? Wie kann ich feststellen das wirklich kein Bootloader mehr auf der CPU ist? Bin und jede Hilfe und Antwort dankbar! Tschau Stefan
Hallo, sry wenn das Programm dir Probleme bereitet. Hast du das Hex-File per avr-gcc erstellt, oder per Assembler? Das Hex-File das vom Assembler erstellt wird, ist nämlich etwas anders aufgebaut, als das was von avr-gcc erstellt wird. Meine Hex2Bin Funktion war leider etwas stümperhaft programmiert, wodurch die Assemblerprogramme nicht funktioniert haben. Hab das auch schon lange ausgebessert, aber nie hochgeladen weil das Interesse anscheinend nicht besonders hoch war. Zurzeit bin ich aber auf Urlaub und habe keine Möglichkeit dir das überarbeitete Programm hochzuladen. Aber jetzt mal eine gute Nachricht. Den Bootloader hast du mit Sicherheit nicht überschrieben. Das einzige was weg ist, ist der Interpreter. Den könntest du mit meinem Programm auch wieder raufspielen (ist irgendwo im Ordner von der IDE versteckt; glaub der Name war mega128.bin) Aber normalerweise müsste die IDE das selber machen. BootloaderTest.hex ist für den Probot128 geschrieben. Da ich die Pinbelegung des Evaluation Boards nicht kenne, weiß ich nicht welche Auswirkungen das Programm auf diese hat. Übrigens: Mein Programm "unterhält" sich vor und während jedem Programmiervorgang mit der C-Control. Solange da kein Fehler auftritt, kann nichts kaputt sein. Zur Fehlerbehebung würde ich mal die klassischen Windows-Methoden ausprobieren: Stecker ein- und ausstecken - Programme beenden und wieder starten ;)
Hallo Thomas, O.k Super Danke für den Tip und die schnelle Antwort. Hab den Interpreter wieder reingeladen mit deinem Programm jetzt funktioniert wieder alles. Währe schön wenn Du deine überarbeitet Version noch hochladen würdest. Frag mich nur warum mein Programm welches ich mit avr-gcc erstellt hab nicht funktioniert hat. Na ja dann noch schönen Urlaub und Danke Danke Danke Stefan
Allso ich wäre sicherlich auch daran interessiert, dass es hier weiter geht. mfg Matthias ...
Hallo, tut mir leid, dass ich mich nicht gemeldet habe. Die Version mit der ueberarbeiteten Hex2Bin Funktion war lange Zeit nicht auffindbar. Heute hab ich sie zufaelligerweise wiederentdeckt. Da ich mittlerweile keine C-Control Pro mehr habe kann ich daran aber leider nicht mehr weiterarbeiten. Source ist natuerlich wieder dabei. Vielleicht brauchts ja noch jemand. Hier der Downloadlink: http://www.file-upload.net/download-2297679/CCProLoader0.2.1.tar.gz.html
Besten Dank, werde es demnächst mal testen. Viele Grüße Erzgebirgler47
Hallo messier, ich habe es heute getestet: - kleines Proggi das Daten seriell ausgibt - .bin-datei mit Bascom erzeugt - mit CCProLoader.2.1 auf die C-Control-Pro übertragen - lief auf Anhieb fehlerfrei auf der CC-Pro 128 - nach Reset der CC-Pro wurde diese von der Original-IDE weiterhin erkannt - mit CCProLoader.2.1 die Original - interp128.bin auf die C-Control-Pro übertragen - altes Proggi von der Original-IDE auf die C-Control-Pro übertragen - Testlauf fehlerfrei. Fazit: Wer schnellere (nicht interpretierte, sondern compilierte) Anwendungen auf der CC-Pro laufen lassen will, sollte sich Bascom und CCProLoader.2.1 beschaffen und benutzen. Mit dem CCProLoader.2.1 ist die Herstellung des Urzustandes problemlos möglich. Noch eine Frage: Wenn jemand bei nachfragt, darf ich dann den CCProLoader.2.1 weitergeben? Gruß und besten dank nochmal Erzgebirgler47
Hallo, danke für das nette Feedback. Klar kannst das Programm weitergeben, sonst hätt ichs nicht online gestellt. Den Source kannst ebenfalls für deine Zwecke verwenden, solange es nicht kommerziell ist. lg Thomas
hallo, ich habe nach der Anleitung von erzgebirgler47 die CCpro mit einem Programm und einer seriellen Ausgabe getestet und funktioniert prima. Meine Frage: Lässt sich auch die mitgelieferte LCD oder die Tastatur ansteuern? In den Schaltplänen sind Schieberegister. Doch keine ich blick da nicht mit der "Bit-Schubserei" durch. Fluxxy
hi leute! verfolge das thema mit großem interesse, hab leider selber nicht viel beizutragen da ich noch anfänger bin und den probot 128 jetzt erst gekauft habe... eine frage habe ich allerdings: wäre es möglich den probot sozusagen über PC aus einer art standby-modus aufzuwecken? am besten noch übers internet und mit linux? bitte den thread weiterführen! Liebe Grüße und weiter so
Moin, ich weiß der Thread ist schon ziemlich tot, aber leider ist der Link zur letzten Version ebenso tot. Hat zufällig noch jemand das Aktuelle Programm auf dem Rechner und würde es irgendwo hochladen? Wäre wirklich toll. Gruß.
> Moin, > ich weiß der Thread ist schon ziemlich tot, aber leider ist der Link zur > letzten Version ebenso tot. > Hat zufällig noch jemand das Aktuelle Programm auf dem Rechner und würde > es irgendwo hochladen? > > Wäre wirklich toll. > > Gruß. dem kann ich mich nur anschließen, ich brauche unbedingt das "Aktuelle Programm", Thomas B. oder irgendjemand, der sich damit beschäftigt hat und das Programm noch hat, bitte stellt es neu ein
Es ist kaum zu glauben,dass ihr es geschafft habt weder Source noch spätere Versionen anzuhängen.
no0n schrieb: > Moin, > ich weiß der Thread ist schon ziemlich tot, aber leider ist der Link zur > letzten Version ebenso tot. > Hat zufällig noch jemand das Aktuelle Programm auf dem Rechner und würde > es irgendwo hochladen? > > Wäre wirklich toll. > > Gruß. Fänd' ich auch super... -_- LG Fin
Leider nichts zu finden, sehr schade...
Kann man dieses Thread nicht komplett löschen? -Ist ja tot, kein Source, kein Download, keine Infos mehr verfügbar, also...
LaTorre schrieb: > Kann man dieses Thread nicht komplett löschen? Ich habe mir mal vor 6 Jahren eine C-Control geholt.. da war die schon sowas von unflexibel und überholt gegenüber anderen Platformen. Schmeiss die Hardware dazu weg und investiere für was aktuelles 5€!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.