Forum: Mikrocontroller und Digitale Elektronik USB-Board mit externer Versorgung und 5V-Kompatiblität


von S. R. (svenska)


Lesenswert?

Hi,

ich möchte ein existierendes Gerät USB-fähig machen, mir aber die Arbeit 
ersparen, selbst eine Platine zu bauen. Also suche ich ein Board für 
kleines Geld, wo ein USB-fähiger Controller (Full-Speed!) drauf ist.

Alle Boards, die ich gefunden habe, werden vom USB-Port versorgt, aber 
das Gerät muss mit einem eigenen Netzteil gespeist werden und spricht 
bidirektional klassisches TTL (5V) auf knapp 20 Pins.

Optimal wäre also, wenn ich das Board nicht über USB versorgen muss, 
sondern über das externe Netzteil. Dann brauche ich nur USB-seitig eine 
galvanische Trennung.

Kennt jemand ein Board, welches sowas anbietet? Die Geschwindigkeit ist 
unkritisch, und ob da ein AVR oder ein ARM drauf ist, spielt keine 
Rolle. Wichtig ist, dass die Inputs 5V-tolerant sind und der USB 
galvanisch getrenntes Full-Speed anbietet.

Oder mache ich mir einfach zu große Sorgen mit der Trennung und suche 
daher falsch?

Nachtrag: Es geht um ein Einzelstück.

Gruß,
svenska

: Bearbeitet durch User
von Manfred (Gast)


Lesenswert?

S. R. schrieb:
> Die Geschwindigkeit ist
> unkritisch, und ob da ein AVR oder ein ARM drauf ist, spielt keine
> Rolle. Wichtig ist, dass die Inputs 5V-tolerant sind und der USB
> galvanisch getrenntes Full-Speed anbietet
Du weisst, was Du willst - "Geschwindigkeit unkritisch" oder 
"Full-Speed"?

Du kannst einen USB nach Seriell Adapter einsetzen wie z.B. 
https://www.aliexpress.com/item/Free-Shipping-CH340-module-USB-to-TTL-CH340G-upgrade-download-a-small-wire-brush-plate/32511531487.html 
und die zwei Datenleitungen auf 5V-Seite galvanisch trennen mit z.B. 
https://www.aliexpress.com/item/Magnetic-Isolator-Board-Module-Replace-Optocouplers-CJMCU-1201-ADUM1201-Isolator-ADUM1201ARZ-SOIC-8-Isolator-SPI-Interface/32789240308.html

oder Du trennst den USB mit z.B. 
https://www.aliexpress.com/item/New-USB-Isolator-1500v-Isolator-ADUM4160-USB-To-USB-ADUM4160-ADUM3160-Module/32745353166.html

von S. R. (svenska)


Lesenswert?

Das Gerät entspricht im Prinzip einer Standardklasse (kein CDC), 
deswegen brauche ich Unterstützung für Full Speed.

Manfred schrieb:
> oder Du trennst den USB mit z.B.
> 
https://www.aliexpress.com/item/New-USB-Isolator-1500v-Isolator-ADUM4160-USB-To-USB-ADUM4160-ADUM3160-Module/32745353166.html

Ich hatte gehofft, dass es kleine Boards mit Mikrocontroller gibt, die 
so einen Isolator schon drauf haben... eine galvanische Trennung auf 
Geräteseite ist mit viel Aufwand verbunden.

von Flip B. (frickelfreak)


Lesenswert?

S. R. schrieb:
> eine galvanische Trennung auf
> Geräteseite ist mit viel Aufwand verbunden.

Ist die überhaupt nötig?

von S. R. (svenska)


Lesenswert?

Flip B. schrieb:
> Ist die überhaupt nötig?

Weiß ich nicht. Aber bei dem Gedanken, zwei von verschiedenen Netzteilen 
versorgte Geräte ohne Trennung direkt mit einem Controller zu verbinden, 
fühle ich mich nicht so richtig wohl.

Oder liege ich da falsch?

von Stefan F. (Gast)


Lesenswert?

Ich würde sagen, dass ein Arduino Nano Board all deine genannten 
Anforderungen erfüllt.

Falls du etwas mehr I/O Pins brauchst, dann ein Crumb644
http://www.chip45.com/products/crumb644-1.1_avr_atmega_module_board_atmega644p_usb_rs485.php


> Dann brauche ich nur USB-seitig eine galvanische Trennung.

Dafür wiederum verwendet man üblicherweise USB Isolatoren. Alternativ 
kannst du ein µC Board ohne USB Interface verwenden, dann zwei 
Optokoppler und dann ein USB-UART Interface. Das bekommst du aber mit 
Sicherheit nicht an einem Stück als fertiges Produkt.

> Oder mache ich mir einfach zu große Sorgen mit der Trennung

Warscheinlich ja, aber ohne die Betriebumgebung zu kennen kann niemand 
diese Frage vernünftgi beantworten.

> bei dem Gedanken, zwei von verschiedenen Netzteilen versorgte
> Geräte ohne Trennung direkt mit einem Controller zu verbinden,
> fühle ich mich nicht so richtig wohl.

Dann liegst du falsch. Jedes normale PC Zubehör (Drucker, externe 
Festplatte, Monitor) und praktisch alle Geräte der 
Unterhaltungselektronik (Fernseher, Receiver, Spielkonsole, Bluray 
Player) haben auch keine Potentialtrennung an ihren Schnittstellen.

von S. R. (svenska)


Lesenswert?

Stefan U. schrieb:
> Alternativ kannst du ein µC Board ohne USB Interface verwenden,
> dann zwei Optokoppler und dann ein USB-UART Interface.

Dann kriege ich PC-seitig wieder ein CDC, was nicht funktioniert.

Stefan U. schrieb:
>> Oder mache ich mir einfach zu große Sorgen mit der Trennung
> Warscheinlich ja, aber ohne die Betriebumgebung zu kennen kann niemand
> diese Frage vernünftgi beantworten.

Auf der einen Seite ein normaler PC, der per USB an den Controller 
angeschlossen ist; auf der anderen Seite ein gewöhnliches PC-Netzteil, 
welches ein Gerät speist, welches ebenfalls am Controller angeschlossen 
ist.

von Stefan F. (Gast)


Lesenswert?

> Dann kriege ich PC-seitig wieder ein CDC, was nicht funktioniert.

Nein, PC Seitig hast du einen Waschechten USB-UART Chip (FT-232, CP2201, 
PL2302, CH-340, oder so). Der Optokoppler sitzt an den RxD und TXD 
Leitungen zwischen dem USB-UART und den Mikrocontroller.

> Auf der einen Seite ein normaler PC, der per USB an den Controller
> angeschlossen ist; auf der anderen Seite ein gewöhnliches PC-Netzteil,
> welches ein Gerät speist, welches ebenfalls am Controller angeschlossen
> ist.

Das ist doch der Idealfall, wo du gar keine Potentialtrennung benötigst.

Potentialtrennung wäre nur dann nötig, wenn die GND Leitungen der 
Netzteile geerdet wären (was bei PC Netzteilen üblicherweise der Fall 
ist) und die beiden Netzteile so weit entfernt vorneinander aufgestellt 
sind, dass ihre GND/Erde Potentiale erheblich voneinander abweichen.

Innerhalb eines Gebäudes brauchst Du Dir darum jedenfalls keine Sorgen 
machen. Und für so lange Strecken, wo es ein Problem wäre, ist USB 
ohnehin nicht geeignet.

von S. R. (svenska)


Lesenswert?

Stefan U. schrieb:
>> Dann kriege ich PC-seitig wieder ein CDC, was nicht funktioniert.
> Nein, PC Seitig hast du einen Waschechten USB-UART Chip (FT-232, CP2201,
> PL2302, CH-340, oder so).

Ich brauche aber ein MSC, weil ich mit dem Gerät SCSI sprechen muss 
(bzw. etwas funktional ähnliches). :-)

Stefan U. schrieb:
> Das ist doch der Idealfall, wo du gar keine Potentialtrennung benötigst.

Gut, dann fühle ich mich beruhigt und hab mal ein Arduino Pro Micro 
bestellt. Leider haben die AVRs keinen vollständigen Port herausgeführt, 
aber damit muss ich dann wohl leben. :-)

von Stefan F. (Gast)


Lesenswert?

> Ich brauche aber ein MSC, weil ich mit dem Gerät SCSI sprechen muss
> (bzw. etwas funktional ähnliches). :-)

Schön, dass du damit erst jetzt raus rückst. Bisher waren ers nur 20 I/O 
Pins. Was ist ein MSC?

> Leider haben die AVRs keinen vollständigen Port herausgeführt

Beim Crumb644 Modul hast du 3 ganze Ports (A, B und C).

von S. R. (svenska)


Lesenswert?

Stefan U. schrieb:
> Was ist ein MSC?

USB definiert ein paar Standardklassen, u.a. HID (Human Interface 
Device), CDC (Communication Device Class) und auch MSC (Mass Storage 
Class).

Stefan U. schrieb:
>> Leider haben die AVRs keinen vollständigen Port herausgeführt
> Beim Crumb644 Modul hast du 3 ganze Ports (A, B und C).

Der kann kein USB.

Ich brauche schlicht ein vollwertiges USB Full-Speed Interface, keine 
serielle Schnittstelle. Warum ignorieren das alle?

von Stefan F. (Gast)


Lesenswert?

Das ignoriert niemand. Du hast nur versäumt, dies als Anforderung zu 
nennen.

von S. R. (svenska)


Lesenswert?

S. R. schrieb:
> Also suche ich ein Board für
> kleines Geld, wo ein USB-fähiger Controller (Full-Speed!) drauf ist.

S. R. schrieb:
> Das Gerät entspricht im Prinzip einer Standardklasse (kein CDC),
> deswegen brauche ich Unterstützung für Full Speed.

S. R. schrieb:
> Dann kriege ich PC-seitig wieder ein CDC, was nicht funktioniert.

Seufz.

von Frank K. (fchk)


Lesenswert?

Dann nimm Dir halt eine Lochrasterplatine, bau da einen PIC18F45K50 im 
DIL-40 drauf, 16 MHz Quarz, die unvermeidlichen 100n Kondensatoren 
zwischen Vdd und Vss, einen 470n Kondensator zwischen Vusb und GND, und 
eine USB-B Buchse. Das kann ja nicht so schwer sein. Läuft mit 5V, hat 
Hardware-USB und genügend IO-Pins.

Datenblatt:
http://ww1.microchip.com/downloads/en/DeviceDoc/30000684B.pdf

Demo-Board:
http://ww1.microchip.com/downloads/en/DeviceDoc/51526C.pdf

Den fertigen USB-Stack gibts bei Microchip, da ist auch MSD mit dabei.

fchk

PS: ich vergaß den 5-Pin Header fürs PICKIT3 und den 10k zwischen !MCLR 
und Vdd

: Bearbeitet durch User
von S. R. (svenska)


Lesenswert?

Frank K. schrieb:
> Dann nimm Dir halt eine Lochrasterplatine, bau da einen PIC18F45K50...

Genau das wollte ich ja vermeiden, außerdem habe ich keine USB-fähigen 
Chips rumliegen. Ist inzwischen aber auch egal, denn ich hab mir ein 
Arduino Pro Micro (die mit ATmega32U4) bestellt.

Danke trotzdem.

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.