编辑器版本 ×
标准版

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版

1、全新的交互和界面

2、流畅支持超3w器件或10w焊盘的设计规模

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【RA】基于瑞萨R7FA2E1A72DFL的万年历

简介:基于瑞萨R7FA2E1A72DFL的万年历,时钟使用单片机内部rtc,支持农历显示,温湿度检测,亮度检测,外挂蓝牙芯片进行授时,广播温湿度等操作。

开源协议: MIT

发布时间:2022-04-12 21:39:34
  • 2.1k
  • 19
  • 28
描述

基于瑞萨R7FA2E1A72DFL的万年历

基于瑞萨R7FA2E1A72DFL的万年历,时钟使用单片机内部rtc,支持农历显示,温湿度检测,亮度检测,外挂蓝牙芯片进行授时,广播温湿度等操作。单片机驱动64个ws2812,点亮特定位置的led,展示时钟日期信息。

感兴趣可加Q群

28304718.png

灵感来源

https://hackaday.io/project/57535-dulles-clock
https://hackaday.io/project/169194-8x8-rgb-ledmatrix-desktop-word-clock
https://hackaday.io/project/163848-japanese-word-clock
https://hackaday.io/project/3305-word-clock
https://www.youtube.com/watch?v=fYtS_n_GhCY&t=856s

电脑通过蓝牙对其设定时间

VID_20220510_135753.gif
VID_20220509_233541.gif

外观

VID_20220510_152636.gif
image.png

缘起

image.png
瑞萨x立创eda联合举办的活动,白嫖器件,白嫖pcb,白嫖3d打印
https://maker.lceda.cn/LCEDA_RAMCU
这个制作几乎没什么成本,全让立创报销了。
感谢立创以及瑞萨举办本次活动活动,特别感谢群内官方技术支持和活动运营人员。
image.png
感谢群友互助。

元件

描述 型号
MCU R7FA2E1A72DFL
温度传感器 GXHT30(同SHT30)
蓝牙 CH571k
LED WS2812B

主控:R7FA2E1A72DFL

48M Arm Cortex M23内核
16k ram,64k rom
1个32位定时器(GPT0),6个16位定时器(GPT4-9),2个低功耗定时器
1个专用spi,1个专用i2c
4个sci,可配置为uart、spi、i2c
12位adc
RTC
触摸
真随机数生成器,硬件AES,ECC加速。

外观设计

三明治结构,底层控制电路和led,中层3d打印格栅,顶层薄pcb开窗,作为显示面板。

顶层

image.png

pcb的底版是玻璃纤维增强树脂基复合材料,他其实是半透明的。然而,铜作为一种金属,却能很好的隔光。
黄色部分是开窗的,半透明,直接露出pcb基板。黑色部分是阻焊+铺铜,良好隔光。
在eda中按汉字的轮廓精准开窗,这样就能让字符清晰显示。

中框

image.png
中框是用立创eda专业版画的。真的。不要看里面的电路,可能是旧的,只看外壳设计。链接在此: 外壳工程链接
ws2812发光是向所有方向的,这样除了正上方的字会被照亮,周围一圈也会被隐隐照亮,所以加上这个中框,内部栅格阻止光的横向传播。
但是即使这样,在led亮度升高时,还是会有部分漏光,尤其是红光。
可以加大led间距,并且在文字周围添加过孔,阻碍光线传播,但是影响观感,表面就不丝滑了。

底层

电路部分,预留安装孔。
image.png

装配

image.png
序列 01_1.gif

这侧装配设计是比较满意的。在顶层的背面预留焊盘,将铜柱焊接在焊盘上,中框预留铜柱的缺口,螺丝穿过底层拧在铜柱上。
image.png
这样在正面和侧面就看不到固定的装置,只有背面有四个螺丝。

立创eda:顶层的字是如何写上去的

总的来说,Illustrator进行排版,导出dxf轮廓,导入eda中,通过轮廓建立开窗区域。
但是,实际情况有点复杂。
立创eda目前不能正确识别嵌套的轮廓,例如导入一个环,eda会认为这是大圆套小圆,而不是一个环。
幸运的是,有些字体(包括但不限于楷体_GB2312),是以笔画位单位的,每一笔都是简单封闭图形。用这个导入创建轮廓没事。
具体可参考附件的ai工程。
image.png
对于图标,我的做法是把图标拆开成多个简单封闭图像,然后导入。把几个图形按相对位置拼在一起。例如蓝牙图标就是拆成两部分后导入的,这样两部分的每一笔都是一个封闭图形。
image.png

电路

从电源触发,先进自恢复保险F1,然后5v直通所有ws2812。另有一路通过ldo降压成3.3v给其他设备供电。电路集成蜂鸣器,光敏电阻(adc测量),温湿度传感器(i2c通讯),蓝牙芯片(串口通讯),以及两组WS2812通过spi模拟操作他的信号进行控制。

开发环境

RA系列专用版e2 studio,内部集成fsp。下载链接
image.png

软件代码

github为主,gitee更新可能不及时。目前仍在开发中,部分功能不可用。

功能 状态
rtc初始化授时 可用
时间日期农历显示 可用
温湿度读取 可用
亮度adc读取 可用
windows电脑通过蓝牙授时软件 可用
安卓通过蓝牙授时app 待开发
温湿度蓝牙读取广播 待开发
基于环境光的亮度控制 待开发
闹钟 待开发
动画 待开发
    ├─adc    adc读取光敏电阻
    ├─ble     蓝牙通讯
    ├─buzzer    pwm驱动无源蜂鸣器
    ├─color    hsv色域转换
    ├─debug    调试串口
    ├─fcal    农历转换
    ├─GXHT30   温湿度传感器驱动
    ├─rtc    实时时钟  日期计算
    ├─timer   屏幕刷新信号
    └─ws2812  led驱动
main.cpp 主要逻辑
utils.h  工具类

第三方软件包

https://github.com/FlyingFishBird/fcal(适应单片机的fork https://github.com/liux-pro/fcal)
https://github.com/NordicSemiconductor/Android-BLE-Library
https://github.com/DerekGn/WinRtBle

技术参考

软件设计的参考资料基本有四种来源

  1. ide会自带fsp说明文档,内含所有函数的说明文档和示例代码。
  2. 官方有大量例程,官网下载链接
  3. 官方的 ra生态工作室。
  4. 官方论坛搜索。
    RA系列面世时间不长,生态还在建设中。国外资源相对国内丰富一下,论坛也相对活跃,有问题可以尝试用英文搜索一下试试,有奇效。

调试输出函数设计

可能是我比较菜鸟,官方的printf重定向我跑不通。
参口https://www.ibm.com/docs/en/zos/2.1.0?topic=functions-vsprintf-format-print-data-buffer
最printf进行包装。
详见debug文件夹

spi驱动ws2812

通过spi发送特定数据包,模拟ws2812所需时序,相关代码在ws2812下。
https://www.elecfans.com/d/comp-4843843-136335947323087548416.html
http://bbs.mydigit.cn/read.php?tid=2622343

瑞萨spi驱动ws2812的坑

这是一个天坑
瑞萨的 sci spi channel 2 9 在mosi上发送信号时候.
每次发送前会先把mosi拉高几微秒,然后正常发送信号。
在正常spi通信时候,因为有clk信号,这没有问题。
但是如果控制ws2812,这几个微秒会破环信号,导致第一个比特翻转,
导致灯带第一个led收到的信号的最高位一直是1.
邪门的是sci channel 2 会这样,专用spi没有这个问题。
官方论坛上也有人指出这个问题,他说sci channel 9 也有这个问题
参考:https://renesasrulz.com/embedded-system-platform/synergy/f/forum/19774/r_sci_spi-simple-spi-the-rising-edge-of-the-first-pulse-occurs-much-earlier-than-expected?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
官方例程采用了sci0,所以“恰好”没遇到这个问题。
只能暂时发之前多发几个0xff,让这个脉冲信号远离真正的信号,希望瑞萨解解决个问题
官方如果想验证,可以直接用sci2驱动ws2812,看第一个灯,永远不能关闭。

色域转换

ws2812基于rgb进行混色,然而rgb对于颜色的描述并不直观,而hsv色域对颜色描述对人类来说是十分直观的。
h代表红橙黄绿青蓝紫。s代表颜色的饱和度,v代表亮度。下面的参考链接提供一种快速的色域转换算法。
image.png
参考:https://www.vagrearg.org/content/hsvrgb

压电无源蜂鸣器

这种无源的蜂鸣器加个三极管,给上pwm是不能驱动的,需要并联一个电阻。感谢客户编 @19395A 的群友
参考:https://baijiahao.baidu.com/s?id=1678346404000645198&wfr=spider&for=pc

随机数生成的坑

瑞萨带有一个真随机数生成器,当前fsp(3.6)有bug,c++下该库编译不过。
瑞萨接受了我的修复代码,在新版fsp中这不是问题了
参考:https://github.com/renesas/fsp/pull/195

时间设置

采用蓝牙广播一个时间戳来初始化rtc,目前实现了windows下发送蓝牙广播调整rtc时间。基本原理是发送一个蓝牙广播,厂商信息里填充时间戳。ch571k接收到广播后通过串口发给瑞萨单片机,进而调整时间。

蓝牙代码

基于主从一体的例程就行修改,接收特定厂商的广播,并提取有效数据通过串口发出去。收到数据把数据放到广播里。暂不支持连接,只支持通过广播通讯。
见附件ch571k.zip

windows上位机

通过winrt调用电脑上的蓝牙,获取当前时间戳,组装特定的数据包发出去。蓝牙芯片会接受这个广播,发给瑞萨,进而完成授时。
SuperClockWindows.7z

未曾设想的道路

  1. 有屏幕的地方就有badapple。
  2. 屏幕显示电脑cpu占用和温度等。
ID Name Designator Footprint Quantity
1 TSA365G00D-250 BOOT,RST SW-SMD_TSA365G00D-250 2
2 FST-9018 BUZZER1 BUZ-SMD_FST-9018 1
3 1uF C1,C2,C3 C0603 3
4 100nF C19,C20,C21,C24,C26,C29,C4,C5,C101,C102,C103,C104,C105,C106,C107,C109,C110,C111,C112,C113,C114,C115,C117,C118,C119,C120,C121,C122,C123,C125,C126,C127,C128,C129,C130,C131,C133,C134,C135,C136,C137,C138,C139,C141,C142,C143,C144,C145,C146,C147,C149,C150,C151,C152,C153,C154,C155,C157,C158,C159,C160,C161,C162,C163 C0603 64
5 10uf C23 C0603 1
6 4.7uF C25 C0603 1
7 27pF C27,C28 C0603 2
8 HDGC1002WR-S-4P CN1,CN2 CONN-SMD_4P-P1.00_HDGC_HDGC1002WR-S-4P 2
9 ANTENNA E1 2.4G_4.3*11.8 1
10 BSMD1206-200-16V F1 F1206 1
11 LED-0603_R LED65 LED0603_RED 1
12 SS8550 Q2 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
13 5.1kΩ R1,R12 R0603 2
14 1k R2,R4,R6,R13 R0603 4
15 10kΩ R3,R5,R7,R9 R0603 4
16 光敏电阻,亮5k-10k,暗0.5MΩ R8 RES-TH_L5.1-W4.3-P3.40-D0.5 1
17 4.7kΩ R10,R11 R0603 2
18 R7FA2E1A72DFL#AA0 U1 LQFP-48_L7.0-W7.0-P0.50-LS9.0-BL 1
19 TPRT9013-33GB U2 SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BL 1
20 GXHT30 U3 DFN8_L2.5-W2.5-P0.5-BL-EP 1
21 CH571K U4 SSOP-10_L5.0-W3.9-P1.00-LS6.0-BL-EP 1
22 TYPE-C16PIN USB1 USB-TYPE-C-SMD_TYPE-C-SMT-16P 1
23 32.768kHz X1 FC-135R_L3.2-W1.5 1
24 32MHz X2 CRYSTAL-SMD_4P-L3.2-W2.5-BL 1
25 WS2812B-B LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8,LED9,LED10,LED11,LED12,LED13,LED14,LED15,LED16,LED17,LED18,LED19,LED20,LED21,LED22,LED23,LED24,LED25,LED26,LED27,LED28,LED29,LED30,LED31,LED32,LED33,LED34,LED35,LED36,LED37,LED38,LED39,LED40,LED41,LED42,LED43,LED44,LED45,LED46,LED47,LED48,LED49,LED50,LED51,LED52,LED53,LED54,LED55,LED56,LED57,LED58,LED59,LED60,LED61,LED62,LED63,LED64,LED66,LED67 WS2812B-5050RGB 66

展开

工程成员
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

  • 开源平台公众号

    oshwhub