docs/esp32/tutorial: Update pin access example with addresses for ESP32-S3.

Signed-off-by: Paul Grayson <pdg@alum.mit.edu>
pull/12666/head
Paul Grayson 2023-10-11 04:39:15 -07:00
rodzic d2a9d70c09
commit 59f86fffc9
1 zmienionych plików z 12 dodań i 1 usunięć

Wyświetl plik

@ -17,7 +17,6 @@ the prescaler of the MCPWM0 peripheral.
DPORT_PERIP_RST_EN_REG = const(DR_REG_DPORT_BASE + 0x0C4) DPORT_PERIP_RST_EN_REG = const(DR_REG_DPORT_BASE + 0x0C4)
DPORT_PWM0_CLK_EN = const(1 << 17) DPORT_PWM0_CLK_EN = const(1 << 17)
MCPWM0 = const(0x3FF5E000) MCPWM0 = const(0x3FF5E000)
MCPWM1 = const(0x3FF6C000)
# Enable CLK and disable RST. # Enable CLK and disable RST.
print(hex(mem32[DPORT_PERIP_CLK_EN_REG] & 0xffffffff)) print(hex(mem32[DPORT_PERIP_CLK_EN_REG] & 0xffffffff))
@ -32,6 +31,18 @@ the prescaler of the MCPWM0 peripheral.
mem32[MCPWM0] = 0x55 # change PWM_CLK_PRESCALE mem32[MCPWM0] = 0x55 # change PWM_CLK_PRESCALE
print(hex(mem32[MCPWM0])) # read PWM_CLK_CFG_REG print(hex(mem32[MCPWM0])) # read PWM_CLK_CFG_REG
The specific addresses will be different on different ESP32
models. For example, ESP32-S3 uses these values:
.. code-block:: python3
DR_REG_DPORT_BASE = const(0x600C_0000)
DPORT_PERIP_CLK_EN0_REG = const(DR_REG_DPORT_BASE + 0x0018)
DPORT_PERIP_RST_EN0_REG = const(DR_REG_DPORT_BASE + 0x0020)
DPORT_PWM0_CLK_EN = const(1 << 17)
MCPWM0 = const(0x6001_E000 + 0x0004)
...
Note that before a peripheral can be used its clock must be enabled and it must Note that before a peripheral can be used its clock must be enabled and it must
be taken out of reset. In the above example the following registers are used be taken out of reset. In the above example the following registers are used
for this: for this: