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

基于stm32l4的智能手表

[复制链接]
丿灬幸灬 发布时间:2018-11-7 14:30
这是一款cortex m4 f的智能手表。/ E3 E& N$ @. R1 V
8837101457985506969.jpg $ h: K& D% N5 ^2 r5 B& Q6 H
描述
3 P+ f3 s5 x# b这款智能手表是基于stm32l4,配备了1.44英寸的tft触摸屏、32位STM32 ARM处理器、额外的QSPI flash和加速度计,所有这些都在一个简洁的盒子里。/ ~& J$ u* M' A! b3 O/ J5 O
这个想法是基于Retrowatch和Piwatch。
6 E2 S1 X( D+ [/ i3 |# N它有一个230毫安的锂电池。/ @8 ]+ N2 `% e( ]1 P. D& G& N! h
1 N+ S& l" g5 \% A) [$ c
细节, J, G  \! s, Y& ^; z/ w6 `1 V
作为pix项目中的“zerowatch”的后续产品,Pix-Watch应运而生。- A5 o9 v4 g1 ?4 q0 z% O

. W6 H1 u2 H- ^( }9 ^) E% dPix-Watch使用ST单片机,使用Arduino IDE,并为其编写了定制软件。3 @8 s. `( E1 E" A& J
9486131465371900812.jpg
* F6 ~! e) P$ F! X; u" s它的硬件规格是:
3 ~: n/ m$ L- S5 j* Y-最高80mhz皮质M4F单片机! ^) X6 Q1 o4 W2 B; E% t$ J+ K7 P
- 128kb RAM
$ X; B" a4 n$ ]- 512kb系统FLASH,主机固件: i9 W( w$ h3 U, N  y" \8 |  h) ~
- 1.44英寸高彩色tft屏(ili9163,128 *128px),电容式触控输入. F* w+ S& l; }0 Y% y
-额外flash (4mbyte)- q2 |! Y2 G' t  E+ _
- 3轴加速度计# x& [& U/ a9 N0 X5 n$ D
——振动电机7 f) @" S8 F9 G& U/ P2 G$ v9 r" d

2 k3 c+ g0 m7 R& r3 \$ _4 v一些特点:
, h( N9 A' T5 }% C% p2 u——framebuffer
# J' H+ f9 N# v——快速绘图
9 Y; }, T% p: Y" c5 T7 ^6 y——易于扩展api: Z; N! C3 ~1 x$ e
——阿尔法混合. e4 Q% C/ v& x6 l' `
——开源软件和硬件( \# m& h8 @6 {  f
( B2 `0 ?( ?' V4 E  ^5 I. j

# _0 x4 _" ]" ~( q$ P+ ?# i目前已完成的工作:
, R3 t( t6 O4 [2 X- I6 V9 |% Q: u* M——建立开发平台9 u0 }1 U% ?+ v) G( S
4 V% x& O+ j5 u2 E" {- i8 R' `) J
: q; i2 k' Y5 V5 {
正在进行的工作:
! F) G. a# M! R; p8 m; H  A% K——内联应用框架5 K3 D6 {; f2 A3 s3 v& @( V' C
——案例设计% n' `9 X; z6 P5 M- P) B4 B5 d
——编写初始测试代码6 ^/ L; y7 [( h/ j" T6 a
# {# t/ z- B1 u/ F/ Y

( t' F# ]+ A5 l% d" n) l目前需要做的工作:
* d. Q0 E2 U1 Y" D-pcb设计
/ G" Z/ A8 j. u( O8 |-更好的图形命令集
; C* ~' y0 {* |/ x0 o-暂时使用机载RTC
! x7 Y6 v& b3 R( ?& l6 J1 P-外部flash图像/应用程序加载支持
1 ~4 r/ j& ^7 k5 x0 C-创建SDK3 U/ J/ e# A, l" e) @  f7 q, q# I
-应用程序eeprom存储(在eeprom仿真中存储变量)
% v9 f  v5 w4 n+ \2 z) z-应用程序同步和闪烁使用USB
2 Y" _- q) Q  D  R% t3 N) V- O) u3 J' t# O" u1 R2 `) p0 {
组件
0 H; |* Z6 U1 R3 S) V9 K1×pix-watch板  主板3 w" o: M( S5 P# w9 n6 G% _% t! j& j# {
1×230 mah锂电池  30 x20x5mm
8 k: a: y  w9 U- X, V: C  \# a& m1×外壳   3 d印制
( u" @, E9 B6 q  T1×Ili9361c  电容触摸
0 ?9 v$ O5 ?& v& C4 `3 }/ W4 M2 [) I, u( F9 ]1 Y2 B! X. `# K
tft速度测量" D) t6 g& S: `* o5 [7 a: c1 ?

$ X" u, @5 e$ M: X! ^
: J4 }  q# E% i/ ?* V我只是想分享我对面包板系统的基准。
, q1 _  m! o/ r$ ]5 E" }* n0 ~全屏刷新(fillScreen命令):15ms(66fps)
% N: o; d3 Z7 c& o: Q使用sdfat lib从microsd加载的全屏幕(128*128)位图:略大于125ms(即8fps)" H' H" y6 w; O! b$ d3 H, }% U+ ]+ l
; I1 ^% c+ z6 H4 f$ f
您可能想知道为什么位图加载如此低效?) x  [! `, W8 w! E( t- E1 p
因为我们从缓冲区中的microsd读取了一条水平的像素数据线,将其绘制到屏幕上,并对每条垂直线(总共128x)重复这个过程6 j% m% E; E8 x
这真的想要我去一个framebuffer,加载整个位图到它,然后调整像素在需要的地方,然后像fillScreen命令一样推送它。. w# O5 L- c1 A' @6 g3 N

. j. C0 a# T0 w; B( R这将大大加快速度。
* k0 _- P* P4 I- l9 L$ m; E! ^$ U然而,它也有它的缺点:单个framebuffer都会消耗50%的RAM。1 A+ \- x$ r0 Q7 P' ^( r
% k0 u0 x2 P5 L) q" d$ e- Y- y
注意:我们不能从屏幕上读取,没有味噌线在屏幕上,否则我们可以使用,作为framebuffer,拯救我们32 kb的内存的成本30-40ms(猜测)绘制速度framebuffer内部ram(如果我们做我需要像20-25ms(猜测))' Q3 O6 k: H: y- W) }
; f# J3 c. {4 ]6 P8 h1 Z
告诉我们你认为最好的是什么,不加帧缓冲还是用帧缓冲?9 A3 |/ X3 j' k5 \

( V* t) b0 ~2 l" d3 R: Q
: ?! Q$ {! I$ _- v0 k. spcb越来越小
/ H* W* Z9 H7 r7 t# @! O( S' X* g5 a/ K! A+ M6 J1 _5 C

4 |" o7 v! o) R& ], ~6 F0 z我得到的pcb长度从50mm到43.5 mm,但仍然具有相同的功能(移动轨迹和组件)3 P8 e) u" I! B" q9 |4 M$ P
也就是说它只比我的zerowatch项目长3.5毫米(它的长度为40mm)
% H$ A$ S6 r7 Y4 x, d仍然想要一个framebuffer。
' d+ v: c/ q! x6 x
+ F# r/ F7 g& }" L. S5 |+ `, @" V:framebuffer都恢复正常了,电池续航时间很长( g+ `5 D& c6 E' b3 q; l

, q: |7 N% |5 h# y+ N6 d/ T5 R& F! G+ ~
几天前我又在手表上工作了,脑子里有两件事:framebuffer和延长电池寿命
) i; K3 n! Z5 ]% e! l7 L1 A7 H我在这两方面都取得了成功,主要是在电池寿命方面:370小时待机(17小时运行@ 24mhz)时间(还没有加速度计)(总功耗:1.35mA)
& \+ }$ W3 G# t7 H4 m; y0 b
" I) O/ o9 d2 D* u这相当于500毫安时的15天待机时间!
1 |  r+ Z7 J" H' q+ O现在我正在移植所有使用framebuffer的图形命令。
2 U$ F1 Z" ]; \: Z7 X! s  V& d3 q3 ?) c* o
framebuffer的唯一缺点是:它消耗了teensy 3.2的一半RAM。$ o  B+ n+ g/ M' y
但是多亏了rossum的microtouch框架,我们仍然可以为应用程序提供9kb的RAM,这比Arduino兆字节多1/8 !/ i7 Z" w7 i7 ^/ v; W! a+ m0 n
同样,framebuffer很酷的一点是:alpha混合是可能的,有些人可能看过我演示的视频。但对于那些没看过的人,这个是视频
( S0 \: x( c4 `: M8 j' I7 ^  {! ~$ Z$ H  T; b) @$ K+ X; X5 ~
9 g5 ]0 R/ e3 D% z  M5 J! O# z' o
3 R$ F! {& k( p( `
切换蓝牙模块4 W! E9 v  Y; C! E
2 K, w) T8 j! n/ s' P; h" U' O
现在我遇到了一个新的蓝牙模块,即ble113模块,它是蓝牙低能量的,并且有非常低的功率模式(几百nA)。8 R0 V! X& m& ?9 v4 h* J
与hc06相比,它的尺寸只有hc06的1/2,耗电量更少。
* |, `6 L* ?$ m2 \6 D* d这也导致了更小的pcb尺寸(理论上)。& h! c: w8 W* r5 l/ ~
到目前为止,我还没有进一步研究编码。但是我很快就会恢复编程(希望在一周内)3 c; @1 y$ v3 |! k7 B2 e4 _
- G+ X5 M7 f8 e
是的,这个项目还远远没有结束!
9 v6 u: l6 z4 x0 i1 b! v话题:我只是看了看时间,凌晨3:45,我该睡觉了。
: o( q, i( |0 B. B1 y7 U" v
( J* @2 t& l4 G; f- _, B/ e
+ s2 h; @. L5 H2 L* z- o注释和图形
* l" A3 U# @* ]5 T: o* E3 D+ c, u
. c( g" f8 Q- ~' ~0 P, Y) p2 [/ k7 j  N- p
因为ble113很难正常(Atomsoft是这么说的)(它需要pcb上一个额外的swd来编程),所以我们放弃了它,转而使用BC118模块,该模块也可以在uart上工作,在睡眠模式下只使用9uA9 X0 v7 W4 I3 t# ^7 s
这两个模块的价格大致相同(在digikey上为11刀),所以这不是问题。4 ?7 h+ ?0 {7 C
我还开始清理代码,并将其分散到多个库中,否则我们将拥有一个包含1500多行代码的库。
; u' i5 Z/ I2 r& [! Q# M0 g希望代码很快就会出现。3 s  O( v9 }5 X+ q

/ `9 Y5 f- |% Y7 y9 |& C9 d7 n0 Z* z5 y1 K- X6 m/ O
我还创建了一个图形命令,即:循环加载条(log结尾的demo vid),并在RAM中添加了同样多的图形命令,因为它可以简单地加快速度。
" w. ]2 s" K5 _% M+ q8 r. U我也尝试过超时计时,它稳定运行到144mhz,任何更高的将会导致系统失败(我认为是在mcu的电压下)。( ?+ v1 B/ e/ y5 {
请注意,这是推荐的mcu clockspeed的200%,所以我不建议超过96mhz(这在teensy上已经是超频了)。' |( o: d% G' A- B( Y
圆形加载条图的视频
* J0 \3 d8 {8 O2 B. Q  Z5 e/ C- p2 b7 m

* [9 K4 Z/ \" u* Z- T4 S5 j$ u
+ S6 {2 C; y, q& l缺乏动力和延迟
! M: X& ]3 D. V: s; p
0 [" L( m! h5 g6 I
$ S. {4 r+ r, |; A) A8 M你们可能已经注意到这个项目最近没怎么更新,因为我实在找不到继续下去的动力。(别担心,项目会完成的!)
; ^& L  ?: C; ^5 Q7 X  L9 o
( r, g% h7 X1 k$ J, ^; jAtomsoft(谁会做pcb设计)没有让我知道任何关于设计的当前状态遗憾。(到现在已经超过两周了)8 T: g8 ~4 p, @" ^) [3 _4 E
总之,在某种程度上是积极的:/ N7 @+ I, l6 K

% I; @$ ~; j& p( q; j* a) W我有一些时间来重做一小部分代码,我计划一旦我得到我的动机重新做内联应用程序API。
' ?. n: N6 a5 H/ i现在,有一个视频演示一些图形化命令,包括反别名圆圈。
% L; B; m7 N$ G. \( g; v) |* [3 o* X
$ K3 T! k9 L; H% g( B. y* D7 s+ h2 h$ K5 p3 H9 f& y4 s! M( f
改变计划!
# p& L* {: s4 K% k" f, H2 \" G9 ^" W2 h# I; |2 c9 [2 _

, U1 Y, G6 H& u* }7 C' }正如一些人可能已经注意到的,我不满意teensy作为单片机,并将切换到stm32l4单片机,我已经有了显示工作,我将抛弃蓝牙,因为我想保持它的简约。
5 P1 n5 ^  d0 [7 z/ J) G' o3 }; g, }- c, E: _6 R* d- _
智能按钮将被电容式触摸屏所取代,其行为方式与Android wear类似(基本手势控制!)
* F4 `6 _2 c4 j另一个设计变化是整个PCB,我的目标是34*15mm 4层。4 Y8 d; Y: g( G1 Q: p
我将尽我最大的努力使它有点防水(pogo针充电/编程它使用一个码头,没有按钮应该允许我实现这一点。
: i* b& W2 \8 |( b另外,teensy 3.2没有fpu,因此alpha混合速度非常慢,这可以通过切换MCU来解决,在同一个MCU时钟上增加7x的增益=)# B) @" j2 B  l& S

# O; Q0 i6 L, X5 S
& Y: |. v8 Q4 ?8 R; F# o性能提升" B; g$ ^- _1 X7 A

$ M4 c  z# {* R0 i+ s
. H: U4 X0 X8 l$ c8 J) z" Z, N我只是想说明在最初的设计(teensy 3.2)和新设计(stm32l4)之间的浮点数(alpha混合/反混叠)每瓦特的性能增加  q' }- Y. J" K
首先,我想指出的是stm32l4至少是teensy 3.2规范中节能3倍+ X5 B$ U+ H3 ?" o7 o; ~
实际上更像4x的teensy 3.2需要一个单独的引导装载程序ic,它也使用电源。  J4 H7 \! J$ b/ A9 N4 X  C; v
然后浮点数学....teensy 3.2根本没有fpu,所以计算肯定会很慢,但是在stm32l4上,速度比teensy要快7倍,因为stm有fpu。5 P. F/ v* G3 k& P
与功率效率相比,这大约是28倍(fpu数学/瓦特)( Z( y0 G1 u- y/ q9 b* h9 A/ f$ }

; c$ h+ ]9 J/ U4 Q( \- K0 F5 N此外,未来可能会从stm32l476改为stm32l496,使用320k的sram,用于更大的应用程序,而且它也更节能。(91微安/兆赫与100微安/兆赫)
7 `* L5 K$ _) Y/ R! A; w. @. V2 K* Y) h2 `3 n+ V" r
pix-watch相关资料
* q6 G. s, y" Y3 X8 c
" m; f1 M, e5 D3 l  C1 q
- v  {/ u* f3 t. L# F' }原文请见hackaday
' o9 I6 {  r6 D# W
0 ]. t3 J; R1 T" a  a. g
5 X8 S7 C: c9 V0 n4 T) v! h; ?' E0 y: t3 j& r+ @  k  e8 k
收藏 评论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 手机版