Hallo, ich hoffe das Thema passt hier hinein ansonsten unter
PC-Programmierung...
Ich suche einen SourceCode (Quelltext) in Visual Basic womit ich über
die USB-Schnittstelle einen ATmega flashen kann.
Es soll SourceCode sein weil ich die Optik des Programmes an meinen
wünschen anpassen möchte.
Man muß sich das so vorstellen, ich will die Platine mit dem Atmega in
einem Gehäuse haben wo ich ein USB Kabel anschließe. Und dann über ein
kleines Programm die Firmware flashen kann.
Das Programm soll "Idiotensicher" gemacht werden. So daß keine
Kenntnisse über Programmierung vorhanden sein müssen.
Einfach Programm starten und dann auf "Update" klicken.
Jetzt habe ich herausgefunden das ich ein Bootloader im Atmega brauche,
okay ist klar.
Habe auch den MSC Bootloader siehe:
http://www.mcselec.com/index.php?option=com_content&task=view&id=159&Itemid=57
So in der Art möchte ich das Programm aufbauen.
Hat da jemand ein SourceCode für mich oder weiß wo nach ich suchen muß?
Habe die ganze Nacht erfolglos gegoggelt aber wahrscheinlich nach
falschen Stichpunkten?
Um verwendbare Hilfe wäre ich sehr sehr dankbar.
Gruß
Daniel
Junge junge... der MSC Bootloader ist für die serielle schnittstelle
(UART/rs232).
Also wenn du per USB flashen willst brauchst du erstmal einen
USB<->rs232 wandler.
Ich hoffe mal das war dir sowieso schon klar. Dann schickst du über den
wandler einfach das, was der bootloader auf der rs232 schnittstelle
erwartet. Die Treiber für die USB<->rs232 wandler (die auf dem Rechner
installiert sein müssen!) emulieren meistens einen COM-Port den du in VB
mit den normalen COM-Port Funktionen öffnen kannst.
Auf http://www.ftdichip.com/ gibt es auch Visual Basic beispiele um
deren USB<->rs232 wandler an zu sprechen. Was dein bootloader an Daten
haben will das musst du schon selbst raus finden.
Sorry aber deine Frage ist typisch BASCOM-Nutzer (ist keine Beleidigung,
nur eine Feststellung).
Nee sehe ich auch nicht als Beleidigung an aber das schärfste ist... ich
benutze kein BASCOM ! Sondern AVR Studio :-)
Sorry hatte ich vergessen zu erwähnen das
Ich über USB--> FTDI 232BL Chip ---> Daten in mein Atmega flashen will
Tipp:
Usbasp zusammenbaun, das als ganz normales Programmiergerät verwenden.
Du hast dann zusätzlich zu deinem eigentlichen µC, der auch programmiert
werden soll, einen AtMega8, welcher das Programmieren des anderen µC
vornimmt.
Als Programm dafür, kann man zum einen selbst etwas schreiben, da das
usbasp-protokoll public ist.
Andere Möglichkeit wäre, avrdude zu verwenden (in WinAVR enthalten).
Dieses könnte man dann mit einfachen Kommandozeilenbefehlen steuern.
Soll heissen, dein VB-Programm müsste dann eben avrdude starten, welches
dann den Programmiervorgang steuert.
Also erstmal brauchst du einen VCP Treiber für deinen FT232:
http://www.ftdichip.com/Drivers/VCP.htm
Dann hast du den FT232 als COM-Schnittstelle in der Systemsteuerung.
Eine COM-Schnittstelle lässt sich in VB über MSComm öffnen. Das geht
relativ schmerzlos...
http://www.the-starbearer.de/Praxis/ElektronikamPC/RS232/MSCOMM.htm
Schau dir die Seite mal an und google evtl. nach mehr infos über MSComm.
Ich bin mir sicher du wirst ein Beispiel finden wie du Daten damit
senden kannst.
Jetzt machst du folgendes:
a) Du schaust welche Baudrate der MSC Bootloader haben will und
initialisiert deinen COM-Port mit der richtigen Baudrate, Parität und
Stopbits (ich denke mal der wird keine Parität und kein Stopbit
benutzen)
b) Du sendest über deinen virtuellen COM-Port die Firmware zum
Bootloader
Das Problem ist, dass ich nicht genau weiss wie der bootloader
funktioniert, sonst könnte ich dir mehr sagen... Aber ich bin mir sicher
du bekommst das schon hin.
Das VB Beispiel was ich meinte war natürlich für den D2XX Treiber
(sorry). Dieser Treiber emuliert keinen virtuellen COM-Port und wird
über eine DLL vom Programm angesprochen soweit ich mich erinnern kann.
Die VB Beispiele findest du hier:
http://www.ftdichip.com/Projects/CodeExamples/VB.htm
Du kannst das natürlich auch mit den D2XX Treiber machen, ist aber nicht
ganz so einfach wie mit VCP. Aber der ist auch gut dokumentiert...
Zum Bascom Bootloader:
Zuerst wird vom PC ständig eine 123 zum Controller gesendet.
Erkennt der Controller die 123, sendet er sie zum PC zurück.
Nach diesem "Handshaking" wird die Datei dann per Xmodem gesendet.
Wenn du die "123 Abfrage" im Controller rausnimmst, und den Bootloader
per Taster etc. startest, dann geht das mit jedem Terminalprogramm, das
Xmodem unterstützt, zB. Hyperterminal.
Daniel schrieb:
> Mit solchen Antworten kann ich was anfangen :-)> Werde mich jetzt mal damit beschäftigen
Hi,
ich bin auch gerade auf der Suche nach einem VB6-Code mit dem ich mein
Programm via den MSC Bootloader in den µC bekommen.
Hast du was erreichen können ?
Gruß MaXX
Hallo,
ich habe mich mal an einen UpLoader für den 'MSC Bootloader' gemacht.
Das Handshake funktioniert... (dies war ja auch nicht schwer) aber mit
der Checksumme habe ich Probleme.. ich bekomme immer wieder ein Nak :(
Der Source ist in VB6, geht aber auch als VBA in Excel.
Den Bootloader habe ich auch mal angehangen (Booloader funktioniert via
Bascom)
Hat jemand eine Ahnung was ich verkehrt mache?
Gruß
MaXX
spess53 schrieb:
> Hi>> Ist es jetzt Mode geworden, Uralt-Threads auszugraben um irgend welchen> Scheiss loszuwerden.>> MfG Spess
Was ist denn dein Problem? Für mich scheint es eher Mode zu sein, hier
grundlos Leute anzumachen. Lese schon lange Zeit alles mögliche hier mit
und sehe dauernd sowas.
Chriz hat doch nichts falsch gemacht. Es geht ihm um genau dieses Thema,
er hat daszu eine Frage und an seinem 2. Post kann man doch sehen, dass
er sich aktiv damit beschäftigt. Warum sollte dann dieser alte thread
nicht weitergeführt werden?
Soll er liber einen nuen aufmachen um dort zu diesem Thema Fragen zu
stellen? Dann wär von dir oder anderen "Gleichgesinnten" wieder nur eine
- ich nenns mal "miese Anmache" - gekommen, die auf die Suche verweist.
Schrecklich sowas...tut mir leid für dich Chriz...was konstruktives zu
deiner Frage hab ich leider nicht beizutragen, aber ich wollt das mal
loswerden, da mich Leute wie Spess einfach aufregen.
(Hi Florian,
da kann ich dir nur zustimmen! Sollte denn wirklich ein neuer Thread
geöffnet werden um ein bekanntes Problem zu lösen? NEIN!
Hätte ich dies allerdings doch getan, dann wäre bestimmt auch so ein
ganz schlauer Gast gekommen und hätte mich belehrt, dass es dieses Thema
schon gibt und die Suche genutzt werden soll.)
Jedenfalls habe ich das Problem nun gelöst. Man benötigt gar keine
komplizierte CRC-(X-Modem)-Berechnung.
Gruß MaXX