Ich habe ein Entwicklungsboard mit einem CY7C68013A USB Mikrocontroller und möchte darauf zugreifen. An dem Mikrocontroller ist ein 24LC64 und ein FPGA (XC3S400) angeschlossen. Werd aber nicht schlau aus den ganzen Informationen die ich bis jetzt gesammelt hab. Kann mir jemand eine gute Seite nennen? Oder ein Programm zum beschreiben, auslesen, testen des CY7C68013A? Oder vielleicht ein Beispiel Code für den Mikrocontroller? Wäre euch über Hilfe sehr dankbar Gruß Bustle
Hm, bei der FPGA steuerung des Hostinterfaces (FIFO's des FX2) hab ich ein paar tipps auf Lager, für den integrierten uC (8051) nicht. Aber bei Cypress findet sich zu dem Evalboard jede Menge Manuals und Codeschnippsel.
bin grad fleißig am Lesen und Lernen was die Steuerung des USB-Mikrocontrollers betrifft. Was für Tipps kannst du mir denn zu der Steuerung des Hostinterfaces geben? Oder anders Formuliert (sonst weißt du wahrscheinlich zuviel was du schreiben könntest), was gibt es für grobe Richtlinien/Tipss die beim Einstieg zu beachten sind?
1. Muss man den USB Mikrocontroller etwa noch programmieren? Ich dachte man kauft ein IC, dem man die Daten übergibt und dieser erstellt daraus das USB Protokoll. Grüsse Michael
Einen USB Mikrocontroller hat schon eine Default Einstellung. Aber die scheitert schon daran, falls ein Interrupt Transfer durchgeführt werden soll. VendorID (Hersteller-Code), ProductID (Produkt Nummer) und Device release (Chip Revisionsnummer) sollte auch einstellbar sein um später u.a. den richtigen Treiber automatisch Laden zukönnen. Die können aber leicht über einen externen EEPROM eingespeist werden. Am eigentlichen Code hoffe ich selber nicht viel ändern zu müssen. Aber wie gesagt, bin selber noch am Lernen. Das "EZ-USB Technical Reference Maunal v1.2" von Cypress Hilft mir dabei glaub sehr gut. Auch wie ich den USB-Mikrocontroller zum ersten mal (z.B. zum beschreiben der EEPROM(s)) anspreche, habe ich noch keine Hilfe gefunden.
<Was für Tipps kannst du mir denn zu der Steuerung des Hostinterfaces <geben? Oder anders Formuliert (sonst weißt du wahrscheinlich zuviel was <du schreiben könntest), was gibt es für grobe Richtlinien/Tipss die beim <Einstieg zu beachten sind? Schau dir genau Setup und Holdzeiten an, beachte das die flags langsam wechseln. Es ist ziemlcih tricky mit 48 MHz die Daten zw. FPGA und FX2 transferieren zu lassen, wenn man auch die Füllstandsflags beachten muss. Das PEND Signal kommt nur dann richtig wenn die FIFO die du beschreibst nciht voll bzw. die Fifo die du liesst nicht leer ist. eine gefüllt fifo wird nicht vom FX2 geleert solange diese aktiv ist (CS und FIFO addr aktiv) . Diese Hinweise stehen nicht so klar im Datenblatt. Es ist einfacher Worte zw. FPGA und FX2 im einzeln auszutauschen (SLWR und SLRD nur für einen Takt aktiv) so erzielbare Datenraten liegen bei bielleicht 16MB/s. Bei Burstbetrieb (SLWR bzw. SLRD für 256 Takte aktiv) sind datenraten bis zu 40 MB/s drin.
Sehe ich das richtig, das Cypress schon ein Code für den USB-Mikrocontroller zur Verfügung stellt, der nur den Bedürfnissen angepasst werden muss? Hast Jemand links, wo beschrieben wird wie das USB-Protokoll für die Übertragung aussieht? Grüsse Michael
Zwar nicht X, aber A. Das U_niversal S_oftware R_adio P_eripheral(www.comsec.com/wiki, www.gnudradio.org) verwendet ein FPGA und den 68013 und hat alle Quellen offen.
Falls noch von Interesse: Ich benutze den 68013 um Photon-Event Daten aus einem Xilinx VirtexII fpga highspeed an den Experimentrechner zu übertragen. Hab das beim Cypress-Kit mitgelieferte Framework jetzt auf Assembler umgeschrieben, da ich auch ein Gps-Receiver lesen/kommandieren muss und unsere Keil-Tools auf 4k Code limitiert sind. Bin gerade am debuggen der Firmware. Das Projekt ist Open Source. Schreib an kfb@ufo-computers.com
An dieses 4k Limit bin ich auch schon beim Testen gestoßen. Betrifft dieses Limit nur C-Codes oder hast du es in Assembler geschrieben weil die Übersetzung weniger Platz benötigt? Gruß Bustle
Die beim Cypress Kit enthaltene Keil-Version sagt bei Compiler, Linker und Debugger, dass nur 4k akzeptiert werden. Mitgeliefert ist auch nur eine für cypress angepasste small-model library. Hab zwar eine large gefunden, die kann aber keine dual DPTR, keine Zusatzinterrupts etc. Mit EP1OUT/IN command interpreter, fpga handler, gps rx/tx handler, con rx/tx, und port-bit (C und E) komme ich in assembler auf 3,7 K code, 88.2 byte data, und 10,8 k xdata. Geht mit ein wenig Luft in die 16kB des 680013. A51 braucht ca 1/3 des C-codes (besseres Code-recycling/sharing, effektivere Algorithmen. Hab jetzt die USB-Irq Jumptable hart verbogen und debug den EP1 interpreter. Aber irgendwas stimmt mit dem Simulator nicht, wenn ich im Memory-Fenster EP1OUTBC auf 8 Byte setz, liest er im Sim die 0x80, die bei der Initialisierung zum Arming geschrieben wurde. ???
ne 4k??? Hab bei Keil eine 2k (0800H) Grenze. oder interpretiere ich die Meldung beim compilieren falsch? ********************************************************************** * RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 08B9H BYTE (109%) * ********************************************************************** Program Size: data=49.5 xdata=4518 const=10 code=3193 Woher bekommst du eigentlich die genauen angaben mit dem Platzbedarf von Code, Byte und xdata?
Meine Keil-Tools liegen dem Cypress Kit Cy3684 bei. Nach dem Linken zeigt er mir: Program size: data=81.3 xdata=10812 code=3693 creating hex-file from "bulkext"... "bulkext" - 0 Error(s) 2 Warning(s) Die .3 kommen von den 11 bit variablen. Bulkext war ein Beispiel mit dem fw, habs re-used. Const gibts bei mir nicht (Cy7c68013 ist ein Dallas '390 Derivat, kein '251). Bei mir verweigert er bei Code-Limitüberschreitung den Link-Prozess. Die warnings stammen von Zugriff auf 2 variable vom Startup-code (reg bank 0) und dem Interrupt level (bank 1), als ***Warning L15: Multiple Call to Segment. 8051 ist 'n ganz blöder Mist! Der Dptr kann nocht auf den ISpace/DSpace zugreifen. Muss ein paar Sachen neu schreiben.
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.