RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程

embedded/2024/11/27 16:49:04/

这是一篇基于RL78/G15 Fast Prototyping Board的Arduino IDE开发记录

  • RL78/G15 Fast Prototyping Board
    • 硬件简介(背景)
    • 基础测试(方法说明/操作说明)
    • 开发环境搭建(方法说明/操作说明+代码+结果)
      • Arduino IDE RL78/G15的拉取方法:
        • (1)文件--首选项--
        • (2)工具--开发板--开发板管理器--关键字“RL”--搜索并安装RL78/G15-20p…
        • (3)给硬件上电,设备管理器获取串口
        • (4)工具--端口--选择硬件端口--选择设备管理器中新增的串口COMxx
        • (5)工具--选择开发板--选择RL78/G15...
        • (6)文件--示例
    • 通用示例测试(方法说明/操作说明+代码+结果)
    • 测评ADC任务功耗
      • 进行ADC基础实验
      • 进行功耗测试实验
    • 心得体会
    • 引用

RL78/G15 Fast Prototyping Board

硬件简介(背景)

RL78/G15 快速原型开发板配备 RL78/G15 微控制器,是一种专门用于各种应用开发试产的原型开发板。 它只需连接 USB 线即可编写/调试程序,无需任何其他工具即可着手评估。 此外,它还可以使用传统 E2 仿真器和 E2 仿真器 Lite 实现高性能调试(有关方法,请参考用户手册)。 标配 Arduino Uno 和 Pmod™ 接口,具有高度的可扩展性,譬如能够访问微控制器的所有引脚。1

可以在RL78/G15快速入门指南下载对应的快速入门指南,这里有硬件相关的一些内容,也是测评前对硬件必须要的基础的了解:
在这里插入图片描述
在这里插入图片描述
可以看到,RL78/G15 Fast Prototyping Board是沿用基于Arduino的布局风格,甚至于引脚和UNO-R3是完全兼容的,所以,可以替代R3作为基板对以前的模块开发进行快速功能验证。
在这里插入图片描述
更多的,硬件上,RL78/G15 Fast Prototyping Board设计了PMOD接口,用户可以根据这个接口设计不同的模块来快速接入,和测试,弥补了UNO-R3方式开发杜邦线接来接去的困恼!可以看到PMOD涵盖了SPI/IIC/UART多种通信协议,几乎可以通用所有的模块设计,除了用户自己按着引脚开发拓展套件外,也期待一下后续RENESAS官方的设计和扩展这个系列的模组板。

基础测试(方法说明/操作说明)

拿到开发板之后,首先还是需要对关键的电源引脚进行简单测试,避免因为SMT生产过程中产生连锡等,造成短路,特别是VCC和GND,推荐使用万用表短路档进行测试:
在这里插入图片描述
测试均无SMT不良等现象产生时,可以允许接入个人电脑中。这一个步骤是非常关键的——特别是对于USB-HUB没有隔离硬件的时候,如果出现PWR-GND短路现象,是非常容易产生不可挽回的损失的。

在对硬件进行检查时,更多的或许需要依赖硬件原理图进行,对应的原理图等PCB设计文档下载链接:RL78/G15 Fast Prototyping Board Design and Gerber Files

当然为了方便调试,这里直接提供PNG格式的原理图供快速查看:
在这里插入图片描述
在这里插入图片描述

开发环境搭建(方法说明/操作说明+代码+结果)

本次选择的开发环境是Arduino IDE 1.8.19,(当然也可以使用RENCESAS官方原生的开发环境,官方开发环境中也可以对RL78/G15进行开发)。
在这里插入图片描述
为了避免环境太高导致无法适配GITHUB开源的项目库,推荐使用1.8.19版本,笔者是在Windows Store商店直接下载的,也可以到链接Arduino IDE下载(注意:历史版本需要往下拉,下方会提供以往的版本共给用户下载,其中右上角可以选择对应的系统环境):
在这里插入图片描述
完成IDE平台软件的安装后,可以进行RENESAS系列板项目库拉取,其链接:RENESAS系列板项目库,在这个项目库中,可以选择合适的板子进行URL拉取,其中本次测评RL78/G15,因此选择RL78/G15 boards manager URL进行拉取。

在这里插入图片描述

Arduino IDE RL78/G15的拉取方法:

(1)文件–首选项–

将上述链接添加到附加开发板管理器网址中
(如果不会获取,可以拷贝此处链接:RL78/G15 boards manager URL)
在这里插入图片描述

(2)工具–开发板–开发板管理器–关键字“RL”–搜索并安装RL78/G15-20p…

在这里插入图片描述
如果发生下列错误,解决方法是手动下载工具存档(可以从包索引文件中提取存档下载URL),然后将其放入开发板管理器的下载缓存中。在这里插入图片描述

比如WINDOW系统,手动下载后,放置在arduino IDE的缓存文件夹下,参考C:\Users<用户名>\AppData\Local\Arduino15\packages,如果更改了,也是在类似的地址,将zip放置在该文件夹中,可以跳过IDE联网下载环节,进入解压安装环节。

如果手动都下不了的朋友,请从这里获取:
Library-rl78g15-fpb-1.2.1.zip
llvm-17.0.1.202406-rl78-elf.zip
win32-tool-rl78g1x-1.1.0.zip

(3)给硬件上电,设备管理器获取串口

在这里插入图片描述

(4)工具–端口–选择硬件端口–选择设备管理器中新增的串口COMxx

在这里插入图片描述

(5)工具–选择开发板–选择RL78/G15…

在这里插入图片描述

(6)文件–示例

打开示例后,会发现,没有示例!
在这里插入图片描述
但是这就是兼容UNO的,所以,UNO能用的,RL78/G15全部映射完成了(当用户安装完成(Library-rl78g15-fpb-1.2.1.zip)之后),因此,可以直接使用内置示例进行开发使用即可。
在这里插入图片描述

通用示例测试(方法说明/操作说明+代码+结果)

从原理图中,可以知道:
LED1—P20—PIN7
LED2—P21—PIN4
在这里插入图片描述
话不多说,直接上代码:

const int LED1Pin = 7;
const int LED2Pin = 4;void setup() {// put your setup code here, to run once:pinMode(LED1Pin, OUTPUT);
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED1Pin, HIGH);   // turn the LED on (HIGH is the voltage level)delay(500);                       // wait for a seconddigitalWrite(LED1Pin, LOW);    // turn the LED off by making the voltage LOWdelay(500);                       // wait for a second
}

在Arduino IDE中进行验证,上传,注意等待,不要cao之过急:
在这里插入图片描述
等待烧录进去Write Complete 时,即可观察实验现象:
请添加图片描述
对应现象:可以看到LED1每隔1000ms进行一次闪烁,这里故意定义了两个LED,但是只使用其中一个,以说明LED的映射是正确的。

拓展代码:

const int LED2Pin = 4;void setup() {// put your setup code here, to run once:pinMode(LED1Pin, OUTPUT);pinMode(LED2Pin, OUTPUT);
}void loop() {// put your main code here, to run repeatedly:digitalWrite(LED1Pin, HIGH);   // turn the LED on (HIGH is the voltage level)digitalWrite(LED2Pin, LOW);delay(500);                       // wait for a seconddigitalWrite(LED1Pin, LOW);    // turn the LED off by making the voltage LOWdigitalWrite(LED2Pin, HIGH);delay(500);                       // wait for a second
}

对应现象:LED1和LED2进行交替闪烁
请添加图片描述

测评ADC任务功耗

进行ADC基础实验

接下来开始,编写ADC相关的部分,ADC,模数转换,使用到相关的Analog引脚。直接上代码:

#include <Arduino.h>
const int analogInPin = A0; // A0---P23定义模拟输入引脚
int adcValue = 0; // 存储模拟输入的值
float voltage = 0;void setup() {// put your setup code here, to run once:Serial.begin(115200);}void loop() {// put your main code here, to run repeatedly:adcValue = analogRead(analogInPin); // 读取模拟输入的值voltage = adcValue * (5.0 / 1023.0); // 将模拟输入的值转换为电压值// 打印输出Serial.print("sensor = ");Serial.print(adcValue);Serial.print("\t vol = ");Serial.print(voltage);Serial.println("V");delay(2); // 延迟2毫秒}

在这里插入图片描述
对应的实物,如上图连接。将A0探测脚,连接到板载的3V3引脚上,观察实验输出:

在这里插入图片描述
可以看到,在未进行校准时,输出接近3V3。
在这里插入图片描述

接下来将测量输入引脚,接到我们开源的一款LDO载板上,观察+1V8的采集:
在这里插入图片描述
同样的,将测量输入引脚,接到我们开源的一款LDO载板上,观察+3V3的采集:
在这里插入图片描述
显然的,板载的3V3输出比模块板的LDO要稳定得多。

进行功耗测试实验

本实验使用到电流表,这里使用DMM6500作为电流表,接线图如下图所示,将DCI作为电流表,连接到电路系统供电路中,进行功耗测试,单独采集板载3V3时,观察其整板功耗:(使用DMM6500 DCI档位,测低端采样电流)
在这里插入图片描述
在这里插入图片描述
从采集数据中,可以看到,上电后,单通道ADC任务,整体功耗16mA@5V,包含板载其他器件(LED等)。
在这里插入图片描述
取区间80s到100s,放大可以看到,整体的功耗波动也非常平稳。

心得体会

再次感谢瑞萨嵌入式小百科公众号的测评名额,本文中,主要使用了Arduino IDE对RL78/G15进行环境搭建与开发。在开发过程中,实际上比较苦恼语言问题,在github中大多数的讲解说明都是以日本语作为主要语言,并且在官网中,关于Arduino IDE平台的基础示例几乎没有。在深度了解后,惊然发现,Renesas官方在Arduino IDE库中几乎对所支持的Arduino系列的Renesas板子如RL78/G15等,几乎所有适配的引脚都进行了高度映射,几乎完美兼容原生UNO的所有函数和API。

实际上,在官网中,也有关于Arduino API从e2studio到Arduino IDE的移植指南:
在这里插入图片描述
在这里插入图片描述
最后,比较让我意外的是,RL78/G15即使使用Arduino IDE平台的高度封装的语言,也在ADC寻常模式应用时可以保持如此低的功耗,并且可以将模块LDO的纹波都可以采集到,说明其采样精度和稳定性也非常高。

下一步计划是配置多通道ADC,采集外部多路电压,并且调度MCU进入低功耗模式,搭建系统,相信这RL78/G15 20P一定会给我带来惊喜。

本文就到此完成,喜欢关注我,我会持续更新RL78/G15的使用!

引用


  1. RL78/15G官网首页 ↩︎


http://www.ppmy.cn/embedded/140952.html

相关文章

如何用通义灵码快速绘制流程图?

使用通义灵码快速绘制流程图&#xff1f;新功能体验 不想读前人“骨灰级”代码&#xff0c;不想当“牛马”程序员&#xff0c;想像看图片一样快速读复杂代码和架构&#xff1f; 通义灵码已经支持代码逻辑可视化&#xff0c;可以把你的每段代码画成流程图。像个脑图工具一样帮你…

实验-Linux文件系统和磁盘管理

操作1 远程连接Linux系统 下述连接方式2选一即可。 使用xshell工具连接Linux系统。打开xshell&#xff0c;新建连接&#xff0c;将主机ip修改为实际Linux系统的ip(ifconfig命令查看)&#xff0c;可以新建多个xshell会话&#xff0c;使用不同的用户名登录&#xff0c;方便后续…

【大数据学习 | Spark-Core】Spark中的join原理

join是两个结果集之间的链接&#xff0c;需要进行数据的匹配。 演示一下join是否存在shuffle。 1. 如果两个rdd没有分区器&#xff0c;分区个数一致 &#xff0c;会发生shuffle。但分区数量不变。 scala> val arr Array(("zhangsan",300),("lisi",…

使用Python实现智能食品安全追溯系统的深度学习模型

食品安全一直是社会关注的重大问题,尤其在全球化供应链日益复杂的今天,食品安全追溯系统显得尤为重要。通过智能食品安全追溯系统,可以有效追溯食品来源、流通路径,及时发现和处理食品安全问题。本文将详细介绍如何使用Python构建一个智能食品安全追溯系统的深度学习模型,…

Rust学习笔记_01——基础

文章目录 1. Hello world2. 变量1. 变量声明2. 类型推断3. 变量绑定4. 重绑定&#xff08;Shadowing&#xff09; 3. 值4. 算术4.1 基础运算4.2 整数 && 浮点数运算4.3 标准库函数std::cmp 模块num_traits 模块 4.4 注意事项 5. 类型推导5.1 工作原理5.2 限制5.3 类型注…

UE5 Create Dynamic Material Instance(创建动态材质实例) 概述

在 Unreal Engine 5 (UE5) 中&#xff0c;Create Dynamic Material Instance 节点用于创建材质的动态实例。动态材质实例是基于某个已有的材质或材质实例的副本&#xff0c;并允许在运行时修改其属性&#xff08;例如颜色、纹理、参数等&#xff09;。这个节点在游戏开发中非常…

TCP/IP 协议:网络世界的基石(2/10)

一、引言 在当今数字化时代&#xff0c;互联网已经成为人们生活中不可或缺的一部分。而在互联网的背后&#xff0c;TCP/IP 协议扮演着至关重要的角色&#xff0c;堪称互联网的基石。 TCP/IP 协议是一组用于数据通信的协议集合&#xff0c;它的名字来源于其中最重要的两个协议…

深度学习-47-大语言模型LLM之常用的大模型微调框架选择建议

文章目录 1 微调框架1.1 LLaMA-Factory1.1.1 模块化设计(简化微调与推理流程)1.1.2 多硬件支持(适应不同环境需求)1.1.3 量化技术(降低内存占用提升推理速度)1.2 Unsloth1.2.1 加速微调(大幅提升微调速度)1.2.2 降低内存使用(突破资源限制)1.2.3 广泛的模型支持(兼容多种主流LL…