PIC USb Kommunikation

#3777970
Lesenswert?

Hallo Leute,

Ich bin ziehmlich neu in USB Kommunikation.

Mir is tunterschiede zwischen protokollen nicht so ganz klar.

Was sind die Unterschiede zwischen:

Custom HID
LIB USB
MCHPUSB
MCP2200
WINUSB

Mein Ziel ist zwischen Android Tablet und Pic board über USb 
kommunikation aufzubauen.


Vielen Dank
Gast #3778081
Lesenswert?

Hallo,

zu den Aronymen kann ich dir jetzt mal nichts sagen ;-)

Als Kommunikationsmöglichkeit PIC <> anderes Gerät über USB fällt mir 
aber etwas ein:

Möglichkeit 1:
USB CDC. Das ist eine USB UART Emulation. Dazu gibt es ein Beispiel in 
der MLA.
Ein solches USB-Gerät tritt am Zielgerät als Serielle Schnittstelle 
(COM-Port) in Erscheinung und lässt sich damit sehr leicht verwenden. 
Das Gerät wird an jedem PC erkannt, Treiber gibts von Microchip. Von 
Android weiß ich aber nichts.

Ich verwende das sehr gerne, weil man ohne eigene Software mit dem Board 
"reden" kann (ich nehme oft Putty).

Der genannte MCP2200 ist genau sowas - ein PIC mit USB CDC.

Möglichkeit 2:
ein USB-HID-Device. Auch dafür gibts Beispiele in der MLA.
Vorteil hier wäre, dass kein Treiber nötig ist. Nachteilig ist 
vermutlich, dass es nicht so leicht ist eigene Daten zu übertragen.
#3778088
Lesenswert?

Für eine Android - PIC Kommunikation kannst du dir das mal anschauen:
http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DM240415
Dabei arbeitet der PIC im USB OTG Modus, stellt die Spannungsversorgung 
bereit und lädt das Android Gerät.

Soll es anders rum sein, muss das Android Gerät USB OTG unterstützen, 
was nicht alle können. Nicht an jedes Android Gerät kann man einen 
USB-Stick oder eine USB-Tastatur anschließen.
http://www.howtogeek.com/164783/how-to-connect-mice-keyboards-and-gamepads-to-an-android-phone-or-tablet/


USB ist nicht gleich USB. Es gibt verschiedene Modi, einer davon ist 
CDC, welches benutzt wird um eine serielle Schnittstelle zu emulieren, 
benötigt aber spezielle Treiber, die für Android vermutlich nicht 
verfügbar sind.
Hier ist eine Übersicht:
http://www.usb.org/developers/defined_class
HID ist ein gängiger Modus für Eingabegeräte, welcher auch zum 
Datenübertragen missbraucht werden kann.
Schau dir das mal an:
http://www.engscope.com/pic24-tutorial/14-1-usb-an-introduction/


Zu den Microchip Startkits gibt es auch Apps, welche du dir auch 
anschauen kannst:
https://play.google.com/store/apps/developer?id=Microchip+Technology+Inc
#3778129
Lesenswert?

HI Frank,

Danke für die informationen genau dieses Starter Kit von Microchip board 
habe ich.

Ich komme da aber leider nicht weiter damit. Support ist sehr mager.

Ich habe zurzeit den Starter Kit von microchip, was du mir empfohlen 
hast, Im zukunft möchte ich aber mit Pic24EP serie arbeiten die haben 
USB und Can Bus Chip.

Kannst du mir mehr Informationen bezüglich PIC Android kommunikation 
geben.


Vielen Dank
#3778359
Lesenswert?

mehmet cikar schrieb:
> HI Frank,
>
> Danke für die informationen genau dieses Starter Kit von Microchip board
> habe ich.
>
> Ich komme da aber leider nicht weiter damit. Support ist sehr mager.

Wo kommst du denn nicht weiter?
Ich habe mir das Teil auch gekauft, da ich auch mal vor hatte ein 
mobiles Gerät per USB mit einem Smartphone zu verbinden. Nur war mir 
nicht klar, dass der PIC das Smartphone immer mit lädt und der Host sein 
muss.
Die andere Richtung wird nicht von allen Smartphones unterstützt, somit 
habe ich es sein lassen und werde Bluetooth nutzen, bin nur noch nicht 
dazu gekommen :-)

Das Microchip Starterkit hat bei mir aber einwandfrei funktioniert, 
ebenso wie die Beispielapp aus dem Play Store.

Eine weitere Alternative zu USB die nicht das Problem mit Treibern und 
Stromversorgung hat, wäre über den Headsetanschluss, indem du die Daten 
Analog wie bei alten Modems überträgst.
https://github.com/hitesh24by365/AudioJackTransfer
http://www.slideshare.net/Sudar/transfering-data-using-audio-signal-in-android
#3778740
Lesenswert?

Hi

Ich habe eigentlich mein erstes und größtes Problem ganz am Anfang.

Ich habe die Programme für den Board aus Microchip.com/mal Seite 
runtergeladen.

1) wenn ich das Projekt unter
C:\microchip\mla\v2014_07_22\apps\usb\device\hid_custom\utilities\basic_ 
example\android

     in Eclipse lade sehe ich da 11 Programme.
    -ActivityBasicUSBDeviceDemo
    -Demo
    -DemoCustomHID
    -DemoInterface
    -DemoLibUSB
    -DemoMCHPUSB
    -DemoMCP2200
    ...

Dies finde ich schon mal überhaupt nicht Anfänger freundlich.  Ich kann 
die zwar die einzelne schritte nachvollziehen, verstehe aber nicht warum 
die bei einem Starter Kit für den Anfänger in erstes Programm so komplex 
machen.

2. Wenn ich auf Firmware gehe sehe ich da auch viele Ordner und weiß 
nichts genau wie der Zusammenhang von dem ganzen ist. Das obwohl ich 
schon länger mit PIC arbeite.



Ich habe sogar dadran gedacht, dass ich die falsche Dateien habe weil es 
für ein Starter Kit nicht so schwer sein dürfte.

ich will einfach nur paar Informationen von PIC zu USB senden. Ich denke 
für ein Starter Kit wäre ein ganz einfaches Programm ausreichend.

Ich hoffe du kannst mir weiterhelfen
Angehängte Dateien:
#3778789
Lesenswert?

Naja, ich hab bisher nur die MLA von 2012 installiert und da finde ich 
unter folgender Ordnerstuktur:
C:\Microchip Solutions v2012-04-03\Android Accessories\Basic 
Communication Demo - OpenAccessory Framework

zwei Ordner:
Firmware: Die die Projektdateien für einige PIC Varianten enthält und 
mit MPLAB geöffnet, compiliert und programmiert werden kann.
App Source Code: Was eben der Source Code der App beinhaltet, den ich 
aber nie genauer angeschaut habe, da ich bisher eben noch nichts weiter 
mit Android gemacht habe. Ich habe mich auf die fertige App aus dem Play 
Store beschränkt gehabt.

Mehr kann ich dir leider nicht sagen.
#3780903
Lesenswert?

Hi Frank,

Danke für deine Information. Tatsächlich die Dateien am 2014 04 03 sehen 
ganz anders aus. viel Verständlicher.


Ich habe noch ne kurze frage. wenn ich "Basic Android Accessory Demo - 
C30 - PIC24F ADK for Android"  mit mplab öffne, sehe da komplette 
projekt.  Bild1

unter Projekt:  Hardware Profiles habe ich alle andere Hardware profile 
gelöscht und nur noch den  HardwareProfile - PIC24F ADK for Android 
gelassen.

Wenn ich dies jetzt Compiliere kriege ich fehler meldung :(

Muss ich noch iwas einstellen bevor ich compilieren kann?


>Vielen Dank<
Angehängte Dateien:
#3780970
Lesenswert?

deine Pfadangaben stimmen nicht.
Im Dateibaum siehst du ja viele 'File not Found'.

Geh mal auf Project - Build options - Project
unter dem Tab Directories wählst du im Dropdown Menü Include Search Path 
und fügst mal den korrekten Pfad hinzu. (irgendwas\Microchip\Include)

(Nicht empfehlenswert: Oder korrigierst den Pfad jeder Datei einzeln 
indem du sie einfach mal versuchst zu öffnen.)
#3781313
Lesenswert?

Hey Super es hat funktioniert. Ich kann Compilieren.

Jetzt wollte ich das ganze mit PicKit3 uploaden. Das Problem ist, dass 
ich Fehlermeldung kriege. :(

Was mache ich falsch? Was ist das Problem?

>Fehler Meldung<
PICkit 3 detected
Connecting to PICkit 3...
Firmware Suite Version...... 01.28.90
Firmware type......................dsPIC33F/24F/24H
PICkit 3 Connected.
PK3Err0045: You must connect to a target device to use PICkit
 3.

Vielen Dank
#3781385
Lesenswert?

Danke für die Information ich hatte die Platine nicht mit 
Stromversorgung und auch bei PICKIT3 die Strom Versorgung nicht 
aktiviert.

ich habe jetzt das Ganze auch auf PIC Geladen. Kriege auch keine Fehler 
meldung.

Wenn ich aber jetzt die APP Starte und PIC board mit android tablet 
verbinde. Funktioniert nicht. ich kann die LED s nicht ein bzw. 
ausschalten.

Muss man noch was einstellen?
Angehängte Dateien:
#3781675
Lesenswert?

Die Stromversorgung darf nicht vom PIC Kit erfolgen, du musst das 
Android Kit separat versorgen.

Wähle dann mal das PIC Kit als Debugger aus, compiliere neu und 
programmiere neu. Dann starte das Programm von MPLAB aus. Das PIC Kit 
muss dann natürlich die ganze Zeit angeschlossen bleiben. Dafür kannst 
du nun das Programm jederzeit pausieren und eben debuggen, sodass du 
siehst, was gerade ausgeführt wird und ggf. Fehler suchen kannst.

Dann kannst du das Smartphone anschließen. Es sollte nun geladen werden 
und vermutlich funktionieren.

Von Microchip wird noch eine weitere App angeboten, mit der du testen 
kannst, was mit deinem Smartphone überhaupt möglich ist.
#3786479
Lesenswert?

Hi Frank,

danke für die Informationen.

Wie du beschrieben hast, habe ich PIC Board extern mit Spannung 
versorgt.
PICKIT3 als Debugger eingestellt das Programm compiliert und Debugger 
gestartet.

Ich kriege folgende Fehler Meldung:



Running...
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.


was mache ich Falsch?
#3786802
Lesenswert?

hmmm irgend was übersehe ich :(

also meine schritte:

1. auf Release eingestellt. dann auf Build All

2. Unter Programmer pickit3 gewählt, Programmer/programm
   und kriege dann die Meldung.
   Programming...
   Programming/Verify complete

3. Ich stelle dann wieder auf Debug
   Debugger/select Tool /PICkit3

4. dann gehe ich auf RUN
   und kriege wieder selbe Fehlermeldung wie vorher :(


Running...
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.

Was übersehe ich bzw. was mache ich falsch.
#3786902
Lesenswert?

1. wie Joe sagte: Auf debug-modus stellen
2. Nicht zwischen programmer und debugger wechseln. Du stellst auf 
Debugger Pic-Kit.

Also:
1. Debugger - Select Tool - PICkit 3
2. Debug-Modus wählen
3. Build-All
4. Program
5. Run

Hast du nun am Quellcode etwas geändert und willst die Änderung testen, 
dann drückst du make, program, run.
#3786995
Lesenswert?

soo Danke :)

jetzt habe ich es genau so gemacht wie beschrieben. Jetzt kriege ich 
zumindest keine Fehlermeldung mehr.

im output Fenster steht:


PICkit 3 detected
Connecting to PICkit 3...
Firmware Suite Version...... 01.28.90
Firmware type......................dsPIC33F/24F/24H
PICkit 3 Connected.
Target Detected
Device ID Revision = 00000004

Resetting...
Target Reset

Programming...
Programming/Verify complete

Running...



Nur wenn ich jetzt am Android tablet die App " Basic Accessory Demo" 
starte, steht ganz oben device not connected.


auf dem Board ist auch nichts zu erkennen .:(
#3787075
Lesenswert?

Hab's kurz selber nochmal ausprobiert, funktioniert nicht bei einem 
Nexus 5.
Liegt vermutlich am OS, da die App nur bis Android v.3 kompatibel ist.

Also falls du ein altes Smartphone mit mit Gingerbread hast, kannst du 
es damit mal testen.

Ansonsten wirst du die App anpassen müssen, damit sie mit Android 4 
kompatibel wird.

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