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
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.
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
:
Bearbeitet durch User
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
mehmet cikar schrieb: > Kannst du mir mehr Informationen bezüglich PIC Android kommunikation > geben. Wenn es kein USB sein muss, kann man es auch über Bluetoothmodul über SSP machen. Auf µC Seite ist dazu nur ein UART notwendig.
Max H. schrieb: > mehmet cikar schrieb: >> Kannst du mir mehr Informationen bezüglich PIC Android kommunikation >> geben. > Wenn es kein USB sein muss, kann man es auch über Bluetoothmodul über > SSP machen. Auf µC Seite ist dazu nur ein UART notwendig. Es muss leider USB sein. :(
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
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
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.
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<
Custom HID Devices gehören nur der HID Klasse an, lassen sich aber nicht in die Unterkatetegorien Tastatur, Maus, Joystick oder Gamepad einordnen und verwenden einen eigenen Data Report.
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.)
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
Wie die Platine mit Strom versorgt? Hast du eine externe Spannungsversorgung oder ist die Versorgung durchs Pk3 aktiviert?
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?
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.
:
Bearbeitet durch User
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?
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.
Naja, das ist jetzt nicht sonderlich überraschend: wenn du die Firmware im Release-Modus kompilierst, kannst du sie natürlich auch nicht debuggen...
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.
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 .:(
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.
Ohh Schade ich habe 4.2.2 drauf :( Wenn ich mir mal v2014_07_22 angucke da sieht die Firmware ganz anders aus. Da sehe ich mehrere Header Dateien. kann mir jemand sagen wie ich die als ein Projekt zusammenfügen und compilieren kann.
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.