Skip to main content
Associate III
August 19, 2024
Solved

Alternative Functions and Additional Functions

  • August 19, 2024
  • 1 reply
  • 2373 views

STM32L072 has USB as Additional Functions instead of an Alternative Function

Though in one of my Earlier Post It was briefly explained, It felt to have a Dedicated Post in General Thereby this Post to Better Understand the Difference and Way of Working with them.

  • What Exactly are the Difference Between Alternative Functions and Additional Functions?

Pavan_LohiaGroup_0-1724038285746.png

I found this in one of the Documentations, But Can Someone Elaborate this to me?

  • Doesn't those Peripherals which are Additional Functions Such as in L072 for USB, Need any GPIO Initialization? If they So How should they be configured?
  • Would These Peripherals work Just by Enabling them via Clock? If not what are the other Parameters.

 

Best answer by KnarfB

If you look at figure "Basic structure of an I/O port bit" in the ref.man, you see that alternate functions use the digital IO path: CMOS inverter for output, schmitt-trigger for input. In constrast, the digital paths are bypassed for additional functions, sometimes also called analog functions in the documents. This is needed for IO with special electrical requirements. Examples are ADC, DAC, ... and USB DP and DN pins, see ref.man  31.4.1 Description of USB blocks.

For code examples check out STM32CubeL0/Projects/NUCLEO-L053R8/Applications/USB_Device at master · STMicroelectronics/STM32CubeL0 (github.com)

hth

KnarfB

1 reply

KnarfB
KnarfBBest answer
Super User
August 19, 2024

If you look at figure "Basic structure of an I/O port bit" in the ref.man, you see that alternate functions use the digital IO path: CMOS inverter for output, schmitt-trigger for input. In constrast, the digital paths are bypassed for additional functions, sometimes also called analog functions in the documents. This is needed for IO with special electrical requirements. Examples are ADC, DAC, ... and USB DP and DN pins, see ref.man  31.4.1 Description of USB blocks.

For code examples check out STM32CubeL0/Projects/NUCLEO-L053R8/Applications/USB_Device at master · STMicroelectronics/STM32CubeL0 (github.com)

hth

KnarfB