Hallo, ich habe ein MIDI-Controller für USB gebaut. Als USB-Controller Chip kommt ein AT90USB162 mit der LUFA Hiduino Software zum Einsatz und als Mikrocontroller ein AT328P. Das Gerät wird als USB-AUDIO-MIDI Device erkannt und läuft auch als solches schon. Angenommen ich vermarkte das Gerät und stelle ein Firmwareupdate zur Verfügung,kann das einfach über USB auf den AT328P geflashed werden, ohne spezielles Programmiergerät? Wie mache ich das bzw. welche Voraussetzungen sind dafür erforderlich? Danke im voraus... Grüße Stefan
Ja, geht über USB. Dazu gibt es, sofern implementiert, das DFU Interface (Device Firmware Update). Das Gerät muss dann z.b. duch drücken einer Taste am Gerät in den DFU Modus versetzt werden, was dazu führt, dass das Gerät vom USB Bus getrennt (Softwareseitig) und danach als DFU-Gerät wieder enumeriert wird. Das taucht dann mit anderer Bezeichnung wieder im Geräte-Manager auf. Dann wird es über eine gesonderte Software neu geflasht. Dazu gibt es auch bei Atmel ein Paper. Musst du nur nur mal nach suchen.
Hallo, danke für die Antwort. Wird dann der AT90USB162 oder der AT328P neu geflashed bzw.welcher der beiden muss dann in den DFU Modus? Der AT90USB162 soll ja nicht neu geflashed werden sondern wenn dann nur der AT328P. Kann man das drücken einer Taste auch per Software irgendwie machen (sieht ja nicht Professionell aus wenn man da erst was drücken muss)? Danke Gruß Stefan
DFU ist schon der richtige Weg solange es unter Win einen Treiber gibt. Das ist meines Wissens bis einschließlich W7 nicht der Fall. Ich habe das deshalb direkt über den Control EP und vendor Requests eingebaut. Alternativ kommt auch noch ein zusätzliches HID Interface in Frage oder MIDI sysex. Wie immer unter USB ist es eine Frage der Treiber. Da dein Gerät den USB Audio Class Treiber benutzt kannst du nicht so ohne weiteres einen anderen Treiber installieren. Ich würde dir empfehlen ein zweites Interface in die Descriptoren einzubauen was als HId funktioniert in der Hoffnung das dein Chip genügend EPs hat. HId funktioniert immer und du kannst direkt vom Usermode dein Update implementieren.
jemand schrieb: > Das Gerät muss dann z.b. duch drücken einer Taste am Gerät in den DFU > Modus versetzt werden, was dazu führt, dass das Gerät vom USB Bus > getrennt (Softwareseitig) und danach als DFU-Gerät wieder enumeriert > wird. Warum braucht man dafür eine Taste? Jeder Arduino macht das über die DTR-Emulation via USB. Stefan M. schrieb: > Angenommen ich vermarkte das Gerät und stelle ein Firmwareupdate zur > Verfügung,kann das einfach über USB auf den AT328P geflashed werden, > ohne spezielles Programmiergerät? Das kommt auf dein Programm drauf an. Der AT90USB162 kann z.B. als Programmiergerät für den ATmega328 programmiert sein. Du musst ihn nur für das FWUpdate in den "Programmiergerät"-Modus versetzen. Warum eigentlich 2 µCs und nicht ein ATmega32u4 o.ä.?
Stefan M. schrieb: > Angenommen ich vermarkte das Gerät und stelle ein Firmwareupdate zur > Verfügung,kann das einfach über USB auf den AT328P geflashed werden, > ohne spezielles Programmiergerät? Du solltest über den selben Mechanismus (DFU, HID, oder was auch immer) die erste Firmware flashen; dann weißt du schon mal, dass es funktioniert.
Erst einmal danke für eure Antworten, @Wolfgang: Dafür kenne ich mich zu wenig aus um in der USB-Branche.... :). Müsste mal schauen ob es Totorials o.ä. gibt wo das evtl. gut beschrieben ist. Habe ich auch schon überlegt einfach einen Chip für beides zu benutzen. Da ich aber echt nicht weiss wie ich das Hiduino und meine Software zusammen in einen Sketch bringe habe ich mich für diese (umständliche) Variante entschieden. Die Hiduino wird ganz normal Compiliert und das .hex File über AVRDude geflashed. Da ich meine Software über die Arduino IDE programmiere und auch darüber flashe, weiss ich nicht wie ich beide kombiniere. Denke mal über Include oder sowas, muss mich da mal einlesen. @Clemens_L: Deshalb die zwei Chip Variante, es funktioniert. Kann meine eigene USB VID/PID mit einbringen (wenn ich eine hab) und es läuft. Das mit den FW-Update war auch nur so eine Idee. Die Software läuft eigentlich stabil so das ein Update eigentlich nicht notwendig ist. Gruß Stefan
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.