Forum: Mikrocontroller und Digitale Elektronik Cypress CY7C63001A Treiber Firmware


von Andi B (Gast)


Lesenswert?

Wer kann mir bei der Erstellung eines Treibers und Firmware zum Cypress
CY7C63001A helfen?
Ich habe den Chip bei ModulBus gekauft und benutze momentan deren
Software und Treiber. Nun möchte ich eigene Firmware auf den Chip
bringen.

Hab zwar bei Beyond Logic noch ein Beispiel zum Cypress USB Starter Kit
gefunden, aber da fehlen einige Header Dateien (z.B. Iso82930.h).
Wer hat sie?
Siehe http://www.beyondlogic.org/usb/cypressdrv.zip

Wie bekommt man eine eigene Firmware auf den Chip?
Die kompilierung mit dem CYASM funktioniert zwar, aber der Treiber hat
keine WriteROM Funtion. Laut Beschreibung muss auch der VPP Pin am Chip
auf + oder GND gesetzt werden.

Bitte keine doofen Ratschläge wie keine Ahnung oder es könnte da oder
dort vielleicht stehen.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

nur für meine Neugier. Was kann dieser Chip?

von Michi (Gast)


Lesenswert?

Es ist ein USB Microcontroller.
http://www.b-kainka.de/usb.htm wird dort für MSR aufgaben genutzt.
Habe auch noch einen, weiss jedoch nichts mit ihm anzufangen da er
bereits programmiert ist. und ich kein Programmierboard für den Chip
habe.

von Michi (Gast)


Lesenswert?


von Thomas Burkhardt (Gast)


Lesenswert?

> Es ist ein USB Microcontroller.

Ok, ok ;-)
Dumme Frage, dumme Antwort.

Das das ein USB-µC ist, war mir dann doch auch schon klar... Daher war
ich eigentlich mehr an den Eigenschaften interessiert. Insbesondere
welchen Geschwindigkeitsmodus der unterstützt.


Naja, Quintessenz ist, ich kenne den nicht, kann dir also leider nicht
helfen...

von Marcus M. (Gast)


Lesenswert?

Hallo Leute,

der Chip der Firma AK-Modul-Bus ist leider eine PROM - Version, also
vergiß einfach mal Dein Vorhaben. Besorgen mußt Du Dir dafür einen
Neuen - Sorry

Der CY7C63001A ist ein 8051er, der auf ein USB-Slave-Modul via
Memorymaping zugreift. Der 8051er hat bis zu 8MHz Taktfrequenz und hat
nichts mit dem USB Overhead zu tun! Dafür ist der USB Core zuständig.
Nur die Flags werden vom 8051er via Interrupt abgearbeitet.

Gruß Marcus

PS: Ich hab für das Teil mal einen Linuxtreiber progamiert, der aber im
Moment auf dem 2.6ern etwas viel probleme macht.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi Marcus

vielleicht können wir uns über den Treiber mal austauschen. Ich ärger
mich gerade mit einem EZUSB rum ;-)

von Rufus T. Firefly (Gast)


Lesenswert?

Betr. Treiber bzw. Alternative zu ihrer Programmierung:

http://libusb.sourceforge.net/
"It's [...] a library for use by user level applications to access
USB devices regardless of OS."

Und hier ein Win32-Port:
http://libusb-win32.sourceforge.net/
"Libusb-win32 is a port of the USB library libusb  to the Windows
operating systems (Win98SE, WinME, Win2k, WinXP). The library allows
user space applications to access any USB device on Windows in a
generic way without writing any line of kernel driver code.
Features:

    * Can be used as a filter driver for existing, already installed
devices. This feature allows libusb-win32 to communicate with any
installed USB device.
    * Can be used as a normal device driver for devices for which no
driver exists (self build/developed USB hardware, etc).
    * The two methods described above can used in parallel without any
problems.
    * 100% API and functional compatible with the main libusb project.
    * Supports Bulk and Interrupt transfers.
    * Supports all Standard Device Requests (control messages)
described in chapter 9 of the USB specification.
    * Supports vendor specific control messages."

von Thomas Burkhardt (Gast)


Lesenswert?

Hi Rufus,

ich weiß, ich weiß :)
Leider kann es keine Isochronen Transfer, was wohl an der Tatsache,
dass es im Userspace läuft mit liegen mag.

von Rufus T. Firefly (Gast)


Lesenswert?

@Thomas: Verrätst Du uns, was Du interessantes baust, daß Du isochrone
Übertragung benötigst?

von Thomas Burkhardt (Gast)


Lesenswert?

Hi Rufus,

na klar :)
Am USB sollen einige DA-Wandler betrieben werden, bei denen es wichtig
ist, dass die Ausgaben in gleichen zeitlichen Abständen kommen, deshalb
isochron ;-)

von Rufus T. Firefly (Gast)


Lesenswert?

Hmm. Wie wär's, statt dessen die Daten mit Zeitstempeln auszuliefern?
So könnten auch mehrere Werte en bloc gesendet werden; der die
D/A-Wandler ansprechende µC muss dann halt die Zeitstempel auswerten.

Wenns nur genau zwei D/A-Wandler sind, könnte man sich auch dadurch
behelfen, daß ein Standard-USB-Audiodevice implementiert wird, dafür
muss man dann keinen Treiber schreiben ...

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

die Daten werden ohnehin Frameweise en bloc verschickt. Das ist
prinzipbedingt. Der Vorteil des isochronen Transfers ist, dass die
Bandbreite garantiert ist. Beim Bulk-Transfer kann es eben passieren,
dass Pakete auch mal ein Frame ausgesetzt werden. Die Auswertung von
Zeitstempeln wird daran scheitern, dass das ganze ohnehin bis an die
Grenzen des µC ausgereizt ist.

Es sind genau zwei Wandler, allerdings mit 6 Kanälen. Mag sein, dass es
5+1 Treiber für Audiogeräte gibt :) aber wo ist da der Spass?

von Andi B (Gast)


Lesenswert?

Wahrscheinlich hat Marcus M recht mit dem PROM, sonst hät ich da ja
schon was gefunden.

Aber mit welchem IC geht sowas dann??? Wer verkauft sowas günstig und
hat noch XP Treiber dazu?

Die ModulBus Version ist für mein Vorhaben fasch programmiert und viel
viel zu langsam. Ich sende über 3 Kanäle serielle Daten an einen
Schieberegister IC (CD 4094). Data Clock Strobe. Da hängen dann LEDs
oder Relais dran. Die billigste Hardware die es gibt!

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.