树莓派PICO示意图
官方版本示意图

这样GPIO似乎最多可以拉到72M?
因为有两个SPI所以要注意开发时的选择(可能会有选择问题的坑
UF2拖放固件尽量有重制固件
PIO不太会玩

import machine print(machine.freq()) # 打印当前CPU频率 machine.freq(24000000) # 设置CPU频率
为什么133M是24000000

根据文档,bus fabric 内部是如此实现的:AHB-Lite crossbar 在 4 个上游(处理器核、DMA)与 10 个下游(内置 ROM、6 个 SRAM、APB Brigdge、Flash XIP、AHB Lite Splitter)之间传输地址和数据,每个时钟周期内可以发生 4 次传输。APB Bridge 连接到 UART、SPI 等低速外设。

尽管 RP2040 是无状态的,但它内部仍然有一小块 ROM,用于存储固化的 bootloader 代码,这些代码支撑了 uf2 下载、高速除法等功能。
RP2040 的 SRAM 分为 6 个 bank,其中 4 个 64kB 的 bank 是主内存。从 0x20000000 开始的地址空间,会被以 4 byte 为单位轮流映射到这 4 个 bank 中,以提升并行能力。具体可参考 datasheet 2.6. Memory 章节。
Single-cycle IO 并未接入 bus fabric。它是与处理器直接连接的。
RP2040 的地址空间如下表:
| 设备 | 地址 | 备注 |
|---|---|---|
| ROM | 0x00000000 | RP2040 的内置 16kB ROM |
| XIP | 0x10000000 | 外置 flash |
| SRAM | 0x20000000 | 6个SRAM bank |
| APB Peripherals | 0x40000000 | 低速外设(UART、I2C 等) |
| AHB-Lite Peripherals | 0x50000000 | 高速外设(USB、PIO、XIP) |
| IOPORT Registers | 0xd0000000 | Single-cycle IO |
| Cortex-M0+ internal registers | 0xe0000000 |
浙公网安备 33010602011771号