This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
products:sbc:common:applications:gpio:pwm [2022/07/12 06:28] nick [Table] |
products:sbc:common:applications:gpio:pwm [2024/08/22 02:40] (current) nick |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | This document mainly describes | + | This page introduces |
- | ===== PWM Information | + | ===== PWM Reference Table ===== |
- | < | + | | |
+ | ^ | ||
+ | ^ VIM2 | ||
+ | ^ VIM3 | ||
+ | ^ VIM3L | '' | ||
+ | ^ VIM4 | ||
+ | ^ VIM1S | '' | ||
- | ^ PWM | ||
- | | PWM_AO_A | ||
- | <tabbox VIM2> | + | ===== Enable PWM ===== |
- | ^ PWM ^ PIN ^ GPIO Number | + | ==== Linux ==== |
- | | PWM_D | 35 | + | |
- | <tabbox VIM3/3L> | ||
- | ^ | + | In order to use the PWM, you need to enable the PWM function via [[products: |
- | | PWM_F | 35 | + | |
- | < | + | < |
- | ^ PWM ^ PIN ^ GPIO Number | + | Edit '' |
- | | PWM_F | 35 | + | |
- | </ | + | Take VIM3 as an example to enable '' |
+ | ```shell | ||
+ | overlays=uart3 pwm_f i2c3 i2s os08a10 watchdog | ||
+ | ``` | ||
- | ===== Enabel PWM ===== | + | After reboot, you will see the pwm device node. |
- | In order to use the PWM, you need to enable the PWM function via [[products: | + | ```shell |
+ | $ ls / | ||
+ | device | ||
+ | ``` | ||
- | < | + | < |
Edit ''/ | Edit ''/ | ||
- | Take VIM3 as an example to enable '' | + | Take VIM3L as an example to enable '' |
```shell | ```shell | ||
- | overlays=uart4 pwm_ao_a | + | overlays=uart3 pwm_f i2c3 i2s watchdog |
``` | ``` | ||
Line 47: | Line 53: | ||
```shell | ```shell | ||
- | $ ls / | + | $ ls / |
device | device | ||
``` | ``` | ||
+ | |||
+ | |||
+ | <tabbox VIM3 with 5.15 kernel> | ||
+ | |||
+ | Edit ''/ | ||
+ | |||
+ | |||
+ | You need to add '' | ||
+ | |||
+ | ```shell | ||
+ | fdt_overlays=pwm_f | ||
+ | |||
+ | ``` | ||
+ | |||
+ | After reboot, you will see the pwm device node. | ||
+ | |||
+ | <tabbox VIM3L with 5.15 kernel> | ||
+ | |||
+ | Edit ''/ | ||
+ | |||
+ | |||
+ | You need to add '' | ||
+ | |||
+ | ```shell | ||
+ | fdt_overlays=pwm_f | ||
+ | |||
+ | ``` | ||
+ | |||
+ | After reboot, you will see the pwm device node. | ||
<tabbox VIM4> | <tabbox VIM4> | ||
Line 70: | Line 105: | ||
``` | ``` | ||
+ | <tabbox VIM1S> | ||
+ | |||
+ | Edit ''/ | ||
+ | |||
+ | |||
+ | You need to add '' | ||
+ | |||
+ | ```shell | ||
+ | fdt_overlays=pwm_f | ||
+ | |||
+ | ``` | ||
+ | |||
+ | After reboot, you will see the pwm device node. | ||
+ | |||
+ | ```shell | ||
+ | $ ls / | ||
+ | device | ||
+ | ``` | ||
</ | </ | ||
- | ===== Disable PWM to Use GPIO ===== | ||
- | If you want to use normal GPIO instead of PWM, you can remove | + | ==== Android ==== |
+ | |||
+ | <tabbox VIM4> | ||
+ | |||
+ | The '' | ||
+ | |||
+ | ```diff | ||
+ | diff --git a/ | ||
+ | --- a/ | ||
+ | +++ b/ | ||
+ | & | ||
+ | + pinctrl-names = " | ||
+ | + pinctrl-0 = <& | ||
+ | status = " | ||
+ | }; | ||
+ | |||
+ | diff --git a/ | ||
+ | --- a/ | ||
+ | +++ b/ | ||
+ | & | ||
+ | + pinctrl-names = " | ||
+ | + pinctrl-0 = <& | ||
+ | status = " | ||
+ | }; | ||
+ | |||
+ | diff --git a/ | ||
+ | --- a/ | ||
+ | +++ b/ | ||
+ | @@ -1442,13 +1442,13 @@ | ||
+ | |||
+ | backlight1{ | ||
+ | compatible = " | ||
+ | - | ||
+ | + | ||
+ | index = < | ||
+ | key_valid = < | ||
+ | pinctrl-names = " | ||
+ | " | ||
+ | - | ||
+ | - | ||
+ | pinctrl_version = <2>; /* for uboot */ | ||
+ | interrupts = <0 197 1 | ||
+ | |||
+ | ``` | ||
+ | |||
+ | <tabbox VIM1S> | ||
+ | |||
+ | The '' | ||
+ | |||
+ | ```diff | ||
+ | --- a/ | ||
+ | +++ b/ | ||
+ | @@ -1411,8 +1411,8 @@ | ||
+ | }; | ||
+ | |||
+ | & | ||
+ | - / | ||
+ | - / | ||
+ | + | ||
+ | + | ||
+ | status = " | ||
+ | }; | ||
+ | |||
+ | ``` | ||
+ | </ | ||
===== Control PWM ===== | ===== Control PWM ===== | ||
Line 80: | Line 196: | ||
**Enable PWM:** | **Enable PWM:** | ||
- | <tabbox VIM1/3/3L/ | + | <tabbox VIM1/ |
```shell | ```shell | ||
- | $ echo 1 | sudo tee / | + | echo 1 | sudo tee / |
- | $ echo 1000000 | sudo tee / | + | echo 1000000 | sudo tee / |
- | $ echo 500000 | sudo tee / | + | echo 500000 | sudo tee / |
- | $ echo 1 | sudo tee / | + | echo 1 | sudo tee / |
``` | ``` | ||
+ | |||
<tabbox VIM2> | <tabbox VIM2> | ||
```shell | ```shell | ||
- | $ echo 1 | sudo tee / | + | echo 1 | sudo tee / |
- | $ echo 1000000 | sudo tee / | + | echo 1000000 | sudo tee / |
- | $ echo 500000 | sudo tee / | + | echo 500000 | sudo tee / |
- | $ echo 1 | sudo tee / | + | echo 1 | sudo tee / |
+ | ``` | ||
+ | |||
+ | <tabbox VIM3L/ | ||
+ | |||
+ | ```shell | ||
+ | echo 1 | sudo tee / | ||
+ | echo 1000000 | sudo tee / | ||
+ | echo 500000 | sudo tee / | ||
+ | echo 1 | sudo tee / | ||
``` | ``` | ||
Line 109: | Line 235: | ||
**Disable PWM:** | **Disable PWM:** | ||
- | <tabbox VIM1/3/3L/ | + | <tabbox VIM1/ |
```shell | ```shell | ||
- | $ echo 0 | sudo tee / | + | echo 0 | sudo tee / |
``` | ``` | ||
<tabbox VIM2> | <tabbox VIM2> | ||
```shell | ```shell | ||
- | $ echo 0 | sudo tee / | + | echo 0 | sudo tee / |
``` | ``` | ||
+ | <tabbox VIM3L/ | ||
+ | ```shell | ||
+ | echo 0 | sudo tee / | ||
+ | ``` | ||
+ | |||
</ | </ | ||
+ | |||
+ | ===== Disable PWM to Use GPIO ===== | ||
+ | |||
+ | If you want to use normal GPIO instead of PWM, you can remove the PWM node in [[products: | ||
+ | |||