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

基于stm32l4的智能手表

[复制链接]
丿灬幸灬 发布时间:2018-11-7 14:30
这是一款cortex m4 f的智能手表。
; o5 P+ D. |( E. A# k* i8 M4 `0 B1 R& l 8837101457985506969.jpg , b( d0 l; j) y  n7 {. r( n4 J
描述4 Q9 f5 i% m3 Q- c
这款智能手表是基于stm32l4,配备了1.44英寸的tft触摸屏、32位STM32 ARM处理器、额外的QSPI flash和加速度计,所有这些都在一个简洁的盒子里。' |9 l8 g2 R! @9 N% c
这个想法是基于Retrowatch和Piwatch。
0 J0 |' X( L  a. f9 g它有一个230毫安的锂电池。& V6 |& f- \0 Z. L8 K
8 @% i$ Q; G* ]5 F8 j2 \# [
细节$ ]# _$ c0 @2 W' d$ ~$ [% ?
作为pix项目中的“zerowatch”的后续产品,Pix-Watch应运而生。
2 |4 s- T2 n1 q2 e0 M) t
4 G' u3 J0 Q) X# h8 k0 KPix-Watch使用ST单片机,使用Arduino IDE,并为其编写了定制软件。
* T9 w9 \5 Q9 |* Q 9486131465371900812.jpg 6 a$ i) P' J9 F9 s5 o' [; n0 J) }
它的硬件规格是:0 A) U4 H8 i& O& [3 c# C+ K2 @; ~
-最高80mhz皮质M4F单片机+ f9 Y0 u1 s7 v( z6 l
- 128kb RAM
0 J; L, K/ K" t; B4 h; @! i- 512kb系统FLASH,主机固件
, m+ l/ c+ j9 ]4 v- 1.44英寸高彩色tft屏(ili9163,128 *128px),电容式触控输入) G  u2 ^% V$ s
-额外flash (4mbyte)& p# C$ t) q+ y, j/ r; F6 \# `8 I- t
- 3轴加速度计2 {( d* u; @( Q7 f! f! T- x
——振动电机; ?7 ]6 b* \, N% F6 P7 I
  x5 Q8 G- y& ]; L
一些特点:
9 C( N& `7 f5 |3 ^——framebuffer$ p; \. e5 Y/ U) N
——快速绘图
/ q, F( m6 `" n, h# G6 v——易于扩展api
0 G- n+ b2 \3 ]* y( z) ~( |——阿尔法混合
' k  I# }( M8 J. B& d——开源软件和硬件2 R, L& T% H; W$ y8 G) p
' ^/ A  H% |6 N  {

- [; K3 L' A; o9 J+ ], C目前已完成的工作:1 ^: }) B. z+ W4 t! O/ t1 N
——建立开发平台
6 V- t( F' }& z+ Y( b# u. F0 d$ s7 `4 \4 K

8 _( k! |  ~* r正在进行的工作:" p/ ?, S- P% C1 ?
——内联应用框架
% B* m9 q. d0 Y——案例设计
: {% }: _9 o1 [4 p2 x4 o8 w, d% N$ ]5 S——编写初始测试代码- O$ }* k% d5 |2 q7 u

# x) q8 b& J/ ]. K, M, \# U$ w- @. o7 r7 b
目前需要做的工作:2 L4 {3 T, ]/ U  D5 N* z
-pcb设计3 ]- u8 G1 G9 E1 e9 b
-更好的图形命令集
, Z& q+ e: t/ J" G1 Z4 D% y-暂时使用机载RTC, F- o" G9 M% X9 P% D1 F
-外部flash图像/应用程序加载支持
6 x. t; \# d2 f0 ]# J9 x- u  S0 M3 }* q-创建SDK4 P1 h# v  N* l2 i' K6 C* z
-应用程序eeprom存储(在eeprom仿真中存储变量). x3 C9 v" p$ E4 U5 E- x
-应用程序同步和闪烁使用USB) N, @# J- I' P& ^
# F9 x& ~3 M1 @" v6 s. K- j
组件
" k5 ~( B5 }3 x; |% Z' P% W1×pix-watch板  主板
2 E& [$ [; o# I% X1×230 mah锂电池  30 x20x5mm
' Z6 G2 b# D! a9 M5 j4 y$ @8 [1×外壳   3 d印制
; K+ r2 L7 s9 \1 C: H$ p0 X1×Ili9361c  电容触摸1 D3 ?! `0 A- e% o$ a/ G+ S
& _6 Z4 r1 ]! U, ]$ n
tft速度测量1 c& j- p% W7 @* @) T, C& Y* A

2 N( @8 U4 g3 O' g
% w! F/ D2 N0 L5 e我只是想分享我对面包板系统的基准。
1 f. N" Q  o" W# c* `全屏刷新(fillScreen命令):15ms(66fps)
" J  j3 U5 U8 c( K2 O9 R使用sdfat lib从microsd加载的全屏幕(128*128)位图:略大于125ms(即8fps)
4 Q. ]5 N+ W# b) h
6 {: i9 O4 d! L您可能想知道为什么位图加载如此低效?
2 p9 Z) r1 I& a' t' o0 m因为我们从缓冲区中的microsd读取了一条水平的像素数据线,将其绘制到屏幕上,并对每条垂直线(总共128x)重复这个过程  q8 W# u# _1 h' e. B
这真的想要我去一个framebuffer,加载整个位图到它,然后调整像素在需要的地方,然后像fillScreen命令一样推送它。" B7 v' X! R4 r2 X% B! ?

4 M& D' F* {8 e) X( z: q这将大大加快速度。
8 Y8 I6 P8 L5 k+ i4 d9 _8 k然而,它也有它的缺点:单个framebuffer都会消耗50%的RAM。4 {6 E# A, O% u
- i( A' S8 D; V$ l3 W1 ^8 Y
注意:我们不能从屏幕上读取,没有味噌线在屏幕上,否则我们可以使用,作为framebuffer,拯救我们32 kb的内存的成本30-40ms(猜测)绘制速度framebuffer内部ram(如果我们做我需要像20-25ms(猜测))6 p3 `5 M9 j! Z
" j4 A0 Q" j% q, @3 C1 K6 v
告诉我们你认为最好的是什么,不加帧缓冲还是用帧缓冲?
' I" @: C) c) l$ n
- e# a! L/ ^7 p0 Q# Q! Z- s; ?1 z; S( r  `/ ]! F+ Y" z
pcb越来越小
4 x" [% ]7 O( x  Z! k0 Q/ k6 l# ^* I% K& l
6 [& }9 j+ V, s2 @+ a+ T. n
我得到的pcb长度从50mm到43.5 mm,但仍然具有相同的功能(移动轨迹和组件)
+ U% h, M! `4 s5 G也就是说它只比我的zerowatch项目长3.5毫米(它的长度为40mm)
0 p( d2 P1 ?' r. Z# A1 A! f仍然想要一个framebuffer。  f  ~1 R4 F* t+ b+ W* q# b
9 D) z. r8 {: f2 e* A$ V
:framebuffer都恢复正常了,电池续航时间很长0 [" H( u) }' \/ ^8 ^& p3 z" \4 `

* G; L6 h; F$ V9 ]
1 j( d, g# C! u; S6 L* p几天前我又在手表上工作了,脑子里有两件事:framebuffer和延长电池寿命* D3 E- V" ?( E$ ?2 S8 q
我在这两方面都取得了成功,主要是在电池寿命方面:370小时待机(17小时运行@ 24mhz)时间(还没有加速度计)(总功耗:1.35mA)
* ?3 }: R. h- x2 Y- V0 v
1 \) o, y2 {" e' a* T2 P# P+ \这相当于500毫安时的15天待机时间!( m1 Y, h5 r9 }1 M& g* g
现在我正在移植所有使用framebuffer的图形命令。7 g) S; _  x. t5 `

; D3 X1 u, i6 ?+ H5 `9 J0 E+ M, Wframebuffer的唯一缺点是:它消耗了teensy 3.2的一半RAM。
6 G! C4 A; f( S- b' b但是多亏了rossum的microtouch框架,我们仍然可以为应用程序提供9kb的RAM,这比Arduino兆字节多1/8 !! V$ |2 }  D' t
同样,framebuffer很酷的一点是:alpha混合是可能的,有些人可能看过我演示的视频。但对于那些没看过的人,这个是视频4 H+ i1 B, S- Z, @! _! O# U6 j
. ]' _7 @4 |" F, |( k+ g

1 ], S0 q  p7 H* }/ j0 q! r. g7 O* x- _# Z# R, S* o3 V
切换蓝牙模块0 a) N7 M$ L+ c  _) I! O( w" ~" b
5 ]- u1 f0 b6 v+ \
现在我遇到了一个新的蓝牙模块,即ble113模块,它是蓝牙低能量的,并且有非常低的功率模式(几百nA)。2 b% A1 h4 d4 f4 r- w# y
与hc06相比,它的尺寸只有hc06的1/2,耗电量更少。% r1 K6 Z) V+ z8 K- c5 I! Y
这也导致了更小的pcb尺寸(理论上)。
# ?7 H. M; D$ c( ?/ v% u4 N  J7 r到目前为止,我还没有进一步研究编码。但是我很快就会恢复编程(希望在一周内)/ M' G3 B9 J  K  ?  P3 L3 H# u

' D! e. n8 ?. c/ ]. h' t2 R4 {是的,这个项目还远远没有结束!
% v$ r1 c: s3 `! u- X% W5 F: c5 D! H话题:我只是看了看时间,凌晨3:45,我该睡觉了。
- }( C5 M* W, w2 n3 a; d
& `5 m) W2 j6 X. C& l6 \- X
" W# R( N" T. T5 T" U# b* l注释和图形
7 ?% ?" }. D1 Z- K& e- M# |+ T4 N4 s4 H# M0 K# d

% |( ?1 N6 }0 M因为ble113很难正常(Atomsoft是这么说的)(它需要pcb上一个额外的swd来编程),所以我们放弃了它,转而使用BC118模块,该模块也可以在uart上工作,在睡眠模式下只使用9uA
9 c" X, ~4 D1 v0 d4 `* s, E. W2 |这两个模块的价格大致相同(在digikey上为11刀),所以这不是问题。7 Y" {+ N" ?' h* M3 Y5 U8 L. M1 t
我还开始清理代码,并将其分散到多个库中,否则我们将拥有一个包含1500多行代码的库。
" ]+ ]0 t: I& v1 m( Q希望代码很快就会出现。
1 o9 i1 B! |5 R6 X) k7 s2 ~, c1 N
6 C! h7 X5 y/ o) m2 S4 s$ G! K
; p* `4 ?4 F+ G" p% S8 X5 w我还创建了一个图形命令,即:循环加载条(log结尾的demo vid),并在RAM中添加了同样多的图形命令,因为它可以简单地加快速度。
/ Z' K1 f, V1 r/ d我也尝试过超时计时,它稳定运行到144mhz,任何更高的将会导致系统失败(我认为是在mcu的电压下)。+ f# X6 O; [7 D2 v5 W# D. Z
请注意,这是推荐的mcu clockspeed的200%,所以我不建议超过96mhz(这在teensy上已经是超频了)。: e; T, b- E; c0 ]! N
圆形加载条图的视频8 S" p; s3 ?- R' @0 j
7 ]* X8 v  N! {! U
, y' n. q; r" R4 L
, X8 S/ q7 D9 ^# s0 t$ e9 J
缺乏动力和延迟
" z0 F) |- x" ]5 c9 m4 F7 s3 f
1 g' G* q9 |; w8 J+ p3 g0 W/ L2 O5 Y  x- z- I# O- K6 _8 T! _5 C1 l
你们可能已经注意到这个项目最近没怎么更新,因为我实在找不到继续下去的动力。(别担心,项目会完成的!)
  t8 M' s& b8 X! b4 {/ a! t4 y
( W8 c& x# d9 rAtomsoft(谁会做pcb设计)没有让我知道任何关于设计的当前状态遗憾。(到现在已经超过两周了)
8 h) U: f* R  D# k总之,在某种程度上是积极的:& c" H9 ?' h4 L& |, P/ r
! a8 Q8 ~, _2 M2 A. J& w
我有一些时间来重做一小部分代码,我计划一旦我得到我的动机重新做内联应用程序API。
" T1 w8 B% I, O1 e& W+ C1 D9 H, V. g现在,有一个视频演示一些图形化命令,包括反别名圆圈。
' y. U6 D( k+ l: F9 G
& t; I6 Y5 N& \- K$ Z! ^7 |; {' W  z$ m  I- U. b' w7 e
改变计划!/ f, W4 P: [4 Q

' Q: H2 \! d. S5 H% k1 }1 \+ o/ C# u& p
正如一些人可能已经注意到的,我不满意teensy作为单片机,并将切换到stm32l4单片机,我已经有了显示工作,我将抛弃蓝牙,因为我想保持它的简约。
% [7 F( a8 \" u7 X; y- v9 |$ Y# B9 ]3 c) O; I8 |. f2 t8 Y0 h
智能按钮将被电容式触摸屏所取代,其行为方式与Android wear类似(基本手势控制!)4 W% W* M6 Y" Q! o
另一个设计变化是整个PCB,我的目标是34*15mm 4层。& _& X8 v3 ^7 P. S& [, d
我将尽我最大的努力使它有点防水(pogo针充电/编程它使用一个码头,没有按钮应该允许我实现这一点。
& w; p+ a  t8 v6 T, p另外,teensy 3.2没有fpu,因此alpha混合速度非常慢,这可以通过切换MCU来解决,在同一个MCU时钟上增加7x的增益=)" v) Y5 W  A' G

8 g& e7 G2 O, M5 E  t0 O
0 c% p/ g6 X* K% D( `) c: M* }# _- ?* ~性能提升; Y6 l+ R5 h6 }( L9 V  {! f" W. ]& X/ w
  U: Z- B% k# ?0 {5 Z# X
  a- S0 X; g+ b9 g& B; i
我只是想说明在最初的设计(teensy 3.2)和新设计(stm32l4)之间的浮点数(alpha混合/反混叠)每瓦特的性能增加
. h  e% z% t0 u, O5 P6 a首先,我想指出的是stm32l4至少是teensy 3.2规范中节能3倍
! b8 _+ E5 t5 E- V; R实际上更像4x的teensy 3.2需要一个单独的引导装载程序ic,它也使用电源。3 W8 S2 k) t- G* K) @% n: E& X
然后浮点数学....teensy 3.2根本没有fpu,所以计算肯定会很慢,但是在stm32l4上,速度比teensy要快7倍,因为stm有fpu。# D' T: ^2 ?3 l8 ~: Q: k# P% P
与功率效率相比,这大约是28倍(fpu数学/瓦特)% u% o" p" {, `
5 t) T6 M$ x3 s1 C! q8 _; G& @
此外,未来可能会从stm32l476改为stm32l496,使用320k的sram,用于更大的应用程序,而且它也更节能。(91微安/兆赫与100微安/兆赫); S" [9 N; Z& S$ A+ ^2 W+ A5 [
$ O* @" h- D# K/ h5 I  P
pix-watch相关资料% j5 h! e0 Z7 S. ]5 ~
4 h- H1 l" R) j5 V8 f
0 U. a' E- s; b. p6 X" O9 @0 s/ S
原文请见hackaday; }: q4 j  [: H% r

/ f, s6 }3 X% F* u1 s2 Q  j8 n4 B. ?6 t/ F

6 ^; E& c) Q" B+ I
赞 收藏 评论1 发布时间:2018-11-7 14:30

举报

1个回答
五哥1 回答时间:2018-11-7 18:13:16
考虑过stm32l496芯片的体积了吗,整体设计看上去和arduin的比例,感觉还是太大了,可以看到目前市场上免费领取的儿童手表手机,还带有一个GPS,功能十分强大,已经成熟的商品化了。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版