Forum: Mikrocontroller und Digitale Elektronik USB Kommunikation - CY8CKIT-059


von Daniel (Gast)


Lesenswert?

Hallo,

ich bin relativ neu im Bereich Psoc. Ziel von mir ist es das Signal 
eines Barcodescanners(welcher über USB funktioniert) mit dem Psoc 
einzulesen.
Jedoch kann der Psoc nicht als Host fungieren was ein Problem für mich 
darstellt.

Hat hier vielleicht jemand eine Idee oder Vorschlag mit dem er mir 
weiterhelfen könnte? Z.B. ein Converter-Baustein zu einem anderem Bus 
o.ä.?

Vorab schon einmal Danke!!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nimm einen µC mit USB-Host-Funktionalität oder einen programmierbaren 
USB-Host-Controller. Letzteres gibt es von FTDI unter der Bezeichnung 
"Vinculum".

Du musst natürlich (egal für welche Lösung) das genaue Protokoll des 
Barcodescanners kennen, da ist kein "Signal", das es zu konvertieren 
gäbe.

Wenn Du bei Deinem PSOC bleiben willst, nimm einen PS/2-Barcode-Scanner. 
Der erzeugt ein SPI-artiges serielles Signal.

von Jim M. (turboj)


Lesenswert?

Daniel schrieb:
> Jedoch kann der Psoc nicht als Host fungieren was ein Problem für mich
> darstellt.

USB Host Programmierung kann schnell recht aufwändig werden, z.B. wenn 
man mehr als einen Leser unterstützen müsste oder der Leser mehrere Modi 
hat (wie USB HID, USB CDC).

Fast immer ist es dann weniger aufwändig auf einem "richtigen" Host mit 
Linux oder gar Windows drunter aufzusetzen.

Man schaue sich zum Beispel mal den HID Parser an, den man zum korrekten 
Auslesen und Ansteuern von HID Geräten bräuchte. USB Barcode-Leser ist 
HID im Tastaturmodus.

von Daniel (Gast)


Lesenswert?

Danke für die Antworten!

Bzgl. des USB-Host-Controller: Das bedeutet wenn ich so einen nehmen 
würde, könnte ich weiterhin den Psoc verwenden? Des Weiteren so wie ich 
es verstehe, dient der Controller als Host und stellt die Kommunikation 
zum Psoc bzw. µC über ein anderes Bussystem zur Verfügung.
Liege ich damit richtig?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel schrieb:
> Das bedeutet wenn ich so einen nehmen würde, könnte ich weiterhin den
> Psoc verwenden?

Vorausgesetzt, daß Du es hinbekommst, mit Deinem PSOC mit einer der 
Schnittstellen des Hostcontrollers zu kommunizieren. Beim "Vinculum" 
geht das mit UART (asynchron seriell), SPI (synchron seriell) und auch 
parallel.

Du musst aber von Deinem PSOC aus aktiv mit dem Hostcontroller "reden"; 
von sich aus schickt der Dir nichts.

https://www.ftdichip.com/Products/ICs/VNC1L.htm
https://www.ftdichip.com/Products/ICs/VNC2.htm

von Daniel (Gast)


Lesenswert?

alles klar, nochmals danke.

Was würdest du denn vorschlagen, wie ich das Projekt am Besten 
realisieren sollte?
Am Psoc fest zu halten, scheint ja nicht all zu vernünftig zu sein. Habe 
z.B. gelesen, dass es mit dem Arduino und einer zusätzlichen Erweiterung 
die Möglichkeit besteht ihn als Host ebenfalls anwenden zu können.

Bin für jeden Vorschlag dankbar und offen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel schrieb:
> Am Psoc fest zu halten, scheint ja nicht all zu vernünftig zu sein.

Wieso? Da ist ein Cortex-M3 drin, der rennt Kreise um einfache Arduinos.

von Daniel (Gast)


Lesenswert?

naja wirklich schnell muss der nicht sein. muss nur den Barcode einlesen 
können den auf einem Flash ablegen und evtl. das File dann an einen PC 
senden.
Also nicht so krass..

Du würdest also den Psoc mit dem Vinculum-Chip bevorzugen? Keinen 
anderen µC?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

An Deiner Stelle würde ich den µC bevorzugen, mit dem ich mich bereits 
auskenne, den ich verfügbar habe, und bei dem ich idealerweise auch 
Leute um Hilfe fragen kann, die damit schon arbeiten.

Wenn es bei Deiner Aufgabenstellung unumgänglich ist, ein USB-Gerät 
anzusprechen, dann ist die Verwendung eines USB-Hosts wie dem "Vinculum" 
eine, aber natürlich nicht die einzige Möglichkeit. Der "Vinculum" 
bringt halt schon einiges an "Eigenintelligenz" mit sich, die Dinge 
erledigt, um die man sich bei anderen USB-Host-Lösungen kümmern müsste.

Wie bist Du denn zu Deinem µC gekommen? Hast Du Dir den selbst 
ausgesucht, oder wurde der Dir von jemand anderem im Zusammenhang mit 
Deiner Aufgabenstellung empfohlen?

Du willst/musst(?) also ein Gerät konstruieren, an dem ein 
USB-Barcodescanner angeschlossen wird, das die Barcodes 
zwischenspeichert und über eine (noch zu definierende Schnittstelle) 
später an einen PC übertragen kann.

Gibt es nicht mobile Barcodescanner, die genau das schon ab Werk können?

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Es gibt von WCH den CH554 Der kann auch usb Host, gibt es bei lcsc für 
0,60€ https://lcsc.com/product-detail/USB_CH554E_C111293.html

Hier gibt es eine funktionsübersicht: 
https://www.electrodragon.com/w/WCH#MCU_.2B_USB_CH55x_Series

auch gibt es ein Beispiel für die Verbindung mit einem Barcodescanner

Basis ist ein 8051 Kern.
Programmiert wird entweder mit Keil oder SDCC.

Funk Barcodescanner gibt es ja auch zu Hauf auf Ebay 
http://rover.ebay.com/rover/1/707-53477-19255-0/1?icep_ff3=2&pub=5575152713&toolid=10001&campid=5337805630&customid=&icep_item=172789919033&ipn=psmain&icep_vectorid=229487&kwid=902099&mtid=824&kw=lg

: Bearbeitet durch User
von Daniel (Gast)


Lesenswert?

Der Grund für die Entscheidung des Psoc war, weil ich damit bereits 
gearbeitet habe und noch einen übrig hatte. Allerdings ist auch noch ein 
Arduino vorhanden.

Die Aufgabenstellung hast du mehr oder weniger richtig erfasst. Es 
werden noch ein paar dinge hinzukommen, aber die kann ich leider nicht 
verraten, sie stellen allerdings keine Hürde dar. Das einzige bestehende 
Problem, ist das bereits hier geschilderte...



Danke Aaron. Ich werde es mir mal morgen wenn ich frei habe anschauen!

von STK500-Besitzer (Gast)


Lesenswert?

http://www.hobbytronics.co.uk/usb-host-board-v2

Da musst du nur herausfinden, welches Protokoll du benötigst und kannst 
das Ding dann über die RS232/UART ansprechen.

von Michael U. (amiga)


Lesenswert?

Hallo,

die Mehrheit der mir bekannten Barcodescanner mit USB sind HID-Geräte 
und emulieren einfach ein Keyboard.
Bei den Handscannern kommt man innen auch oft an die RS232 mit TTL-Pegel 
ran, ob das Sinn macht hängt vom Scannertyp und der geplanten Verwendung 
ab..

Nur so als Hinweis.

Gruß aus Berlin
Michael

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
Noch kein Account? Hier anmelden.