1.5k pull up för USB kommunikation
1.5k pull up för USB kommunikation
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:
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:
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.
- 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
Enda anledningen skulle väl vara att få lite mer skydd för processorbenet,
Annars bör det funka fint.
Hade inte en PNP varit ett bättre val i exemplet?
Swech
Annars bör det funka fint.

Swech
Re: 1.5k pull up för USB kommunikation
Precis min tanke, lika så om transistorn.
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?

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?
Re: 1.5k pull up för USB kommunikation
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.
Re: 1.5k pull up för USB kommunikation
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.
Men jag håller med, det är en konstig koppling.
Re: 1.5k pull up för USB kommunikation
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.
Och för många komponenter för en så liten funktion.
Re: 1.5k pull up för USB kommunikation
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!
Re: 1.5k pull up för USB kommunikation
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?
Fast nu har jag kanske fått hela USB-funktionen om bakfoten?
Re: 1.5k pull up för USB kommunikation
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?
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?
- 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
Korrekt måste väl vara att växla mellan ingång / utgång satt till "1"
Swech
Swech
Re: 1.5k pull up för USB kommunikation
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.
Men jag får testa när jag har grejerna. jag lär märka vad som fungerar när man testar på USBn.

Re: 1.5k pull up för USB kommunikation
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å...
Re: 1.5k pull up för USB kommunikation
Det kan nog stämma!
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.

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.