2010-10-23 02:32 AM
USB enable/disable pin on STM32F107
#stm32f107-usb-bootloader-working-without-pull-up-on-dp2011-05-17 05:12 AM
Yes it is STM32F107. If I use USBUF02W6 as transceiver, then can I have problems to disconnect the device? It seems that to have a permanent internal D+ pullup. What transceiver do you suggest (NO BGA)?
Tank You2011-05-17 05:12 AM
Are you talking about STM32F107, instead of STM32F017 ?
For STM32F107, D+ pull-up is integrated in the chip.
No extra port pin is required.
Tsuneo
2011-05-17 05:12 AM
USBUF02W6 (EMI filter w/pull-up) is not good for STM32F107.
D+ pull-up resistor isn't cut off on this chip.
STM3210C-EVAL for STM32F107VCT mounts EMIF02-USB03F2 (U4)
http://www.st.com/stonline/products/literature/um/15082.pdf
This EMI filter chip also integrates D+ pull-up, but the EVAL board leaves Rpu terminal NC.
These EMI filter/ TVS chip fit well for this purpose.
ON semi
NUF2030XV6
http://www.onsemi.jp/pub_link/Collateral/NUF2030XV6-D.PDF
NUP4016
http://www.onsemi.jp/pub_link/Collateral/NUP4016P5-D.PDF
etc.
For self-powered device, select a TVS chip without high-side diode on D+ line
High-side diode disturbs VBUS detection. VBUS voltage is kept high at disconnection, passing through this diode and D+ pull-up.
For example, some EVAL boards mount USBLC6-2 for self-powered device, but it's wrong choice.
USBLC6-2 (good for bus-powered, but not for self-powered)
http://www.st.com/stonline/products/literature/ds/11265.pdf
Tsuneo
2011-05-17 05:12 AM
I was curious if driving +5.0 V DC into PA9 while the microprocessor was powered down might cause a problem. So I gave it a try, but I was unable to damage the chip.
2011-05-17 05:12 AM
I had the same problem. I could not get the bootloader to connect without adding an external pull-up on USB_DP. However the real problem was with the USB_VBUS input on port PA9. My circuit dropped the voltage from +5.0 V DC to +3.3 V DC from USB_VBUS to PA9. The system memory (factory masked ROM) USB bootloer or USB hardware will not maintain a connection if the voltage on port PA9 is too low. I changed my circuit to allow the +5V DC from USB_VBUS to run directly to port PA9 and now the USB bootloader works without needing any external pull-up on USB_DP. There is an analog comparator circuit inside the microprocessor for monitoring the USB_VBUS voltage. I do not know at what threshold voltage the internal pull-up circuit will drop out. But +3.3 V DC is definitely too low.
The microprocessor I am using is the STM32F107VCT6 with a date code of 031 (or the 31 week of 2010).2011-05-17 05:12 AM
> I was curious if driving +5.0 V DC into PA9 while the microprocessor was powered down might cause a problem.
On the datasheet, PA9 of STM32F107VCT6 is assigned to ''FT'' I/O level - ie. 5V-tolerant port. Usually, 5V-tolerant port is expected as partial-powerdown tolerant, too, by its structure. But the datasheet doesn't specify it. Usually, powerdown tolerance is shown as input leakage current at VDD = 0V. I don't see this parameter on the Electrical characteristics section on the datasheet.
Therefore, confirm it by asking to ST directly.
> So I gave it a try, but I was unable to damage the chip.
Do you mean you are connecting PA9 directly to USB VBUS (5V)?
You should have a protection resistor across VBUS and PA9, around 100k. With this resistor, leakage current is limited, even if the port would not be partial-powerdown tolerant.
Tsuneo
2011-05-17 05:12 AM
Q) Do you mean you are connecting PA9 directly to USB VBUS (5V)?
A) Yes, however my new circuit will have a 1k-ohm resistor and a capacitor to ground. ASCII Art: USB_VBUS ---/\/\/\/\---+---||--- Ground | +--- PA9