USB Controller: AN2131: booten von externen EEPROM

Hallo Leute,

für mein USB auf CAN Umsetzer Projekt bin ich noch auf der Suche nach einen uController mit USB, der bequem zu programmieren ist. Ich habe mir zunächst den AN2131 von Cypress ausgesucht, da hier schon recht viel im Web verfügbar ist. Leider werde ich nicht so recht schlau, ob der IC auch von einem externen EEPROM booten kann, bzw. ob man die Firmware bequem über USB in den EEPROM schreiben kann. Wisst ihr da was ?

Als Alternative schwebt mir der AT89C5131A-M von Atmel vor. Der hat den Vorteil, dass er gleich einen EEPROM für die Firmware integriert hat. Leider hab ich zu diesem IC noch nicht soviel an Infos und Projekten im Netz gefunden. Hat jemand evtl. schon Erfahrung mit dem Atmel gemacht ?

Schon mal Danke im Vorraus, Sebastian.

Reply to
Sebastian Fröbisch
Loading thread data ...

Der AN2131 kann aus einem I2C-EEPROM booten, vorausgestezt, das EEPROM hat

16Bit-Adressen und die I2C-Adresse stimmt (AFAIR A2). Letzteres ist eigentlich trivial, aber ST hat zB. so 24C256, deren I2C-Adresse (A0) _nicht_ änderbar ist. Und der AN2131 erwartet auf A0 ein 8Bit-EEPROM.... Natürlich kann man auch aus einem 8Bit-EEPROM booten, da bleibt aber nicht viel Funktion übrig und für einen Bootloader mit manuellem I2C wirds knapp (geht schon, aber fummelig). Ein 32K-EEPROM, das geht, ist zB. das 24LC256 von Microchip.

Der AN2131 kann direkt nicht I2C über USB, dazu brauchst du eine "USB-aware"-Firmware, die über ein PC-Tool das erledigt.

--
         Georg Acher, acher@in.tum.de
         http://wwwbode.in.tum.de/~acher
         "Oh no, not again !" The bowl of petunias
Reply to
Georg Acher

"Sebastian Fröbisch" wrote in news:crh4nv$etn$ snipped-for-privacy@online.de:

Ja und ja. Du brauchst die CD, die dem Ev-Kit beliegt (konnte man auch mal runterladen). Da sind viele Firmwarebeispiele drauf. Ich glaube auch das EEPROM programmieren ging damit (mhh oder konnte man ein Beispiel recht einfach erweitern?). Uebrigens kann er auch ohne EEPROM arbeiten, dann wird die Firmware vom Host runtergeladen; (allerdings meldet er sich dann mit Cypress VendorID an). Darum ist ein EEPROM trotzdem sinnvoll, da steht dann nur Deine eigene Vendor-ID drin.

M.

--
Bitte auf mwnews2@pentax.boerde.de antworten.
Reply to
Matthias Weingart

Ja. Funktioniert recht gut, hat aber einen wesentlichen Nachteil (oder Vorteil, je nachdem, von welcher Seite man es sieht): Das USB-Enumeration-Protokoll (Endpoint 0) ist beim Atmel nicht in Hardware realisiert, sondern muss zu Fuss selbst programmiert werden. Ein Beispiel gibts zwar auf der Atmel-Homepage, aber das fällt leider in die Kategorie "übler Spaghetticode". Der Einsteig ist dadurch etwas schwierig, denn bevor das nicht nicht 100%ig funktioniert, meldet sich das Ding noch nicht mal als USB-Gerät beim Host an. Dafür ist man hinterher wesentlich flexibler und kann auch exotische USB-Features nutzen.

Vorteile gegenüber dem AN2131 wären:

- der Atmel ist ein "echter" 8051 mit Standardperipherie. Fertiger

8051-Code lässt sich dadurch direkt übernehmen, während beim AN2131 mit seiner eigenwilligen IO-Adressierung nochmal kräftig Handarbeit angesagt ist.

- der Atmel hat einen wesentlich grösseren Codespeicher (immerhin

32kByte Flash, die sogar aus dem laufenden Anwendungsprogramm heraus beschrieben werden können).

Hergen

Reply to
Hergen Lehmann

Was spricht gegen den FT2232 im "Host Emulation Mode" mit einem SJA1000?

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply to
Uwe Bonnes

einen

recht

IC

bequem

B2 Download ist das Schlüsselword. Mich funzt zuverlässig. FW Updates mache ich via Vendor Requests (eigens Protokoll). Es gibt dazu auch Beispiele von Cypress (I2C Requests ich glaube A2)

Leider

Da bau ich mir gerade ein Eval Board für den Keil. Bis jetzt sieht das alles recht gut aus. Der Atmel Code ist allerdings nicht zu gebrauchen. Das stöhrt mich aber nicht da ich schon seit längerem meinen eigenen FW Code habe denn ich nur nur an die entprechenden Bausteine anpasse. Der grosse Vorteil beim Armel ist, dass entlich mal genug Code Speicher zur Verfügung steht.

Thomas

Reply to
Thomas Zepf

eigentlich

änderbar ist.

aus

einen

ergibt nicht soviel Sinn da sowiso nur 8k Speicher zur Verfügung stehen. Die LC64 EEproms funktionieren problemlos. Erst der AN2131Q Variante hat auch ein ext. Speicherinterface dann muss das Nachladen aber mit einem Treiber erledigt werden.

Thomas

Reply to
Thomas Zepf

Leider

Ein kleiner Nachtrag: Ich habe mich für das neue Projekt für den Atmel entschieden weil es in der Vergangenheit immer wieder Lieferprobleme mit dem AN2131 gab, (bei > 500 Stk 24 Wochen) und auch immer mal wieder Gerüchte über ein End of Life gab.Von der Dokumentation her sind die Cypress aber vorbildlich.

Thomas

Reply to
Thomas Zepf

Wird knapp, wenn man noch 12k Bitstream für ein FPGA und ein paar hundert Byte für Usereinstellungen braucht ;-)

Wenn das Ding sowieso immer mit PC laufen soll, reicht ein 256Byte-EEPROM für die IDs (PCF8582, billig bei Reichelt) aus.

--
         Georg Acher, acher@in.tum.de
         http://wwwbode.in.tum.de/~acher
         "Oh no, not again !" The bowl of petunias
Reply to
Georg Acher

Ich habe den Download für die CD bei Cypress nicht gefunden. Wo kann man die Software herbekommen ohne das EV-Board bestellen zu müssen ? Funzt die Software auch für den Fall dass der AN nicht im EVBoard sitzt, sondern in meiner Schaltung ? Ich würde dann einfach den SJA1000 für die CAN Schnittstelle und den EEPROM

24LC64 für die Firmware dran hängen.

Sebastian.

Reply to
Sebastian Fröbisch

Wäre sicherlich die bequemste Variante. Ich soll aber noch zusätzlich einen Linuxtreiber für den Schaltkreis bauen. Mit dem FTDI wird meinem Betreuer das Projekt zu trivial :)

Sebastian.

Reply to
Sebastian Fröbisch

Sorry, was heißt "B2 Download" *dummfrag* ?

Hast du die Firmware schon fertig an den Atmel angepasst ? Was macht deine Firmware so ? Benutzt du FLIP zum Downloaden der Firmware ? Hast du sie in Assembler oder in C (mit dem sdcc) geschrieben ? Würdest du sie mir zukommen lassen ? Mich interessiert besonders die laut Hergen (s.o. im Thread) komplizierte Implementierung des Enumerationprotokolls.

Sebastian.

Reply to
Sebastian Fröbisch

Die Hardware haettest Du von mir bekommen koennen.

Schade, jetzt muss ich den Treiber selbst programmieren...

Bye

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply to
Uwe Bonnes

B2 Download ist das Format mit dem die Daten formatiert werden müssen, damit das EEprom automatisch beim booten in das Coderam übertragen wird. Steht im Usermanual des AN2131 .... Bei Cypress kann man das alles runterladen.

zukommen

ich habe noch keine fertige Software im Moment. Das ist das alles nur einfach programmiert, da ich noch auf meine Eval HW warte.... Ich benutze kein sdcc sondern Keil. Flip benutze ich nur um den Monitor in den Atmel zu flashen.Ich habe mir eine HW gebaut mit der ich den Code in ein SRAM laden kann. (std x51 Verfahren um mit einem Monitor zu debuggen) sdcc halte ich für ungeeignet weil einfach zu schlecht dokumentiert. Die Beispiele für AN2131 und sdcc bis auf eine Ausnahme schlecht bzw fehlerhaft. Das sdcc Paket kann zu wenig (OMF Support)

Enum ist nur beim ersten USB Projekt kompliziert, bis du es mal kapiert hast. Danach ist das immer gleich. Ich schreibe bis auf IAP alles in C und nein mein Code steht nicht zur Verfügung. Dafür habe ich im Laufe der Zeit einfach zu viel Zeit investiert. Aber: Die Enum ist locker in 1 Woche geschrieben (bei entsprechender USB Erfahrung) Ich habe das Enum Protokoll bei hier in eine Lib gepackt die je nach Controller immer wieder ergänze.

Thomas

Reply to
Thomas Zepf

"Sebastian Fröbisch" wrote in news:crlmmv$2rk$ snipped-for-privacy@online.de:

Mhh der cypress-Server scheint ziemlich ueberlastet zu sein. Suche mal nach ez-usb_devtools_version_261700.zip mit google

Dann dem 1. Link folgen (file.21ic.com.cn) (ist vielleicht dieser hier:)

formatting link

Original lag es wohl mal hier:

formatting link

M.

--
Bitte auf mwnews2@pentax.boerde.de antworten.
Reply to
Matthias Weingart

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.