硬件选型

处理器

处理器的选择方面,主要需要满足以下需求:

  • 尽可能低的功耗
  • 支持I2S、SDIO、USB 2.0 HS
  • 硬件单精度浮点
  • 尽可能少的外部元件

为了达到尽可能低的功耗,应该使用尽可能先进的工艺和低功耗的内核。用于单片机的eNVM工艺中最先进的就是22nm的MRAM工艺和40nm的eFlash工艺。面向大众市场的40nm eF单片机在当时(2019年)只有2种选择:STM32L5系列 和 LPC5500系列。两者均使用了Cortex-M33F内核,为此也就满足了单精度浮点的要求。两者都有较大容量的RAM和ROM。然而LPC5500有内置的高速USB PHY,而L5系列只支持全速USB。为此选择了5500系列。2019年量产的型号只有高端的双核55S69,2020年有了无加密功能的单核5528后则改用了5528。

电源管理

整理一下电源管理这里的需求:

  • 需要能够支持单节锂离子电池
  • 需要能够支持从USB接口充电
  • 需要能够准确计量电池剩余电量
  • 能够支持软开机/关机
  • 尽可能高的效率
  • 为DAC提供干净的电源(1.8V)
  • 为处理器提供电源(3.3V)
  • 开放的数据手册,容易购买

需要找到一片芯片同时满足所有这些条件并不现实,为此最终使用了集成式PMIC + 库伦计 + 独立LDO的组合。集成式PMIC使用了LTC3554,支持电池充电+电源通路管理,集成了两个高效率的Buck DCDC转换器,可以提供需要的3.3V和1.8V电源。库伦计使用了LTC2942-1,2942可以进行独立的持续电池容量计量,并且可以通过I2C读取数据。最终多个独立的LDO用于给DAC提供干净的数字和模拟电源。

音频输出

音频输出这部分其实没有太多的选择,如果需要高集成度(集成LPF和耳放)的高音质(<-100dB THD+N)DAC,可以选择的系列大致有CS4313x和AK4331/4377系列。后者只提供了CSP封装,对PCB工艺有较高需求。为此选择了有QFN封装的CS4313x系列。

屏幕

因为屏幕需要低功耗,但是同时我希望设备能够持续显示信息,所以可选的选项只有反射式的LCD或者Eink。虽然我更希望能使用高分辨率的反射式LCD,但是最后还是选择了更容易购买到的2.13“ Eink屏幕。

结构框图

根据上面的硬件选型,整体的硬件原理框图如下:

原理图设计

原理图上其实没有太多可以说的地方,都是比较常规的,按照厂家的参考设计来做就可以。稍微值得一提的是DAC部分的过于夸张的设计:

DAC的所有电源轨都有独立的LDO来提供电源,同时加了额外的电平转换芯片来转换单片机和DAC之间的IO电平。DAC有自己的晶振,同时DAC工作于I2S主模式,即DAC提供I2S的MCLK、BCLK和FS,这样可以避免电平转换芯片或者是单片机可能造成的额外jitter。

PCB设计

PCB采用了四层板设计,所有元件使用的都是比较方便人工焊接的。整体尺寸设计上尽可能接近Eink屏幕的尺寸,为此元件密度比较高。以下是最终焊接完成的r0.3 PCB:

完整的KiCAD源文件可以在GitHub上获得:https://github.com/zephray/Bric