
前段时间受到文章“用1500r双手动手的智能手表”的启发。 ,我还决定尝试制作类似的设备。
本文的目的不是作为行动或指导的指南,而是作为我必须面对的关键点的指示。 也许对于某人来说,它将成为灵感和有用信息的来源。
组件的选择,PCB布局,恶劣条件下的焊接,3D打印的表壳和手表上的JavaScript-都在切割之下。 欢迎光临!
要求条件
- 您需要找出时间,而不必将手机放在口袋里
- 应该有收到来电通知,短信和即时通讯程序通知的收据
- 电池寿命至少应为一周
- 尽可能紧凑
在此少量需求清单的基础上,您可以开始选择组件并阐明实施的技术功能。 该项目的时间和财务预算没有特别限制,没有计划进行批量生产,因此您可以散步,而不必担心节省一分钱。
除了总体计划之外,还有一些纯技术性的计划:
- 全天候创建和运行自定义应用程序。 像鹅卵石 。 总的来说,下文中的时钟将越来越类似于Pebble克隆,但为什么不呢?
- 应用程序及其数据的内存
- 适当控制充电水平,使手表在电池放电时不会突然熄灭,但会显示“粘着”并提前警告
- 加速度计,陀螺仪和磁力计可完全跟踪用户的运动。 能够制作计步器或智能闹钟,通过运动的存在来监控睡眠阶段
所有这些最终都化为一个小图:

该微控制器将BLE 4.x与智能手机,用于传感器的I²C和SPI总线以及带有存储器的显示器结合在一起,可控制振动并响应按键,一切均由锂电池供电。
现在,您可以开始选择芯片和零件的过程。 就劳动投入和花费的时间而言,这是最困难和最漫长的过程,有必要进行大量比较,搜索和潜水,直到我以前从未游过的地方。
元件选择
微控制器
首先,您需要选择一个控制器,它将成为设备的“大脑”,板上的所有其他东西都将为他带来好处。
为了使设备更紧凑,必须使用尽可能少的组件和模块。 在这里,各种芯片上的系统都可以使用,它们结合了蓝牙模块和微控制器的功能。
市场为我们提供了什么?
资料来源:www.argenox.com
- 赛普拉斯PSoC BLE内核ARM Cortex-M0,BLE 4.2、256kB FLASH,32kB RAM,一堆外设和一个集成的巴伦 ,广泛的电源电压:1.9-5伏
- 德州仪器CC2541 -BLE 4.0和8051内核,256kB FLASH,8kB RAM
- 德州仪器(TI)CC2640 -BLE 4.1,Cortex-M3、128kB闪存,20kB RAM
- 对话框DA-14580 -Cortex-M0,BLE 4.1、16 MHz,42 + 8kB RAM,32kB OTP(一次性可编程存储器,但可以从外部SPI FLASH运行代码),是上述体积最小,消耗最少的芯片
- SiLabs EFR32 -Cortex-M4F,40 MHz,BLE 4.x,蓝牙5,高达1MB闪存,高达256kB RAM
- 北欧nRF52832 -Cortex-M4F,64MHz,BLE 4.x,蓝牙5,512kB FLASH,64kB RAM,NFC标签仿真,集成式气球
在大量可口而不是决定性的决定中,选择权落在了nRF52832上 ,该芯片在外壳(6x6mm 48引脚QFN)方面被证明是生产效率最高,最方便的芯片。 另外,可以通过编程将任何外设以任意方式分配给任何GPIO引脚的功能也可以极大地简化电路板的布线。 这是许多微控制器所缺乏的。 借助NFC支持,您可以将NFC仿真器的功能添加到手表中,并将所有通行卡缝到手表中。

数据表中说有一个内置的RTC(实时时钟),这很方便。 但是后来发现这不是时钟,而是实时计数器 ,即 这是最常见的计时器,工作在32.768kHz石英晶体下,包括在睡眠模式下。 因此,在该设备的下一个修订版中,我将为RTC使用单独的芯片,例如STMicroelectronics M41T62LC6F 。 它具有32.768kHz的内置石英,可在I²C接口上工作。
nRF52-DK调试板的价格相当便宜 ,约4000英镑 。 卢布。 在速卖通上可以找到〜3tys。
顺便说一句由于该设备不涉及批量生产和任何市场销售,因此在没有严重后果的情况下绘制自己的电路板并在BLE SoC上构建解决方案是一项非常有趣的任务。 对于那些想要快速进入市场的人,建议使用现成的预认证模块 。
造成这种情况的原因有很多,它们与无线电相关:对于市场上的任何新电子设备,您都需要获得许可并获得CE和FCC等监管机构的认证 。

伴随的乐趣包括电路板的特殊布局,其中考虑了2.4 GHz频率信号的传播特性,屏蔽,在消声室中进行的测量,阻抗匹配以及其他微波魔术。 在完成的模块中,开发人员已经完成了所有这些工作,用户只需要将模块嵌入其解决方案中,就无需进行任何认证。
石英谐振器
石英谐振器连接到所选的nRF52832芯片:
- 以32MHz的频率为核心和无线电提供时钟
- 在睡眠模式下以32.768kHz为时钟定时器和BLE时隙计时。 可选,但是它的连接减少了功耗(可以缩短时隙),并提高了时钟RTC的准确性。
两种石英都通过Aliexpress在表面安装外壳中订购:
展示架
为了使时钟滴答滴答而至少一周不充电,有必要解决显示矩阵在工作模式下消耗大量电流的问题。 据我了解,手表制造商可以通过两种方式解决此问题:
- 仅当发生挥手且手表屏幕落入用户视野时,或者例如通过通知或闹钟已经引起用户注意时,才打开显示器并显示内容
- 不断显示内容,使用实际上不消耗电流来显示图片的显示器,而仅消耗电流来更新内容。 您不必走太远,例如:这是电子墨水 , LCD内存或IMOD / mirasol
市场为我们提供了什么?对于大多数时候都是由Malevich制作的显示器,市场上有这样的选择:OLED,TFT,Amoled,LCD电话模块(诺基亚,西门子等)。 寻找具有合适对角线的显示器仍然是必要的。
范例:
- 诸如Ali Express之类的小型OLED显示器要花一分钱。
缺点:小对角线,单色,功耗10-20mA,模块庞大。 没有模块板-宽环和捆扎带,这将吸收板上的很大一部分面积。 - TFT LCD,例如ILI9341 。 缺点:消耗,宽循环
由于屏幕更新速度太慢,单色,并且很可能在公开市场上很难找到尺寸较小的电子墨水显示器,因此电子墨水的屏幕立即消失了。
如果查看Pebble ,您会看到它使用“始终在线”显示。 Pebble Classic使用单色SHARP内存LCD显示器,Pebble Time使用类似技术的彩色(64色)显示器,但由JDI生产,目前没有销售。
关于IMOD / Mirasol, 高通公司除了从高通公司获得营销手册和Toq手表外,什么都找不到。
我想拍摄像Pebble Time这样的彩色显示器。 公开发售的最接近的类似产品是SHARP LS013B7DH06 ( 其数据表 )。

特点
- 对角线1.33英寸
- 分辨率:128x128,8种颜色(每像素3位)
- 尺寸:26.82x31.3mm
- 接口:SPI
- 电源电压:5V,但逻辑电平SPI从2.7V开始
由于没有额外的升压转换器,Li-Po电池无法获得所需的5V电压,因此伏击电压由电源电压引起。 但是显示屏上的电流很小,使用线性LTC1754-5类型的电荷泵获得所需的5V非常简单:

另一个功能是需要至少每秒一次将EXTCOMIN引脚(外部COM反相)的状态从高电平切换到低电平,反之亦然,以便电荷不会积聚在屏幕面板上,并且图像不会在某一点冻结。 为此,您可以丢弃微控制器的内置PWM(PWM),将其调整为占空比为50%(方波)且频率为1Hz或更高的频率,或任何其他(包括外部)方波发生器。
显示器通过一条小电缆连接到板上,以0.5mm的增量使用10针FPC连接器非常方便,例如Hirose FH12-10S-0.5SH :

显示模块没有自己的背光,也无法像普通的LCD屏幕一样通过LED发光,因此,到目前为止,没有背光,我们没有时间观看时钟。 如果有人熟悉为此类屏幕创建背光模块的过程,请回复。
电瓶
我不得不花一些时间从标准尺寸范围内选择合适的尺寸电池。 我一直在寻找电压为3.7V且容量约为100mAh的锂聚合物电池。
计划将电池放置在板子下面,知道板子的大小,您可以轻松拿起适合且不会伸出任何东西的电池。
市场提供什么?在Aliexpress上,您可以订购几乎所有大小的整堆电池,主要是要知道其名称的编码系统。 就像这样:HHWWLL,其中HH是电池的厚度(高度),以百分之一毫米为单位,WW是其宽度,而LL是以毫米为单位的长度。
示例:402025-电池厚度为4mm,尺寸为20x25mm

选择了容量为110mAh的302025 (3x20x25mm)电池并在Aliexpress上订购。

营养学
由于锂聚合物电池只能放电至3伏特,因此决定使用稳定的3V电压为整个电路供电,如果电池上的电压降至3V以下,请切断保护芯片的主电源稳压器( Maxim MAX809TEUR + T )。
3V的总电源电压适合电路中所有元件的功率范围,除了显示屏需要5V的电压。 因此,显示器通过线性LTC1754-5升压转换器直接由电池供电。
如果您查看这种电池的放电曲线,

可以看出,整个电池容量都在大约4V至3V的电压范围内,因此,传统的3V降压转换器足以为系统提供稳定的电压,同时有效地将所有能量从电池中吸出而不会留下任何东西,但又不会过度放电。
选择德州仪器(TI)TPS78230DRVT作为降压转换器,它具有500nA的小工作电流和150mA的最大电流,这已经足够了。 SON-6机箱结构紧凑,价格合理:

电池充电
决定通过标准的microUSB端口( Molex 47346-0001 )为电池充电,但是仅将电池直接连接到5V USB总线并像这样充电是不够的,因此必须确保正确的充电过程,分为几个阶段:预处理,恒定电流,恒定电压。
Microchip MCP73831芯片是为小容量电池(最大500mAh)充电的流行解决方案。 充电电流(取决于电池容量)由一个电阻器设定,有一个三态或漏极开路输出可通知您充电过程的开始和结束。
我还选择了另一种芯片-Maxim MAX1555EZK-T 。 它具有100mAh的固定充电电流,并且具有与微芯片芯片相同的外壳,同时需要最少的外部组件,并且具有漏极开路输出以通知充电过程:

在该板的下一个修订版中,我仍将切换到微芯片芯片,因为110mAh电池的100mA充电电流可能有点大。
电池容量控制器
有几种用于监视电池充电程度的技术,它们在执行和最终结果的准确性方面有所不同(在英语中,这称为充电状态):
清单所谓测 通过ADC打开电池的开路电压/ OCV(极板上的电压),并得出电池容量的结论。 大多数情况下,有必要使用分压器将电压范围转移到ADC工作可接受的区域。 这种方法的缺点是锂聚合物电池的电压与容量关系图非常平坦,并且读数本身会随每个周期而变化,并且会受到噪声的影响,并且由于负载电流的影响而无法测量极板上的真实电压
另一种方法是测量流入和流出电池的电流,而不是测量极板上的电压。 这就是所谓的库仑计数。 一种典型的解决方案是对小电阻分流电阻(约100mOhm)上的电压降值进行积分。 知道电池的容量,通过一段时间内流出的电流,我们可以得出结论:电池中还剩下多少能量(忽略自放电)。 这种方法的缺点是不考虑自放电,以及实际的电池容量随每个充放电周期而变化。 粗略地说,从电池流出的电流要小于充电时流入电池的电流。 因此,随着时间的流逝,读数中的误差将不可避免地累积
- 第一和第二种方法的组合:测量和板上的电压以及流动的电流。 两种方法的有效结合将有助于建立一个模型,该模型可以准确评估电池容量。 为了使这种方法起作用,有必要产生至少一个充放电循环以收集关于跨极板上的电压对电容的依赖性的数据。 此外,每个下一个周期都必须对电池型号进行更改,以使误差不会累积。 在某些文章中,人们讲述了如何使用卡尔曼滤波器将来自不同测量值的数据结合起来以预测剩余电荷( [1] , [2] )
在可用的选项中,选择了Linear LTC2941芯片用于最小但可负担的情况和清晰的工作算法。 在速卖通上订购。
数据表图片
资料来源:凌力尔特
该微电路采用库仑计数器技术,以1%的精度对流过的电流进行计数,通过I²C(SMBus)接口工作,并具有小巧但方便的外壳:2x3mm DFN-6:

通过微电路内部的I²C,您可以设置电流表对应的值,以及设置或读取计数器本身的值。 计数器为16位,当电流流入电池时增加,而当电流从电池流出时减少。 计数器的最大值(0xFFFF)可以视为已充满电的电池,最小值(0x0000)可以视为已充满电的电池。 使用精心选择的计数器预选择器,可以使计数器在充电过程中达到最大值,而在电池完全放电后达到零。 可以设置计数器值的极限,低于该极限时,微电路将发出警报并发出中断。
加速度计
在市场上大量的选择中,选择了一种相当流行的芯片: InvenSense MPU-9250 。 这是一个结合了MEMS加速度计,MEMS陀螺仪和磁力计芯片的系统(SiP)。

特点- 电源电压从2.4V到3.6V
- 16位三轴MEMS加速度计,测量范围为±2g,±4g,±8g,±16g
- 16位三轴MEMS陀螺仪高达2000°/秒
- 16位三轴磁力计,测量范围高达±4800μT
- 内置数字滤波器
- 接口I²C和SPI
- 可编程中断
- 读取DMP的协处理器(数字运动处理器)
该芯片非常出色,但最终似乎有点过分了,一个简单的加速度计就足以在手表中使用。 例如,根据制造商的Analog ADXL362 ,这是最经济的三轴MEMS加速度计。
快闪记忆体
决定使用外部SPI-FLASH存储器存储应用程序和数据。 从多种选择中,选择了紧凑型WSON-8封装的Winbond W25Q256FV芯片:

闪存的容量为256 MB(或32 MB)就足够了。 内存分为256字节的页面,分为4 KB的扇区和32 KB的块。 在活动模式(读取或写入)下,其功耗高达20mA,在待机模式下-小于1μA。
与加速度计一样,后来看来32兆字节也不过分,您可以使用微控制器的内置FLASH存储器来代替,它已经有512千字节。 .
, ( Pebble, ). . , :
Wealth Metal TD-26EA :

: &
, .
Omron B3U-3000P :
.
, , .
Aliexpress , 3V (HxWxL) 3x3x12mm:
, 100mA .
- , - . , , . , . , .
- 2.4GHz Johanson 2450AT18B100 :

, , Johanson , , Nordic. nRF52 Johanson Johanson 2450FM07A0029 , - LC- .
天线在带有10个胶带的Aliexpress上订购。 为214r /胶带。
其余的
吊带和捆扎带的无源元件主要是尺寸为0402和0603的芯片,并在Elitan订购。 除无源元件外,板上还有两个晶体管和一对二极管。 他们参与控制振动电机以及电源电路,将USB电源和电池去耦 。
电路板
屏幕截图中的面板外观与订购的外观略有不同,并且出现在设备的照片中。 董事会的屏幕截图只是稍作更改的更高版本。
决定尝试新的东西后,我没有在通常的DipTrace中绘制电路和板,而是在云EDA Upverter中绘制了:这是设计的链接 。
Upverter允许您同时进行电路板和电路的端到端设计,因此一些布线元件是根据方案进行的,并且部分电路的设计考虑了布线功能。
Upverter的另一个杀手级功能是庞大的组件库,这些组件由机器人和一堆印第安人精心生成。 事实证明,拿走已经绘制的零件并检查所有事物或多或少都是正确的是非常方便的,而不是自己完全绘制符号和封装。
首先,我决定安排组件的位置,这些组件的位置将精确固定:按钮,microUSB端口和屏幕连接器。 我没有开安装孔,希望将板卡在机箱中,并且不会挂任何东西。
在固定元件定位之后,请遵循“经验法则”,我们将首先繁殖收音机。 贴片天线在其附近,内部和下方都不宜有一个小的保留区域,因此不建议在所有层上放置走线和多边形,因此良好音调的原则是将天线放置在电路板的边缘,最好靠近一个角。 实际上,天线的位置决定了微控制器的位置。 为了使从芯片上的天线输出端口到天线本身的导体长度尽可能短(考虑到匹配的组件),我们将控制器放置在靠近天线所处边缘的位置。
所有其他组件都可以相当自由地定位(不会忘记常识)。 这是由于可以通过编程确定nRF52微控制器的数字外设端口的位置。
以我的经验,组件成功地相互安排是成功的90%,它决定了进一步布线的质量,因此应特别注意此过程。
为了清楚起见,我绘制了关键区域的大致拓扑:

评估板分为四层,将选定的组件放置在评估板上并断开其连接仅需几个晚上的时间,然后花了大约一周的时间才将其卡在评估板上,查找错误,悠闲地仔细检查并重新阅读数据表以避免突然的意外情况。
绘制该板时要考虑到板制造商(成为美国OSHPark.com)的技术标准 :
- 导体/间隙:5/5密耳
- 通孔:10/4 mil孔/焊盘
- 材质:FR408
- 表面处理:沉金和镍底层(ENIG)
- 不支持盲孔和内层过渡(埋孔)。 而且我们不需要
同时,价格为每平方10美元。 英寸和顺序中的板数-3pcs。 这些是非常高质量且价格低廉(适用于原型)的主板,带有可识别的紫色蒙版,我建议所有不重要的人都为其双侧或四层主板等两个月而等待一个月。
结果,我要付三笔费用,我要付14美元,一个月后,我又用邮寄的方式把它们收了。
所有组件均位于显示板的底部,位于显示板的顶部,在显示模块的下面,是一个扁平的NFC线圈,可让您节省几毫米的高度,并确保显示屏的平稳紧密安装。
电路板上侧还有一堆测试点,测试板,I²C,SPI总线,中断线和一些控制信号连接到这些测试点。 可以将示波器或逻辑分析仪连接到这些平台,该功能大大简化了编写驱动程序和调试固件的过程。 此外,在板子的顶部还有用于通过Segger JLink进行闪烁和调试的JTAG调试接口(SWD),该接口包含在nRF52-DK套件中,以及用于焊接NFC天线线圈的焊盘。
组装和焊接
如果您遵循表面安装的整个过程,则需要订购一个smd模板(smd模板)和焊膏,通过该模板涂抹焊膏,排列组件并将其发送到回流焊炉 。
但是我没有炉子,也没有模具。 而且也想和他打交道并焊锡膏。 我想快速组装一个原型并开始测试和编写软件。 因此,我手动焊接了所有组件,最小的是0402尺寸的芯片,用针头涂上糊剂,用真空镊子放置组件,然后用吹风机焊接。
结果可以在照片中看到:

按钮不焊接,而是几个三脚芯片-跳线。对于在砖头上拍摄的低质量照片,我深表歉意。通过x30放大镜拍照
您会看到组件略微旋转,并且放置的焊料过多。 手动安装和粘贴粘贴是不可避免的。
电路板组装完成后,我立即抓住测试仪,并开始敲响所有可能短路的信号。 确保他似乎不矮以后,他连接了USB电缆。 无烟,芯片不发热,USB端口上的电压为5伏,电荷输出为4.2V,LDO之后的电压恰好为3伏。 它似乎有效。
当然,即使在完全通电的情况下,该设备也绝对没有任何生命迹象。 现在,您需要投入精力-固件(或“操作系统”,例如某些手表制造商:WatchOS,PebbleOS等)。
测试的下一步是通过SWD接口连接内置到nRF52-DK中的JLink调试器。 我们连接布线,运行JLinkExe并查看我们的芯片! 您可以开始编写固件并以编程方式测试铁的其余部分。
手表的“操作系统”
对于低级外围设备,Nordic提供其nRF5-SDK ,适用于nRF51和nRF52系列。

SDK , , NFC . Makefile arm-none-eabi-gcc
. , .
.hex-, nRF52-DK . nRF52-DK , Mass Storage Device (), .hex .
JLinkExe
GDB- nrfjprog
.
, . , , , , .
, .

, -, , .
, , - . API X-Lib . , .
:

, API , JavaScript (ES 5), . , .
JerryScript, , API , , . , , : Date .., JSON-, ..
JS :

API GUI, , Bluetooth, ..
( -O0
):

106kB FLASH, 12.8kB RAM. 8kB RAM — (heap) JavaScript . . , FLASH nRF52832 512kB, RAM — 64kB.
FLASH (120kB) RAM BLE- SoftDevice.
— 3D- . TinkerCad 3D-. :
- 3D-, !
, . , , , . , , , .
, API- JS-, JS-, - Android. , . , , , Android- .
: https://upverter.com/EP/cdbd8b9abc72b7cd/nRF52-smart-watch/
, Github.
像上一篇文章的作者一样,我希望这种材料能够推动或激发人们涉足电子领域,并制造出他梦ing以求的设备。
我期待您的意见和疑问!
PS:添加了一个民意调查。