Cypress EZ-USB FX2 unter Linux

OP #661048
Lesenswert?
• ▲
▼
Ich habe hier noch mehrere Platinen (Braintechnology USB Interface V2.5) 
mit einem Cypress EZ-USB FX2 (CY7C68013-59PVC) Mikrocontroller.
Dieser hat ein eingaubtes High-Speed USB 2.0 Interface und eignet sich 
somit ideal fuer mein Projekt.

Ich moechte mobil Daten von einigen Sensoren aufzeichnen. Die Daten 
sollen sofort auf meinem Notebook weiterverarbeitet werden. Da dieses 
aber ein Legacyfree-Notebook ist, ist der USB-Anschluss die einzige Wahl 
(wobei die Lagacy-Schnittstellen wahrschlich auch nicht schnell genug 
waeren).

Auf dem Chips ist wohl schon so eine Art Beispiel-Firmware drauf. Es 
gibt dazu eine Windows-DLL, die die Ansteuerung der I/O-Ports vom 
Rechner aus ermoeglicht.

Nur ich moechte das Teil unter Linux zum Laufen bringen. Ausserdem 
moechte ich gerne eine neue Firmware schreiben, die selbststaendig 
serielle ADCs ausliest und die Sensoren und Schrittmotoren steuert.
Ich koennte die Ansteuerung auch per Software vom Hostsystem aus machen, 
aber die Loesung mit der eigenen Firmware ist sauberer und deutlich 
schneller.

Hat schonmal jemand den Controller unter Linux eingesetzt? Gibt es einen 
Treiber fuer Linux?
#661990
Lesenswert?
• ▲
▼
Ich hab mal mit der Vorgängerversion gearbeitet (Version 1.3 glaubich) 
mit dem AN2131 drauf.
C-Code lies sich mit SDCC übersetzen, Firmware-Upload ging mit "fxload".

Wenn der FX2 immernoch einen '51er Kern enthält, sollte der SDCC dafür 
gehen, und fxload unterstützt auch den FX2.

/Ernst
OP #662955
Lesenswert?
• ▲
▼
Dnake fuer die Tips.

Leider bekomme ich es nicht hin, einen Wert auf einem I/O-Port 
auszugeben.

Ich habe diese Seite gefunden: 
http://www.danielclemente.com/placa_pi/index.en.html

Ich habe dann die Header-Dateien fx2.h und fx2regs.h heruntergeladen und 
folgenden Testcode geschrieben:
1
#include <fx2.h>
2
#include <fx2regs.h>
3

4

5
void main(void) {
6

7
        PORTACFG = 0x00;  // PORTA als normale I/O
8
        OEA = 0xFF;       // PORTA = Output
9
        IOA = 0xAA;       // 0xAA an PORTA ausgeben
10

11

12
        while(1);
13
}

Ich habe den Code mit SDCC kompiliert (sdcc -I. fx2test.c), aber es 
kommt folgende Meldung:
?ASlink-Warning-Undefined Global '_PORTACFG' referenced by module 
'fx2test'


Eine ihx-Datei wird trotzdem erzeugt. Diese habe ich mit packihx 
fx2test.ihx > fx2test.hex umgewandelt und mittels fxload uebertragen.

Nur am Port tut sich nichts.
Ich habe es mit dem Uebertragen auch unter Windows mittels Cypress 
Control Center probiert. Ebenfalls keine Reaktion.


Was mache ich falsch?
OP #663757
Lesenswert?
• ▲
▼
Stimmt. LibUSB ist recht angenehm...

Dahingegen ist die Entwicklung von Kernel-Treibern nicht ganz so 
entspannend.
Ich habe mal fuer ein embedded-System einen Linuxtreiber fuer eine 
spezielle I/O-Karte geschrieben. Getestet in einem normalen System. Da 
musste ich den Reset-Taster anschliessen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren