Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vbus support #5

Merged
merged 3 commits into from
Jan 25, 2022
Merged

Vbus support #5

merged 3 commits into from
Jan 25, 2022

Conversation

UT2UH
Copy link
Owner

@UT2UH UT2UH commented Jan 25, 2022

No description provided.

Since commit bdd33df (Refresh USB logic; callback for events; hotplug in
STOP mode; STOP mode in USB SUSPEND; bunch of race conditions in the
USB/CDC code; avoid SOF interrupt; 500mA max power in descriptiors),
the USBD code would assume a VBUS pin is available and only initialize
the USB stack when a VBUS voltage is present.

This commit restores the older behavior of, when
`STM32L0_CONFIG_PIN_VBUS` (so indirectly also `usbd_pin_vbus`) is
`STM32L0_GPIO_PIN_NONE`, assuming VBUS is always present. USB
initialization can still be controlled using `USBDevice.attach()`.
This is already done by usbd_conf.c which is also the place where it is
read, so no need to do it again here.
This can be useful to allow measuring the actual USB voltage, rather
than just detect presence.

Previously the USB code would always enable an internal pulldown on the
VBUS, which would skew the reading (and, if the divider is fairly high
impedance, can even prevent detecting VBUS presence using a digital
read).

With this commit, boards can indicate they use an external divider using
the STM32L0_CONFIG_PIN_VBUS_HAS_DIVIDER macro in their variant.h. When
this is defined, the internal pullup is not enabled to prevent it from
causing issues and because it is no longer needed (the external divider
functions as a pulldown).
@UT2UH UT2UH merged commit 2f64e7d into UT2UH:VBUS Jan 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants