一、需求分析
1.RTC功能,分为数显式和指针式,两种显示模式可以互相切换,且可以手动设置时间,精确到秒。
2.秒表功能,精确到百分之秒,如果可以,精确到毫秒。
3.指南针功能。
4.抬腕亮屏与无操作自动息屏功能。
5.不带按键且又可以进行各种切换操作。
6.电源方案需要实现软件关机功能。
7.能较精确检测电池电量,电源方案能使软件识别当前是否正在充电。
8.IAP固件更新功能。
二、硬件设计
1.芯片选型
(1)RTC功能需要使用RTC芯片,选择NXP的PCF8563,I2C通信协议。
(2)指南针功能需要磁力计,抬腕亮屏功能需要姿态传感器,选择MPU9250,自带3轴加速度计、3轴陀螺仪与3轴磁力计。
(3)不带按键实现切换操作,也可以使用MPU9250获取姿态动作作为输入。
(4)电源方案实现软件关机功能,要求电源芯片必须有EN使能端,选择SY8089A作为3.3V降压IC。
(5)能使软件识别当前是否在充电,要求锂电池管理芯片必须有相应的查询功能,选择TP4056作为锂电池充电管理IC,其CHG引脚在充电时为低电平,可以作为充电检测。
(6)检测锂电池电量,采用ADC检测电压法。
(7)主控芯片选择STM32F411CEU6,UFQFN48封装,占PCB面积较小,FLASH与SRAM容量也足够(512KB、128KB)。
(8)为了实现IAP功能,可能需要SPI Flash,暂时记录W25Q128。
2.各部分原理图设计
三、软件设计
1. IAP功能设计(选定方案1)
(1) IAP功能方案1
利用STM32的USB将固件通过FAT32文件系统写入外扩SPI Flash中,在bootloader中检测Flash中是否有固件.bin文件,如果有将其更新到APP区,更新完毕将其删除后,跳转到APP处执行。
(2) IAP功能方案2
利用STM32的串口更新固件,开机时在bootloader中检测当前姿态传感器的x轴倾角是否大于45°,是则进入IAP模式,接收上位机发送的固件,采用应答机制:上位机先发送固件的大小,以便串口判断该接收多少数据;串口接收2048字节的数据并将其写入APP区域后,发送0x55给上位机通知其发送下2048字节数据,直到固件写入完毕。利用STM32软件复位重启且确保重启前姿态传感器x轴倾角小于45°,以便令bootloader跳转到APP区。若误触发IAP模式,则一定时间内未检测到串口数据,则自动复位。上位机采用QT5编写。
2.UI设计
UI设计使用LittleVGL开源库进行设计。
3.效果图
反面:
正面:
一块电路板是电路设计的最终呈现,也是工程师智慧的结晶。每个工程师对PCB设计都有自己的经验和技巧,同一个电路,不同的工程师会画出不同的设计。
面包板社区特在此发起“晒板子”有奖征文活动,方便大家相互学习。
活动时间:3月11日-4月11日
征文内容:晒板子,分享你的设计思路、经验心得
秀出你的PCB!模电书、开发板、京东卡等你来领!
点击阅读原文,参与活动