www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 / USB / 1k5-Connect-PullUp


Autor: (Gast) == (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

in den Eval-Boards findet man immer die Disconnect-Möglichkeit mit 2 NPN 
und einer Handvoll Widerständen.

Was spricht dagegen, das einfach so zu machen? Die GPIOs sind zumeist ja 
5V-Tolerant, auch ohne Vcc:

                         On-Off
              |--/| 3V3    /
           ,--| / |-------/  -----.
           |  |/__|               |  STM32F103VC
           |                 ------------------
           |     1k5        |                 |
           |  ,--[==]-------| GPIO(Connect)   |
     <--5V-'  |             |                 |
              |             |                 |
     <--DP----+-------------| USB_DP          |
USB-B                       |                 |
     <--DM------------------| USB_DM          |
                            |                 |
     <--GND-.               -------------------
            |                   |
            |                   |
           ---                 ---

(Bild ohne RC-Filter in den Datenleitungen / Schutzbeschaltung)

Autor: Hannes S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ehrlich gesagt habe ich mich das auch schonmal gefragt. Und hab es auch 
ausprobiert und hat (natürlich) funktioniert. Hab mir auch schon 
überlegt, sicherheitshalber noch zwischen R und dem Controller eine 
Diode einzufügen - Schließlich muss der µC das Signal ja nur High 
treiben um die Anwesenheit am Bus zu signalisieren. Insofern würde mich 
schon auch der Grund interessieren, wieso das alle mit den Transistoren 
machen...

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Demo-Board muss einfach ein paar Bauteile mehr haben damit es teurer 
verkauft werden kann...

GPIO Pin reicht.

Externer Quarz vorsehen, damit USB garantiert tut. Mit dem internen kann 
es eventuell Probleme geben!

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab in den Artikel STM32 USB-FS-Device Lib gerade mal meinen 
Schaltplan eingefügt, mit dem es funktioniert.
Tom

Autor: (Gast) == (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für Eure Antworten, werde mich also gelassen auf einen simplen 
Widerstand beschränken:-)

@Thomas: Unabhängig vom USBLC6 sollte der Flankensteilheit wegen doch 
streng genommen noch ein RC-Tiefpass (27Ohm/18pF) nachgeschaltet werden, 
oder?

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Gast) == schrieb:
> @Thomas: Unabhängig vom USBLC6 sollte der Flankensteilheit wegen doch
> streng genommen noch ein RC-Tiefpass (27Ohm/18pF) nachgeschaltet werden,
> oder?

Das Referenzboard hatte keinen drin. Und hier wurde mir gesagt, es sei 
nicht nötig.

Was meinen die anderen dazu?

Gruß
Tom

Autor: Hannes S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Streng genommen sollte man die Impedanz auf 90Ohm anpassen. Nachdem ich 
aber davon recht wenig Ahnung habe und das ganze in meinem Fall nur 'ne 
Spielerei war, habe ich beschlossen das erstmal zu ignorieren und zu 
schauen, ob es auch so geht und daher einfach an 3 PCs und 2 Hubs 
getestet.
Allerdings erinnere ich mich, irgendwo gelesen zu haben, dass ein 
kommerzielles Produkt bei der USB Zertifizierung auch die Flanken 
einhalten muss. In diesem Fall können dann die R/Cs schon wichtig 
werden.

Autor: Hannes S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Hatte gerade nochmal Zeit, um ein wenig rumzustöbern. Das hier 
scheint schonmal wichtige Tipps zu geben: 
http://www.usb.org/developers/usbfaq#sig7
BTW: Ich hatte damals rein instinktiv 22Ohm Widerstände in die D+/D- 
Leitungen eingebaut, allerdings kein C. Scheint so ganz brauchbar zu 
sein. Aber vielleicht kann mal jemand mit etwas mehr Analog-Ahnung uns 
Digitalos zur Erleuchtung verhelfen?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab die Schaltung mit dem 1.5k Pullup noch nicht ganz verstanden: muss 
der Prozessor den Pin auf Low ziehen, damit der Host einen Teilnehmer am 
Bus erkennt???

Bis jetzt hab ich das mit den Transistoren auch installiert - nach 
diesen Beiträgen, werd ich sie aber später wieder weglassen - und ohne 
den Pin nach low zu ziehen, erkennt der Host einen Teilnehmer, kann aber 
nicht mit ihm kommunizieren.


Liegt das daran, dass der Pin auf low gezogen werden muss - und warum 
ist das so???


Gruß
Oliver

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kuck Dir lieber mal meine Schaltung von oben an.

Du brauchst keinen Pull-Up sondern einen Pull-Down. Solange Data+ auf 
GND liegt erkennt Dein PC noch kein Gerät, d.h. Du initialisierst erst 
mal Deine USB Software auf dem µC und dann ziehst Du den Data+ auf High.

gruß
Tom

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes S. schrieb:
> Hab mir auch schon
> überlegt, sicherheitshalber noch zwischen R und dem Controller eine
> Diode einzufügen - Schließlich muss der µC das Signal ja nur High
> treiben um die Anwesenheit am Bus zu signalisieren. Insofern würde mich
> schon auch der Grund interessieren, wieso das alle mit den Transistoren
> machen...

Die Diode braucht man nicht, da die Pegel auf den Datenleitungen bei 
3,3V liegen.

Warum Transistoren: Das kann dir nur der Mitarbeiter von STM erklären, 
der das beim ersten Board so entworfen hat. Die anderen Boards sind 
wahrscheinlich so übernommen wurden. Olimex kopiert größtenteils auch 
nur die bereits existierenden Schaltungen, sei es ihre eigenen oder die 
von STM. Das ist auch der Grund, warum die an den JTAG-Ports so viele 
Pull-Ups haben, obwohl die beim STM32 nicht mehr nötig sind.

Thomas Burkhart schrieb:
> Das Referenzboard hatte keinen drin. Und hier wurde mir gesagt, es sei
> nicht nötig.
>
> Was meinen die anderen dazu?

Bei kommerziellen Projekten, die durch die Zertifizierung müssen, 
sollten sie drin sein. Man kann über die Widerstände und die 
Kondensatoren wie gesagt die Flankensteilheit verändern. Die optimalen 
Werte, um ein gutes Augendiagramm zu bekommen, hängen aber auch von 
anderen Faktoren wie dem Layout ab - hier kann man also nur Empfehlungen 
geben.

Fazit: Ein GPIO-Pin mit Widerstand dran reicht - ich setze das selber 
auch bei kommerziellen Projekten so ein.

Autor: stm32user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der stm32 nicht aus usb versorgt wird, darf er D+ nicht auf GND 
ziehen. 
http://www.eevblog.com/forum/projects/driving-the-...

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann muss man halt zwischen floating und high umschalten. Aber 
eigentlich müsste das bei allen STM32 machbar sein. Es ist nur ein 
bisschen Registerfummelei nötig.

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.