Forum: Mikrocontroller und Digitale Elektronik Über USB Flashen [AT90USB, PIC18F, enCoReIII]?


von Max W. (wauschi)


Lesenswert?

Ich verwende einen Cypress EZ-USB (AN32131) um Spannungen über USB
einzulesen. Das ist sehr umständlich. Ich brauche externen ADC, EEprom,
das Ding kann nur 3V3 usw..., aber ich baue das Gerät zusammen und
spiele die Firmware einfach über USB, ohne Programmer, auf den
Controller.

Für ein neues Design möchte ich einen etwas besseren Controller nehmen
(mit 5V, Flash, ADC eingebaut) und habe die Neuen von Atmel, Microchip
und auch von Cypress angesehen.

Kann man den AT90USB646, PIC18F4550 oder enCoReIII ohne vorher den
Bootloader zu ändern einfach über USB flashen?

von Schoaschi (Gast)


Lesenswert?

Für die USB-PICs gibts eine Firmware mit einem Bootloader. Dann kannst
du einfach den PIC über USB flashen.

Im Fernando Heitor Forum gibts einige Beiträge dazu. Und auf der
Microchip Seite gibts auch Infos dazu.

www.fernando-heitor.de
www-microchip.ccom

mfg Schoasch

PS.: Microchip hat ein Demoprogramm womit man über USB eine Spannung an
einem ADc-Eingang einlesen kann. Schau mal unter PICDem USB oder so.

mfg Schoasch

von Max W. (wauschi)


Lesenswert?

@Schoaschi

Danke für den Hinweis.
Der Beitrag unter:
http://www.fernando-heitor.de/index.php?option=com_smf&Itemid=27&topic=436.0
und
http://www.holger-klabunde.de/usb/18f2550.htm
bestätigen mir, dass ich den PIC erst flashen muss damit ich ihn über
USB programmieren kann. Das finde ich umständlich da ich seit jahren
die Cypress AN2131 einfach über USB programmiere ohne, dass ich einen
Bootloader brauche (Plug & Progam). (Stell dir vor ich muss auf 1000
Geräte erst einen Bootloader spielen damit ich sie flashen kann. Da
mache ich ein Monat nichts anders...)

Jetzt würde mich interessieren ob man beim AT90USB oder enCoReIII auch
extra einen Bootloader braucht.

Hat da jemand Erfahrung?

von Max W. (wauschi)


Lesenswert?

Ich denke eine Lösung gefunden zu haben!

Atmel bietet FLIP 3.0.0 zum Programmieren über USB an.
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886

Hat schon jemand mit Flip 3 für AT90USB gearbeitet?
Bzw. hat jemand Erfahrung mit dem Flashen eines jungfräulichen AT90USB?

von Andreas K. (phantast)


Lesenswert?

Mit Flip hab ich Erfahrung, Ja..

Aber nicht mit dem AT90USB sondern mit dem AT89C5131.

Funktioniert mittlerweilen ganz gut, obwohl ich zu Beginn
Schwierigkeiten hatte, weil die kostenlose Entwickerumgebung die ich
nutze nicht das nötige Hex-Format erzeugt hat.

(Ich möcht ja immer nicht mehr sagen, denn wenn etwas falsches dabei
ist, dann wird man ja hier im Forum sofort in der Luft zerrissen)

Was willste denn genau wissen? Vielleicht kann ich es dir beantworten.

von Max Wau (wauschi) (Gast)


Lesenswert?

@Andreas,

ich möchte ein neues Projekt mit einem einem USB-Controller beginnen
der einen Flash hat und über USB programmiert werden kann. Laut dem
Posting vom Schoaschi (weiter oben) geht das beim PIC nicht (man
braucht vorher einen Bootloader).

Aus diesem Grund schaue ich mir den AT90USB646 von Atmel genauer an.
Leider gibt es mit diesm Controller noch wenig Erfahrungen.
Haupsächlich möchte ich wissen:
Kann der AT90USB ohne Bootloader direkt mit Flip programmiert werden?
Kann der GCC Compiler (in Kombination mit dem AVR Studio) verwendet
werden?
Wo kann man einen AT90USB bestellen?

Mir scheint, dass für den AT90USB noch nicht viel Unterstützung
verfügbar ist. Daher werde ich mir auch den enCoReIII genauer ansehen.

von Andreas K. (phantast)


Lesenswert?

>ich möchte ein neues Projekt mit einem einem USB-Controller beginnen
>der einen Flash hat und über USB programmiert werden kann.

Viel Spass. Ich hoffe, dass du bei USB ein wenig Erfahrung hast, wenn
nicht, hoffe ich, dass du viel Zeit hast. Ich hatte auch keine
Erfahrung, deswegen brauchte ich Zeit, sehr viel Zeit.

>Kann der AT90USB ohne Bootloader direkt mit Flip programmiert werden?

Normalerweise befindet sich der Bootloader in einem Sektor des Speicher
des Chips und wird da fabrikmäßig aufgespielt. Den kannst du, wenn du
willst überschreiben oder einen eigenen Bootloader drüberschreiben
(wieder viel Spass!). Den Bootloader starten tust du indem du bestimmte
Pins beim Starten oder Resetten auf Low setzt. Wenn der Bootloader nicht
startet oder gelöscht ist, dann kann FLIP nicht mehr programmieren, und
du brauchst einen parallelen Prommer, ganz einfach.
Es gibt da auch noch ein Flag (BLJB - Bootloaderjumpbit), wenn du das
setzt, und in der Zielsprungadresse kein Bootloader ist, dann ists auch
vorbei mit FLIP.

Bei mir hat aber FLIP immer ausgereicht und ich hatte nie Probleme,
außer, dass ich anfangs irgendwie nicht das richtige Hex Format mit
meiner Entwicklungsumgebung bekam.

>Kann der GCC Compiler (in Kombination mit dem AVR Studio) verwendet
werden?

Wie schon gesagt, hab ich nur Erfahrung mit dem AT89C5131 was ja ein
8051 Derivat ist, kein ARM oder AVR. Dazu hab ich den auch noch in
Assembler programmiert, deswegen kann ich dir da leider nicht helfen.

>Wo kann man einen AT90USB bestellen?

Tja, da hatte ich auch ein paar Probleme. Über solche Stores wie
Conrad, Farnell, usw. konnte ich meinen nicht beziehen. Wenn ich bei
spezialisierten Distriputoren angerufen habe, wollten die gleich
wissen, wie viele LKW voll ich haben will. Die kleinste Bestellmenge
war dann irgendwann 230 Stück (?, ca.), weil die so von Atmel abgepackt
sind. Schließlich fand ich aber einen, der das auch ein wenig
unkomplizierter gehandhabt hat und bei dem ich auch Kleinmengen
bestellen konnte.

Ich möchte die E-Mailadresse nicht posten, weil ich ihn noch selbst
brauche und ich ihn nicht ärgern will.

Schreib eine E-Mail an root(at)andreas-knorr(dot)de und du bekommst
sie.

>Mir scheint, dass für den AT90USB noch nicht viel Unterstützung
>verfügbar ist. Daher werde ich mir auch den enCoReIII genauer
ansehen.

Das hatte ich damals genauso festgestellt. Aber der AT89C5131 war ein
8051 und das hatte ich zumindest gekannt, auch ließ er sich beinahe
beliebig oft programmieren, deswegen nahm ich den.

Die Bücher, die ich aber über USB gekauft habe, beziehen sich in ihren
Beispielen aber meist auf die enCoRe.

Ich hatte immer den Eindruck, dass die enCoRe nicht so für das ISP
(In-System-Programming) gedacht sind, sondern nur für Verkaufsware, die
man nur einmal programmieren muss. Dazu gibts zwar offensichtlich Chips
mit Flash, aber die sind nur für Entwickler in niedriger Stückzahl
bestimmt.

Da kann ich mich aber auch irren, das wirst du schon rausfinden....

von Max W. (wauschi)


Lesenswert?

@Andreas,

danke für dein ausführliches Posting!

Ich habe bei Farnell, Distrilec und RS um den AT90USB646 angefragt und
von allen erfahren, dass der Controller noch nicht in ihrem
Lieferprogramm ist. Außerdem habe ich gelesen, dass der GCC Compiler
den Controller auch noch nicht unterstützt.

Da ich das Projekt jetzt starten muss und ich nicht auf die
Verfügbarkeit von Controller oder Compiler warten will werde ich mein
Glück mit dem PIC PIC18F4550 beginnen. Dieser ist verfügbar und es gibt
viele AppNotes mit USB-HID Beispielen. Ich muss zwar auf jeden
Controller einen Bootloader spielen, aber flashen muss ich die dinger
sowieso...

von Peter Sommer (Gast)


Lesenswert?

Hallo Wauschi,

ich habe gerade über den PIC18F4550 Daten im Netz gesucht weil ich auch
ein Projekt machen möchte. Deshalb meine Frage wie sind denn deine
Erfahrungen mit dem Bootloader?

Danke für die Info.

P. Sommer

von Geri (Gast)


Lesenswert?

Hallo zusammen

Also ich kann den PIC18F4550 nur weiter empfehlen. Ich sehe auch keine
Probleme mit dem Bootloader, weil dieser mit wenig Aufwand gebaut
werden kann. 1000 Stück würde man sowieso anderweitig programmieren.

Eine einfache Schaltung findest du z.B. hier. Sie funktioniert mit dem
Microchip bootloader.
http://burger-web.com/Projects/PIC18F4550USB/de_PIC18UsbBoard.htm.de
Bin mir sicher, dass dir hier im Forum jemand einen Bootloader für den
Anfang rauf spielen würde, falls es notwendig ist:)

Beste Grüsse

von Erwin Reuss (Gast)


Lesenswert?

Also der AT90USB1287 wird mit einem USB-Bootloader ausgeliefert, der
sich um Bootloader-Bereich des Controllers befindet. Der Bootloader ist
weitgehend zu dem des AT89C5131 kompatibel, benutzt also denselben
DFU-Befehlssatz. Allerdings kann man den AT90USB natürlich auch wie
alle anderen AVRs über die SPI-Schnittstelle programmieren, hierbei muß
natürlich der Bootloader gelöscht werden.

Mein damals für den AT89C5131 geschiebenes Programmiertool, das auf den
Cypress-Treiber aufsetzt (FLIP und der Atmel-Treiber sind einfach zu
umständlich), werde ich in Kürze für den AT90USB erweitern, da ich erst
vor ein paar Tagen die ersten Muster des Controllers bekommen habe.

http://www.technik-forum.info/atm

von Olly Krings (Gast)


Lesenswert?

Ich benutze Dein Tool auch und finde es klasse. Vor allem ist es sehr
einfach zu bedienen.

Da ich allerdings viel experimentieren und des Öfteren neue FW
einspiele, stört mich ein wenig dass bei jedem Flashen die Fuses neu
gesetzt werden. Ist das unbedingt nötig? Das geht ja nur maximal 1000
mal. Kann man dafür vielleicht in einer neuen Version auch einen Haken
dafür einführen?

cu,
olly...

von Pieter (Gast)


Lesenswert?

moin moin,

@Erwin,

>...den AT89C5131 geschiebenes Programmiertool

dann nimmt bitte die Messagebox für SO28-Gehäuse irgendwie per
Einstellung raus..das nervt immer.


Mit Gruß
Pieter

von Erwin Reuss (Gast)


Lesenswert?

Hallo,
gesagt, getan.
Die neue Version 1.3 des Upload-Tools liegt auf dem Server.
Änderungen:
Die "nervige" Messagebox ist weg.
Die Fuses können wahlweise geschrieben werden.
AT89C5130 wird jetzt auch unterstützt.

Demnächst auch für AT90USB128.

http://www.technik-forum.info/atm

von Pieter (Gast)


Lesenswert?

moin moin,

@Erwin

# Neu: Jetzt wird auch der AT89C5130A mit 16k Speicher unterstützt.
       Leider liefert dieser Controller die selben Parameter wie
       der AT89C5131A, so daß keine automatische Unterscheidung
       möglich ist.

Frage, da ich keine 5130 habe, was liefert ein Leseversuch ab Adr.
4000H beim 5130? 0FFH und ok? Wenn nicht ok, Typ gefunden. Wenn doch
ok, was bringt ein Schreibversuch?
Ist dann zwar nicht "die feine Art", schafft aber Klarheit.
Eventuell kann man ja auch das letzte Byt nehmen, wenn das Prg nicht
bis dahin kommt, braucht man auch nicht zu löschen. Blöde nur wenn der
Programmierer grade die Zelle 7FFFH als 0FFH lesen will...

Mit Gruß
Pieter

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
Noch kein Account? Hier anmelden.