Habt ihr Erfahrungen bzw. gibt es Projekte bzw. Code dazu wie man vom PC aus über den USB Port einen USB-fähigen Microcontroller programmieren kann?
Für gewöhnlich ist im Datenblatt erwähnt, ob der µC über USB programmiert werden kann. Beispielcode gibt normalerweise ebenfalls im DB oder in Application Notes... Ralf
Ein Beispiel ist der AN2131, der holt sich seine Firmware via USB.
Ich programmier gerade den AT89C5131 von Atmel. An und für sich ein guter Chip und er lässt sich wunderbar mit der kostenlosen Software FLIP über USB programmieren. Aber die USB Funktion auf den Chip selbst in Assembler zu programmieren, daran beiß ich mir momentan die Zähne aus... Glücklicherweise lässt der Chip sich endlos oft reprogrammieren....
Nochmal ich.... Ich hab oben die E-Mailadresse falsch angegeben. Falls es Leidensgenossen mit dem AT89C5131 da draußen gibt: Meldet euch! Vielleicht kann ich euch helfen... Falls mir jemand mit der USB Sache bei den Atmel Chips helfen kann: Um Gottes Willen, Melde dich!!!!
Ich beschreibe mal wie ich das vor einiger Zeit via IAP und USB Chip gemacht habe: Ich habe zwei Firmware Module geschrieben. Ein Bootloader von 0...07FFh der sich natürlich nicht per USB updaten lies und ein App Modul ab 0800h. Der Loader beherschte 2 VendorRequests IAPGet und IAPSet. Etwas trickreich ist in diesem Fall die Interuptvektor Tabelle. Eine einfache Weiterleitung in den App Bereich geht nicht da die App ja u.U. noch nicht da ist. Ich habe das dann mit einem prog. Vektor über den Stack gemacht allerdings nur für Interrupts die sowohl im Bootloader als auch im App Modul gebraucht wurden. Der Bootloader habe via Flip geflashed (AT89C51RB2) Das Teil ist mehrere tausend mal im Einsatz. Ich hatte nur ein paar verflashte Controller weil der Bestücker einmal den RD2 verwendet hat, der nicht 100% kompatibel im IAP war. Ich hatte das nie getestet und auch nicht freigegeben... Generell sollte dieses Verfahren mit jedem IAP fähigen Controller funktionieren. Bei anderen Herstellern muss man halt ev. auf die Flash Segmentierung achten. Einen Nachteil hat meine Lösung: jeder dyn. Vektor braucht ein par Zyklen länger bis der Interrupt angenommen wird und ich brauche jeweils 2 Bytes im DMEM. Thomas
@Rufus der Cypress Chip kann zwar seine FW via Treiber über den USB Bus bekommen ich halte dieses Verfahren allerdings nicht für sehr gelungen. (2 PnP Events, Treiberupdates bei FW Änderungen, Sicherheitsaspekte) Besser man bootet den Chip aus dem EEprom und macht das FW Update selbst. Thomas
Auf die Gefahr hin das die meisten es bereits wissen, aber Atmel hat vor knapp einer Woche AVR und 8051 kompatible Controller mit integriertem USB angekündigt. Diese sollen sich auch problemlos über USB programmieren lassen. Verfügbar sind die Controller angeblich bereits, bei den Distributoren geht man aber davon aus dass es noch 3-4 Wochen dauern wird bis sie hier lieferbar sind. Es soll zwei verschiedene Typen geben einen mit Funktion als normales USB-Device und einen mit USB-Host Controller. http://www.atmel.com/dyn/products/product_card.asp?part_id=3874 http://www.atmel.com/dyn/products/product_card.asp?part_id=3875
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.