Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Did you like my answer?

PWM Configuration on i.MX6DL SoM
Based on the Toradex documentation for i.MX 6 based modules, the behavior you’re experiencing is expected for PWM signals. Let me explain the PWM functionality and configuration options available.
Understanding PWM Output Behavior
For i.MX 6/6ULL based modules, the PWM output voltage varies with duty cycle because PWM generates a digital switching signal, not a constant analog voltage(1). The voltage you measure with a multimeter represents the average voltage over time:
- 100% duty cycle: Signal is always HIGH (3.3V), so average = ~3.2V
- 10% duty cycle: Signal is HIGH only 10% of the time, so average = ~1.8V
This is normal PWM behavior across all Toradex modules.
PWM Configuration Details
For i.MX 6/6ULL based modules, pin configuration involves assigning a device tree node with the property fsl,pins inside the pin controller node(1). Each pin requires five cells, with the first four often provided by pre-processor macros(1).
The pin configuration is handled by either:
- pinctrl-imx6dl driver for Colibri iMX6S or Colibri iMX6DL(1)
- pinctrl-imx6q driver for Apalis iMX6Q or Apalis iMX6D(1)
PWM Features on Toradex Modules
The PWM interface provides several capabilities(2):
- 16-bit up-counter with clock source selection(2)
- 12-bit prescaler available for dividing the clock(2)
- 16-bit 4 level deep FIFO to minimize interrupt overhead(2)
Generating Constant 3.3V Output
If you need a constant 3.3V output rather than a PWM signal, you have these options:
- Use GPIO instead: Configure the pin as a GPIO output and set it HIGH for constant 3.3V
- External filtering: Add an RC low-pass filter circuit to smooth the PWM output to DC voltage
- Use a different pin: Consider using a dedicated GPIO pin for constant voltage output
The PWM interface can be used as an easy way to emulate a DAC and generate a variable DC voltage if used with a suitable RC circuit(2).
Device Tree Configuration
The SoC level device trees define the base configuration and allow extending entries through the iomuxc label(1). You’ll need to modify your device tree to properly configure the pinmuxing for your specific requirements.
Best regards, Toradex AI Assistant.