usb здесь (06.05.2015 10:08, просмотров: 1616)
О, всезнающий Олл, помогите разобраться с USB_pullup устройство детектится только в 50% подключений. Хочу стабильности (c) http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/firmware/stsw-stm32121.zip
Виртуальный COM-порт, драйвер типо COM3 от ST под Win7. Под XP драйвер искаропки.
Если pullup отключить, хост не обнаруживает устройство на шине.
Если pullup перманентно подключен, примерно в 70% подключений - неизвестное устройство.
Наверное зависит от момента подключения, устройство на stm32f103 получает питание от USB.
Не успевает включить pullup к очередному Start-Of-Frame?
В init() pullup отключается. Где включается неочевидно:
Управляет состояние pullup в функции USB_Cable_config(), определённой в hw_config.c
USB_Cable_config() вызывается PowerOn() и PowerOff(), определёнными в usb_pwr.c
PowerOn() вызывается Virtual_Com_Port_init(), определённой в usb_prop.c
Virtual_Com_Port_init() никто не вызывает! WTF?
Если бы pullup не включался, хост не находил бы устройство. Раз находит, значит включается.
Как правильно управлять pullup, чтобы устройство коннектилось прктически всегда?
stsw-stm32121.zip\STM32_USB-FS-Device_Lib_V4.0.0\Projects\VirtualComport_Loopback\MDK-ARM