1.5k pull up för USB kommunikation

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

1.5k pull up för USB kommunikation

Inlägg av Korken »

Godagens!

Sitter och designar ett kort med USB (via en STM32F373), och på dessa så ska man styra 1.5k motståndet manuellt.
Jag ska dra denna till VCC för att indikera att en enhet är inkopplad eller lämna det flytade för att koppla bort.

Det som är min fundering är, kan man koppla direkt 1.5k motståndet till en CPU ben för att driva det högt/lågt?
I alla designer så har folk en transistor som gör detta, men det känns lite onödigt. Eller har jag missat något som gör att man måste ha en transistor?

//Emil

Exempel från STM32F373Discovery Board:
usb.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Korken 8 juli 2014, 08:19:12, redigerad totalt 1 gång.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: 1.5k pull up för USB kommunikation

Inlägg av Swech »

Enda anledningen skulle väl vara att få lite mer skydd för processorbenet,
Annars bör det funka fint.

:humm: Hade inte en PNP varit ett bättre val i exemplet?

Swech
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: 1.5k pull up för USB kommunikation

Inlägg av Korken »

Precis min tanke, lika så om transistorn. :humm:
Jag har alltid ESD skydd på D+ och D- så det känns inte som att ESD kommer vara ett problem.

För jag blir lite osäker när ingen annan har rak inkoppling. Kanske bäst att slänga dit en PNP och göra som alla andra iaf?
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: 1.5k pull up för USB kommunikation

Inlägg av Icecap »

Att välja en emitterföljare är definitivt fel! Idén med motståndet är att ge en specifik spänning men med en emitterföljare ska man ju räkna bort en diodsträcka. Det kan ju vara ett det fungerar ändå - men det är en onödig koppling och dumt gjort.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: 1.5k pull up för USB kommunikation

Inlägg av Korken »

Jag tror det är därför basen på andra transistorn är kopplad till 5V.
Men jag håller med, det är en konstig koppling.
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: 1.5k pull up för USB kommunikation

Inlägg av Icecap »

Korken: Basen på T4 är utan betydelse i detta. Ska det vara något är det bas-spänningen på T5 som är av vikt men den sitter på en spänningsdelare som ger 3,9V varför T5 faktisk bara används som diod (b-e). Mycket konstig koppling.

Och för många komponenter för en så liten funktion.
superx
Inlägg: 1127
Blev medlem: 19 juni 2012, 23:28:16
Ort: Linköping

Re: 1.5k pull up för USB kommunikation

Inlägg av superx »

Jag är inblandad i en konstruktion som är i produktion nu. STM32 M3 och bus power. Samma transientskydd som i schemat du postade. 1,5k direkt till MCU. Det funkar!
Användarvisningsbild
MiaM
Inlägg: 12951
Blev medlem: 6 maj 2009, 22:19:19

Re: 1.5k pull up för USB kommunikation

Inlägg av MiaM »

Poängen med emitterföljaren är väl att när USB_disconnect är hög så har T4's kollektor och därmed T5's bas ca 0V på sig, och då blir emittern på T5 högimpediv (jämfört med normala spänningar. Det är ju bara bra att den börjar leda om nån börjar dundra in -0,7V på USB_D+). Har man inte emitterföljaren så lastar R84 USB_D+ hela tiden. T4 används för att det ska funka oavsett hur bra/dålig "etta" man uar på USB_disconnect. Om man vet att det är perfekta spänningsnivåer (typ CMOS-utgång eller liknande) så kan man förstås skippa T4, R56 och R65, och mata USB_disconnect istället för U5V in på vänstra sidan av R86. (Då blir givetvis signalen USB_disconnect inverterad).

Fast nu har jag kanske fått hela USB-funktionen om bakfoten?
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: 1.5k pull up för USB kommunikation

Inlägg av Korken »

superx:
Aha, så det fungerar! Drog ni sedan bara pinnen som motståndet var kopplat till högt/lågt för att styra USB-anslutningen?
Eller va ni tvungna att alternera mellan högimperdiv och push/pull?
superx
Inlägg: 1127
Blev medlem: 19 juni 2012, 23:28:16
Ort: Linköping

Re: 1.5k pull up för USB kommunikation

Inlägg av superx »

Den biten har jag ingen koll på tyvärr.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: 1.5k pull up för USB kommunikation

Inlägg av Swech »

Korrekt måste väl vara att växla mellan ingång / utgång satt till "1"

Swech
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: 1.5k pull up för USB kommunikation

Inlägg av Korken »

Det känns som det. Hittade att den ska vara "high impedace" när den är urkopplad.
Men jag får testa när jag har grejerna. jag lär märka vad som fungerar när man testar på USBn. :)
swirve
Inlägg: 398
Blev medlem: 13 mars 2007, 21:58:25
Ort: Norrköping

Re: 1.5k pull up för USB kommunikation

Inlägg av swirve »

Misstänker att superx och jag sitter på samma projekt, men på olika sidor... Och utan att ha koll på mjukvaran så ser det ut som den sätts hög eller låg med en utgång. Verkar funka det också...
superx
Inlägg: 1127
Blev medlem: 19 juni 2012, 23:28:16
Ort: Linköping

Re: 1.5k pull up för USB kommunikation

Inlägg av superx »

Det kan nog stämma! :D

Kollade precis på V-USB för AVR som jag använt en hel del med framgång. Den sätter IO-pinnenen till ingång utan pull-up iaf.
Skriv svar