2025 Make Blocks阶段2 - 基于STM32F103VCT6完成热成像系统(实时时钟部分+存储部分)基础功能设计
该项目使用了RX8130,实现了实时时钟模块的设计,它的主要功能为:时间的设置和获取。
标签
实时时钟模块
Make Blocks
RX8130
无言的朝圣
更新2025-09-17
25

任务介绍

2025 Make Blocks第二期的任务发布了,我们简单的看了一下内容,通过视频讲解的理解,最后还是选择的自定义进行实时时钟模块和数字外设模块的设计,采取在上一版本的基础上进行增加,我们最终的目标是直接设计出一款完整的作品,所以这里暂定的比较常用的模块部分,实时时钟还是挺重要的,由于很多部分回合其他部分重合,我们这里选择的数字外设为存储芯片。

模块功能介绍

由于本次的设计具有处于设计阶段的第二期,在上一起对未使用的引脚暂进行继续分配,根据整个活动的进展需求,通过在上期模块基础上不断升级来添加任务主题。

本次任务的功能模块一共有两部分:

第一部分是实时时钟,这里我们选择的是市场上集成了晶振的一款实时时钟芯片RX8130,主要看上的就是内置的32.768k晶振,采用I2C接口通信;

第二部分是存储模块,选用的是W25Q80,作为重要重要数据比对的存贮单元。

模块硬件介绍

本次所使用的主控是STM32F103VCT6,这次通过增量的方式增加了一部分功能模块,符合本次的主题,实时时钟和数字外设;

实时时钟模块部分采用的是RX8130,是个内置32.768k晶振的芯片,这样的话电路设计会更加简洁,可靠性也更高;

存储模块采用的是W25Q80,主要作用是作为备选存储,不一定用到,不过先加上;

设计框图

设计框图主要是增加了实时时钟模块和存储模块,如下:


0

原理图和PCB模块介绍


image.png

原理图


image.png

PCB

本次属于第二阶段设计,主要功能是增加了实时时钟模块和存储模块,都是使用的数字接口进行的通信。


image.png

3D效果图

软件调试

本次的软件调试主要是进行基本的实时时钟模块通信,这个是我们主要使用的部分,同时对页面控制和按键控制践行新的补充。

按键的采集与处理使用外部中断加定时器滤波的方法进行,使用的都是中断的回调函数:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM5)
{
HAL_IncTick();

if(RTC_collect.Capflag == 0)
{
RTC_collect.CapCnt++;
if(RTC_collect.CapCnt %50 == 0)
{
RTC_collect.CapCnt = 0;
RTC_collect.Capflag = 1;
}
}

KeyTimer_AntiShake(&key_Ok,READ_KEY_OK);
KeyTimer_AntiShake(&key_A,READ_KEY_A);
KeyTimer_AntiShake(&key_B,READ_KEY_B);

}
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == SW_A_Pin)
{
KeyEXIT_Handle(&key_A);
}
else if(GPIO_Pin == SW_B_Pin)
{
KeyEXIT_Handle(&key_B);
}
else if(GPIO_Pin == SW_OK_Pin)
{
KeyEXIT_Handle(&key_Ok);
}
}

然后就是RX8130实时时钟模块对应的IIC3的配置与接口适配,主要用到的就是发送和接口功能:

void IIC3_US_SendBytes(uint8_t len,uint8_t* dat,uint8_t dev_addr,uint8_t reg_addr)  
{
HAL_I2C_Mem_Write(&hi2c2,dev_addr<<1,reg_addr,I2C_MEMADD_SIZE_8BIT,dat,len,0x100);
}
void IIC3_US_RecvBytes(uint8_t len,uint8_t* dat,uint8_t dev_addr,uint8_t reg_addr)
{
HAL_I2C_Mem_Read(&hi2c2,dev_addr<<1,reg_addr,I2C_MEMADD_SIZE_8BIT,dat,len,0x100);
}

接下来就是RX8130的驱动程序了,这一部分可以参考具体功能里面的驱动文件,包括一些页面的设计等等,尤其是页面的设计相对来说需要花费一些时间进行调整才能达到比较满意的效果。

功能展示


0

心得体会

在阶段2的实现阶段我们其实花费了大量的时间进行了之前界面显示的优化,包括后面我们在增加新的功能也是需要进一步进行页面的修改的,实际上交互是贯穿整个活动的设计的,这一次主要调试的事RX8130芯片的通信,这一部分相对来说简单一点,有过使用经历,主要的功能也是设置时间和读取时间。本次进行了时间设置操作的基础功能的实现,主要是为了能够展示基本驱动,继续加油!

附件下载
Thermal_STM32F103.zip
Thermal-1.1.kicad_sch
Thermal-1.1.kicad_pcb
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号