Can I use GPIO pin that is not provide PWM mode for PWM?

33 views
Skip to first unread message

pap...@celestica.com

unread,
Jan 18, 2018, 7:37:46 AM1/18/18
to BeagleBoard
Can I use GPIO pin that is not provide PWM mode for PWM?

Due to BBB doesn't have enough PWM pins to use, so can I use GPIO pin that is not provide PWM mode for PWM?

I want to use GPIO pin with IGBT gate drive (TIDA-00446) that require PWM input.

Adam Saenz

unread,
Jan 18, 2018, 10:00:54 AM1/18/18
to BeagleBoard
A couple of options to consider; neither are perfect solutions but could work ok based on your application:

1) Toggle a GPIO with software, there will be 1-2KHz of jitter and you can't guarantee that that will be the maximum jitter you ever see.

2) If the extra PWM signal can be an exact copy of an existing hardware based PWM, you could use an ISR to toggle another GPIO anytime the hardware PWM transitions.

TJF

unread,
Jan 19, 2018, 7:55:53 AM1/19/18
to BeagleBoard
Toggling a GPIO pin by ARM software is very limited.

There're 19 pins at the board for hardware PWM output, 13 of them can work simultanously:

| Pin   | Subsystem       | Frequency Range        | Notice            |
| ----- | :-------------: | :--------------------- | :---------------- |
| P8_07 | TIMER-4         | 0.000010914 to 6e6 Hz  | free              |
| P8_09 | TIMER-5         | 0.000010914 to 6e6 Hz  | free              |
| P8_10 | TIMER-6         | 0.000010914 to 6e6 Hz  | free              |
| P8_08 | TIMER-7         | 0.000010914 to 6e6 Hz  | free              |
| P8_13 | PWMSS-2, PWM B  | 0.42 to 50e6 Hz        | free              |
| P8_19 | PWMSS-2, PWM A  | 0.42 to 50e6 Hz        | free              |
| P9_14 | PWMSS-1, PWM A  | 0.42 to 50e6 Hz        | free              |
| P9_16 | PWMSS-1, PWM B  | 0.42 to 50e6 Hz        | free              |
| P9_21 | PWMSS-0, PWM B  | 0.42 to 50e6 Hz        | free              |
| P9_22 | PWMSS-0, PWM A  | 0.42 to 50e6 Hz        | free              |
| P8_34 | PWMSS-1, PWM B  | 0.42 to 50e6 Hz        | HDMI              |
| P8_36 | PWMSS-1, PWM A  | 0.42 to 50e6 Hz        | HDMI              |
| P8_45 | PWMSS-2, PWM B  | 0.42 to 50e6 Hz        | HDMI              |
| P8_46 | PWMSS-2, PWM A  | 0.42 to 50e6 Hz        | HDMI              |
| P9_29 | PWMSS-0, PWM B  | 0.42 to 50e6 Hz        | MCASP0            |
| P9_31 | PWMSS-0, PWM A  | 0.42 to 50e6 Hz        | MCASP0            |
| P9_28 | PWMSS-2, CAP    | 0.0233 to 50e6 Hz      | MCASP0            |
| P9_42 | PWMSS-0, CAP    | 0.0233 to 50e6 Hz      | free (double pin) |
| JT_05 | PWMSS-1, PRUCAP | 0.0233 to 50e6 Hz      | JTag (UART0_TXD)  |

If those are not enough, you can use direct PRU pins to generate PWM. When both PRUSS are used, up to 24 PWM outputs are possible (ie. https://github.com/omcaree/bbb-prupwm).

BR

Reply all
Reply to author
Forward
0 new messages