本项目基于 MicroPython 开源项目(详见 README_MPY.md),针对 Renesas RA8P1 系列开发板进行了定制移植与外设驱动开发。
本项目支持 Renesas RA8P1(R7FA8D1BHECBD)MCU 的高性能 MicroPython 移植:
当前工程统一维护单一开发板配置 CN-AIK-RA8P1:
- DVP摄像头接口(暂未启用,详见下文)
- 板载DAP-Link调试器
- W25Q256JV QSPI Flash (32MB),已实现文件系统挂载
/flash - SD卡插槽(SDIO/SDHI 4-bit),已实现文件系统挂载
/sd - AI Kit扩展板(LED/按键、AHT20温湿度、QMI8658A姿态、8路舵机、蜂鸣器、音频等丰富外设)
- CPU:Arm Cortex-M85 @ 1GHz 主核 + Cortex-M33 @ 250MHz 协处理器
- 存储:2MB Flash + 1MB SRAM + 8MB MRAM
- MicroPython 堆:~1.8MB 可用堆空间
完整的移植介绍与开发文档请参阅 👉 ports/renesas-ra/MicroPython简介.md
- 串口 REPL 交互(115200 baud)、Python 解释器与 GC 垃圾回收
- GPIO、UART、软件 I2C/SPI、时间模块、软件定时器
- ADC 模数转换(12位)、PWM(GPT 定时器驱动)、硬件定时器(AGT/GPT)、外部中断(ICU)
- 硬件 SPI / 硬件 I2C(IIC Master)
- SRAM RAMDisk(临时测试)、OSPI Flash 文件系统(早期方案)
- OV5640摄像头采集(MIPI CSI-2接口)+ 显示屏显示
- ✅ 5.1 REPL Bring-up(UART9,P209/P208)
- ✅ 5.2 基础外设:摄像头/SPI Flash 禁用、LED×4/按键×4(GPIO)、ADC 6通道、硬件定时器、外部中断(ICU)
- ✅ 5.3.1 QSPI Flash(OSPI_B外设,W25Q256JV 32MB)+ LittleFS2 自动挂载
/flash - ✅ 5.3.2 SD卡(原生 SDHI 4-bit SDIO + DMAC)+
machine.SDCard()自动挂载/sd - ✅ 5.4.3 I2C0(摄像头SCCB预留)/ I2C1(AHT20+QMI8658A)双通道
- ✅ 5.5.1 温湿度传感器 AHT20(纯Python驱动,真机验证)
- ✅ 5.6 PWM 驱动重构:多通道 GPT + 标准
machine.PWM(LED调光/无源蜂鸣器/8路舵机) - ⬜ 5.4.1 UART1(SCI1,P706/P707,用户串口)
- ⬜ 5.5.2 姿态传感器 QMI8658A
⚠️ 5.4.2 SPI总线(SPI1,引脚待核实)- ⬜ 5.7/5.8 摄像头(DVP,已短期禁用)、LCD显示、音频系统(PDM/I2S/WM8960)
详细进度与技术要点见 👉 阶段5实施计划&执行
新用户请参阅完整指南 👉 ports/renesas-ra/工程复现操作指南.md
包含:系统要求、依赖安装、编译、烧录、测试的完整步骤。
# 1. 编译固件(当前唯一支持的板卡:CN_AIK_RA8P1)
cd ports/renesas-ra
make BOARD=CN_AIK_RA8P1 -j$(nproc)
# 2. 烧录固件(pyOCD + DAP-Link)
pyocd flash --pack boards/CN_AIK_RA8P1/Renesas.RA8P1_DFP.6.1.0.pack \
-t r7ka8p1kf build-CN_AIK_RA8P1/firmware.hex# Linux/macOS
screen /dev/ttyACM0 115200
# 或
python3 -m serial.tools.miniterm /dev/ttyACM0 115200按键控制LED(CN-AIK-RA8P1):
from machine import Pin
led0 = Pin("P411", Pin.OUT) # LED0 或 Pin("LED0", Pin.OUT)
key0 = Pin("P002", Pin.IN, Pin.PULL_UP) # KEY0
while True:
led0.value(1 - key0.value()) # 按键按下时LED点亮PWM 呼吸灯(CN-AIK-RA8P1):
from machine import PWM, Pin
import time
led0 = PWM(Pin("P411"), freq=1000, duty_u16=0)
for duty in range(0, 65536, 2048):
led0.duty_u16(duty)
time.sleep_ms(20)更多示例 👉 ports/renesas-ra/examples/cn_aik_ra8p1/
ports/renesas-ra/
├── boards/
│ └── CN_AIK_RA8P1/ # AI Kit配置(当前唯一支持的板卡)✨
├── ra/ # 硬件抽象层(HAL)
├── dev-log/ # 开发日志与文档
│ ├── 阶段5_实施计划&执行.md
│ ├── 阶段5_1.逐飞新板卡移植最简测试小结.md
│ ├── 阶段5_2_基础外设移植实施记录.md
│ └── 阶段5_3_QSPI_Flash第3次开发要点记录(完成Flash QSPI+文件系统挂载).md
├── examples/
│ └── cn_aik_ra8p1/ # CN-AIK-RA8P1板卡示例 ✨
│ ├── test_key_led.py
│ ├── test_adc.py / test_icu*.py / test_timer.py / test_pwm.py / test_aht20.py
│ └── pwm_demo.py / aht20.py
├── 工程复现操作指南.md # 完整的环境搭建指南 ✨
└── README.md # Renesas RA port 说明
- 工程复现操作指南 - Ubuntu环境搭建、编译、烧录、测试完整流程
- Renesas RA Port README - 端口特性与编译说明
- CN-AIK-RA8P1示例 - 按键/LED/ADC/PWM/I2C/AHT20等示例代码
- README_MPY.md - MicroPython官方README
- MicroPython简介 - MicroPython概述
- pyOCD - 开源CMSIS-DAP调试器
- ARM GCC 工具链
如遇到问题或有改进建议,欢迎:
- 提交 Issue
- 提交 Pull Request
- 参考文档:dev-log/ 目录
本项目遵循 MicroPython 的 MIT 许可证,详见 LICENSE。