你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于stm32l4的智能手表

[复制链接]
丿灬幸灬 发布时间:2018-11-7 14:30
这是一款cortex m4 f的智能手表。
8837101457985506969.jpg
描述
这款智能手表是基于stm32l4,配备了1.44英寸的tft触摸屏、32位STM32 ARM处理器、额外的QSPI flash和加速度计,所有这些都在一个简洁的盒子里。
这个想法是基于Retrowatch和Piwatch。
它有一个230毫安的锂电池。

细节
作为pix项目中的“zerowatch”的后续产品,Pix-Watch应运而生。

Pix-Watch使用ST单片机,使用Arduino IDE,并为其编写了定制软件。
9486131465371900812.jpg
它的硬件规格是:
-最高80mhz皮质M4F单片机
- 128kb RAM
- 512kb系统FLASH,主机固件
- 1.44英寸高彩色tft屏(ili9163,128 *128px),电容式触控输入
-额外flash (4mbyte)
- 3轴加速度计
——振动电机

一些特点:
——framebuffer
——快速绘图
——易于扩展api
——阿尔法混合
——开源软件和硬件


目前已完成的工作:
——建立开发平台


正在进行的工作:
——内联应用框架
——案例设计
——编写初始测试代码


目前需要做的工作:
-pcb设计
-更好的图形命令集
-暂时使用机载RTC
-外部flash图像/应用程序加载支持
-创建SDK
-应用程序eeprom存储(在eeprom仿真中存储变量)
-应用程序同步和闪烁使用USB

组件
1×pix-watch板  主板
1×230 mah锂电池  30 x20x5mm
1×外壳   3 d印制
1×Ili9361c  电容触摸

tft速度测量


我只是想分享我对面包板系统的基准。
全屏刷新(fillScreen命令):15ms(66fps)
使用sdfat lib从microsd加载的全屏幕(128*128)位图:略大于125ms(即8fps)

您可能想知道为什么位图加载如此低效?
因为我们从缓冲区中的microsd读取了一条水平的像素数据线,将其绘制到屏幕上,并对每条垂直线(总共128x)重复这个过程
这真的想要我去一个framebuffer,加载整个位图到它,然后调整像素在需要的地方,然后像fillScreen命令一样推送它。

这将大大加快速度。
然而,它也有它的缺点:单个framebuffer都会消耗50%的RAM。

注意:我们不能从屏幕上读取,没有味噌线在屏幕上,否则我们可以使用,作为framebuffer,拯救我们32 kb的内存的成本30-40ms(猜测)绘制速度framebuffer内部ram(如果我们做我需要像20-25ms(猜测))

告诉我们你认为最好的是什么,不加帧缓冲还是用帧缓冲?


pcb越来越小


我得到的pcb长度从50mm到43.5 mm,但仍然具有相同的功能(移动轨迹和组件)
也就是说它只比我的zerowatch项目长3.5毫米(它的长度为40mm)
仍然想要一个framebuffer。

:framebuffer都恢复正常了,电池续航时间很长


几天前我又在手表上工作了,脑子里有两件事:framebuffer和延长电池寿命
我在这两方面都取得了成功,主要是在电池寿命方面:370小时待机(17小时运行@ 24mhz)时间(还没有加速度计)(总功耗:1.35mA)

这相当于500毫安时的15天待机时间!
现在我正在移植所有使用framebuffer的图形命令。

framebuffer的唯一缺点是:它消耗了teensy 3.2的一半RAM。
但是多亏了rossum的microtouch框架,我们仍然可以为应用程序提供9kb的RAM,这比Arduino兆字节多1/8 !
同样,framebuffer很酷的一点是:alpha混合是可能的,有些人可能看过我演示的视频。但对于那些没看过的人,这个是视频



切换蓝牙模块

现在我遇到了一个新的蓝牙模块,即ble113模块,它是蓝牙低能量的,并且有非常低的功率模式(几百nA)。
与hc06相比,它的尺寸只有hc06的1/2,耗电量更少。
这也导致了更小的pcb尺寸(理论上)。
到目前为止,我还没有进一步研究编码。但是我很快就会恢复编程(希望在一周内)

是的,这个项目还远远没有结束!
话题:我只是看了看时间,凌晨3:45,我该睡觉了。


注释和图形


因为ble113很难正常(Atomsoft是这么说的)(它需要pcb上一个额外的swd来编程),所以我们放弃了它,转而使用BC118模块,该模块也可以在uart上工作,在睡眠模式下只使用9uA
这两个模块的价格大致相同(在digikey上为11刀),所以这不是问题。
我还开始清理代码,并将其分散到多个库中,否则我们将拥有一个包含1500多行代码的库。
希望代码很快就会出现。


我还创建了一个图形命令,即:循环加载条(log结尾的demo vid),并在RAM中添加了同样多的图形命令,因为它可以简单地加快速度。
我也尝试过超时计时,它稳定运行到144mhz,任何更高的将会导致系统失败(我认为是在mcu的电压下)。
请注意,这是推荐的mcu clockspeed的200%,所以我不建议超过96mhz(这在teensy上已经是超频了)。
圆形加载条图的视频



缺乏动力和延迟


你们可能已经注意到这个项目最近没怎么更新,因为我实在找不到继续下去的动力。(别担心,项目会完成的!)

Atomsoft(谁会做pcb设计)没有让我知道任何关于设计的当前状态遗憾。(到现在已经超过两周了)
总之,在某种程度上是积极的:

我有一些时间来重做一小部分代码,我计划一旦我得到我的动机重新做内联应用程序API。
现在,有一个视频演示一些图形化命令,包括反别名圆圈。


改变计划!


正如一些人可能已经注意到的,我不满意teensy作为单片机,并将切换到stm32l4单片机,我已经有了显示工作,我将抛弃蓝牙,因为我想保持它的简约。

智能按钮将被电容式触摸屏所取代,其行为方式与Android wear类似(基本手势控制!)
另一个设计变化是整个PCB,我的目标是34*15mm 4层。
我将尽我最大的努力使它有点防水(pogo针充电/编程它使用一个码头,没有按钮应该允许我实现这一点。
另外,teensy 3.2没有fpu,因此alpha混合速度非常慢,这可以通过切换MCU来解决,在同一个MCU时钟上增加7x的增益=)


性能提升


我只是想说明在最初的设计(teensy 3.2)和新设计(stm32l4)之间的浮点数(alpha混合/反混叠)每瓦特的性能增加
首先,我想指出的是stm32l4至少是teensy 3.2规范中节能3倍
实际上更像4x的teensy 3.2需要一个单独的引导装载程序ic,它也使用电源。
然后浮点数学....teensy 3.2根本没有fpu,所以计算肯定会很慢,但是在stm32l4上,速度比teensy要快7倍,因为stm有fpu。
与功率效率相比,这大约是28倍(fpu数学/瓦特)

此外,未来可能会从stm32l476改为stm32l496,使用320k的sram,用于更大的应用程序,而且它也更节能。(91微安/兆赫与100微安/兆赫)

pix-watch相关资料


原文请见hackaday



收藏 评论1 发布时间:2018-11-7 14:30

举报

1个回答
五哥1 回答时间:2018-11-7 18:13:16
考虑过stm32l496芯片的体积了吗,整体设计看上去和arduin的比例,感觉还是太大了,可以看到目前市场上免费领取的儿童手表手机,还带有一个GPS,功能十分强大,已经成熟的商品化了。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版