mikrocontroller.net

Forum: PC-Programmierung PIC mittels JAVA/C++ unter Linux ansteuern


Autor: Julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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-0...
http://dn.codegear.com/article/31915
 portId = CommPortIdentifier.getPortIdentifier("/dev/ttyUSB0");
 serialPort = (SerialPort) portId.open("ComControl", 2000);
 serialPort.setSerialPortParams(9600,
                SerialPort.DATABITS_8,
                SerialPort.STOPBITS_1,
                SerialPort.PARITY_NONE);
 ...

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.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, werde die PIC mal bestellen und es ausprobieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.