Skip to content

Repository files navigation

RA8P1-MPY:基于 MicroPython 的 Renesas RA8P1 移植版

本项目基于 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


✅ 已完成工作

阶段 1-4:早期移植基础(EK-RA8P1,历史记录)

  • 串口 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:CN-AIK-RA8P1 板卡移植(当前主线,持续推进)

  • ✅ 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

连接REPL

# 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 说明

📚 文档导航

快速上手

原项目文档


📚 相关链接

项目文档

官方资源

工具


🤝 贡献与反馈

如遇到问题或有改进建议,欢迎:

  • 提交 Issue
  • 提交 Pull Request
  • 参考文档:dev-log/ 目录

📄 许可证

本项目遵循 MicroPython 的 MIT 许可证,详见 LICENSE

About

RA8P1 Micropython

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages