Hallo, ich würde gerne einen PIC über USB mit einem PC verbinden. Auf dem PC läuft Linux (Debian Etch). Das Programm soll später in JAVA oder C++ programmiert werden. Nun meine Frage: - Kennt jemand Beispiele, wie man mithilfe von JAVA unter Linux einen PIC ansteuern kann - Evtl. werde ich auch C++ verwenden (wobei für mich eher JAVA in Frage kommt, da es hier einfach viel mehr Funktionen gibt, wie z.B. Netzerkfähigkeit, IO, ..., welche ich in meinem Programm dringend brauche), wollte mal Fragen, ob dazu auch einer Beispiele hat. - Wie sieht das mit Treibern aus? Welche Treiber soll ich unter Windows verwenden. Leider kann ich den Kernel nicht neu kompalieren (ist aus technischen Gründen nicht möglich). Was hab ich schon getan: - sprut.de - Forensuche - Google Hoffe, ihr könnt mir helfen! MfG Julian
Kommt darauf an, was du auf dem Pic programmierst. Mit einer CDC-Firmware (gibts glaubich auch als Beispiel von Microchip) Wird der PIC vom PC als COMPort/Modem eingebunden. Da kannst du dann über \\.\COM<X>\ bzw /dev/ttyUSB<x> drauf zugreifen. Oder (besser!) du nimmst eine der vielen RS232-Libraries für Java. HID wird (vermutlich) zwischen Windows und Linux recht unterschiedlich sein, ausser du lässt den PIC Tastatur spielen und fängst im Java die Tastendrücke ab. Ein eigenes USB-Protokoll (Abseits der vordefinierten Klassen) geht über libusb(-win32) auch schön Plattformunabhängig, für Windows ist halt einmalig so ein .inf-File zu basteln. Ob es fertige libusb-Bindings für Java gibt, oder ob du da selber eine JNI-Schnittstelle basteln musst findest du sicher im Internet.
Also für JAVA scheint es bereits ein Interface für libusb zu geben, nur leider ist die Seite gerade down :( http://heartbit.sourceforge.net/wiki/index.php Kann man aber noch an anderen Stellen herunterladen. Nun zu libusb: Hat da einer Bsp. für mich, wie ich damit einen PIC ansteuern kann. Wenn möglich, würde ich auch gerne den Asembler/C-Code, der auf dem PIC läuft, sehen. Die Bsp. sollten möglichst einfach gehalten sein und nich zu komplex, ansonsten kann man sich nur schwer einlesen. Google gab da leiter nichts her.
Julian W. wrote (im anderen Thread): > Die Kommunikation ist recht simpel. Es werden immer nur Werte > geschrieben oder ausgelesen. Geht eigentlich immer abwechselnd: 1 Bit > lesen, 1 Bit schreiben, 1 Bit lesen, 1 Bit schreiben... Dann nimm den CDC-Modus, und eine virtuelle Serielle schnittstelle. Ist das einfachste, und es braucht keine libusb. > Hat jemand Bsp. für mich, möglichst für beide Seite, also für PIC und > LINUX. Sollten auch recht simpel gehalten sein. Beispiel für den Pic: http://www.holger-klabunde.de/usb/18f2550.htm Dort runterscrollen, das "CDC_Echo" Beispiel sollte sich am einfachsten für deine Anwendung erweitern lassen. Beispiele für Java: http://java.sun.com/products/javacomm/ http://www.javaworld.com/javaworld/jw-05-1998/jw-05-javadev.html http://dn.codegear.com/article/31915
1 | portId = CommPortIdentifier.getPortIdentifier("/dev/ttyUSB0"); |
2 | serialPort = (SerialPort) portId.open("ComControl", 2000); |
3 | serialPort.setSerialPortParams(9600, |
4 | SerialPort.DATABITS_8, |
5 | SerialPort.STOPBITS_1, |
6 | SerialPort.PARITY_NONE); |
7 | ...
|
Oder google dir eine andere (einfachere) RS232-Library für Java. > Welcher PIC ist egal, hab mich noch nicht festgelgt. Der PIC müsste nur > den I2C-Bus unterstützen, was aber jeder können sollte. PIC18F2550 oder PIC18F4550 würd ich nehmen.
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.