具备体积小、音质好、稳定性高等诸多优势,还具有一定的防水性和智慧性,因而迅速吸引了消费者们的视线。目前,MAXREFDES1302包括充电盒和耳机两个部分,系统整体硬件架构,如图一所示。充电盒使用3.7V 1500mAh的单节锂电池给系统供电,采用支持USB Type-C协议的充电器MAX77651为锂电池充电,用户只需使用单根USB Type-C数据线便可对整机进行充电。在电源轨方面,充电盒采用MAX17224升压模块将充电器的系统电压升压至5V电压,该5V电压透过MAX38640降压模块产生3.3V电压为微控制器MAX32655供电,同时,该5V电压并透过控制电路传输至耳机,作为耳机系统的充电电源。在电量监控方面,充电盒采用内建检流电阻的电量计MAX17262对电池进行监控。该电量计将传统的库伦计数方法与创新的ModelGauge m5 EZ算法相结合,无需电池特征分析,配置弹性,使用简便。在微控制器方面,充电盒采用具备BLE 5.2模块和内建SIMO电源模块的微处理器MAX32655,该处理器资源丰富,除了常用的通讯接口,其GPIO还可以被配置为1-Wire通讯接口,可对耳机侧的DS2488进行读写控制,为1-Wire通讯和充电提供极大便利。充电盒的SWD接口可连接至MAX32625PICO下载器,既可为充电盒的MAX32655更新韧体,也可透过虚拟串行端口在计算机上显示电池的信息。电池的信息也可以透过充电盒上的OLED屏幕显示。耳机使用3.7V 130mAh的单颗锂电池为系统供电,使用DS2488双向1-Wire网桥实现耳机和充电盒的数据通讯,同时实现对源自充电盒的5V充电电源的控制。在控制器方面,耳机同样使用MAX32655作为微控制器,该微控制器使用UART接口模拟1-Wire时序对DS2488进行读写控制,同样使用SWD界面连接MAX32625PICO下载器下载程序。在电源轨方面,耳机采用的充电器MAX77734自附的一路3.3V的LDO输出为微控制器MAX32655供电,同时,该3.3V和MAX32655内建SIMO模块产生的1.8V和1.2V电源一起,组成音讯编解码器MAX98050的电源轨。在电量监控方面,耳机同样采用电量计MAX17262对电池进行监控。图二为1-Wire TWS充电盒和耳机的实物图。充电盒的实际尺寸为10.20cm × 5.80cm,耳机的实际尺寸为10.20cm × 6.50cm,由于本设计为辅助客户进行设计、测试和研究的样机,在精简测试点的情况下,现实产品的尺寸可以大幅压缩,以满足TWS耳机实际应用的尺寸要求。在TWS耳机应用中,用可靠便捷的方法实现充电盒与耳机之间的数据通讯和能量传输很重要。目前市场上常见的TWS耳机通常使用3个或更多的触点与充电盒连接,以实现数据通讯和能量传输的功能。但是,过多的触点通常会导致系统成本的增加,这对低成本的可穿戴产品设计极为不利。由于更多的触点常常要更大的空间,这和TWS耳机的小尺寸要求相互违背。此外,更多的触点往往会增加故障发生的可能性。本设计采用为TWS方案设计的ADI专有的1-Wire双向网桥DS2488,实现耳机与充电盒之间的能量传输和数据通讯。DS2488支持1-Wire总线协议,可用单导线实现通讯和充电的功能。由于系统要额外一个触点用于将耳机和充电盒的地相连,整体仅需要用两个触点,可大幅度的提高系统可靠性,降低尺寸和成本。本设计采用的1-Wire通讯充电电路框图,如图3所示。如图三所示,DS2488为1-Wire双向网桥,具备IOA和IOB两个1-Wire通讯接脚供两侧的微控制器控制,其中IOA由充电盒的微控制器控制,IOB由耳机的微控制器控制。IOA支持最高可达5.5V的输入电压,支持在1-Wire总线(IOA)上传输不同的通讯和充电位准。作为1-Wire组件,每个DS2488组件并具备唯一的64位ROM ID,供用户进行识别、认证。DS2488内部还具备8字节的缓冲器,可供微控制器进行读写,以实时更新储存两侧的电池信息。在本设计中,缓冲器储存的信息如表一所示。
DS2488的TOKEN接脚指示DS2488的控制状态:TOKEN为低指示充电盒的微控制器取得DS2488的控制权限;TOKEN为高指示耳机侧的微控制器取得DS2488的控制权限。DS2488的CD/PIOC接脚控制充电盒是否为耳机充电:当1-Wire总线(IOA)上的电压小于4V时,CD/PIOC为高阻态,晶体管关断,充电停止;当1-Wire总线(IOA)上的电压大于4V时,CD/PIOC为低,晶体管导通,1-Wire总线上(IOA)的电压直接加到耳机的充电器上,充电开始。耳机充电和通讯的选择逻辑主要由一个连接至5V的MOSFET实现,该MOSFET的通断由充电盒的微控制器控制,充电盒与耳机的使用大致上可以分为以下几种情况。此时,充电盒的微控制器将MOSFET关断,并取得DS2488的控制权限,TOKEN为低,CD/PIOC为高阻态。充电盒透过IOA对DS2488的内部8字节的缓冲器进行读写,读取耳机电池的字节信息,并更新写入充电盒电池的字节信息。此时充电停止,进行通讯。此时,充电盒的微控制器将MOSFET开启,5V直接透过1-Wire总线(IOA)传输至耳机,此时TOKEN为高,CD/PIOC为低。充电盒的5V电压被传输至耳机侧,为耳机的锂电池进行充电。同时,耳机的微控制器取得DS2488的控制权限,透过IOB对DS2488的内部8字节的缓冲器进行读写,更新写入耳机电池的字节信息,并读取充电盒电池的字节信息。此时通讯停止,进行充电。此时,1-Wire总线(IOA)呈现高阻态,此时TOKEN为高,CD/PIOC为高阻态。此时,耳机的微控制器取得DS2488的控制权限,通过IOB对DS2488的内部8字节的缓冲器进行读写,并更新写入耳机电池的字节信息。如上文所述,本设计使用DS2488作为充电盒和耳机两侧的微控制器的网桥,实现两侧微控制器之间的数据通讯。DS2488支持典型的1-Wire通讯协议,协议的时序分为复位与回应时序和读写时序,读写时序又分为写0时隙、写1时隙和读时隙,如图四和图五所示。各时序高低位准阶段的时间范围的详细数据可参考DS2488的数据手册。
所有1-Wire组件内部均是由状态机组成的,其状态转移图如图六所示。如图四所示,当微控制器向DS2488组件发送复位讯号后,1-Wire总线μs,随后总线被上拉电阻拉高释放。如果总线将响应该复位讯号,在总线-Wire总线μs。此时微控制器可以检测总线上的位准变化,即透过检测到总线是否被再次拉低来判断是否有DS2488连接至1-Wire总线。
当DS2488响应复位讯号后,微控制器将发送ROM功能命令(ROM Function Command)。所有1-Wire组件的ROM功能命令都相同,一些常用的ROM功能命令如表二所示。由于TWS耳机设计中,充电盒内常常要容纳两个耳机,所以1-Wire总线(IOA)上通常会挂接两个DS2488。本设计首先采用Read ROM命令(0x33)和Match ROM命令(0x55)分别读取1-Wire总线的ROM ID和匹配特定ROM ID的DS2488组件,实现左右耳机的身份识别和选择。
当发送ROM功能命令后,微控制器将发送装置功能命令(Device Function Command)对组件进行进一步的操作。不同1-Wire组件的装置功能命令各不相同,对DS2488而言,一些常用的装置功能命令如表三所示。本设计采用Write Buffer命令(0x33)和Read Buffer命令(0x44)对DS2488内部的8字节缓冲器进行读写,实现充电盒和耳机电池信息的交互。
充电盒的微控制器MAX32655的两组GPIO(P0.6与P0.7,P0.18与P0.19)可被配置为1-Wire模块的OWM_IO接脚和OWM_PE接脚,分别实现与DS2488之间的通讯和5V的传输。本设计将MAX32655的OWM_IO接脚连接至DS2488的IOA接脚,实现充电盒和DS2488之间的1-Wire通讯功能。与此不同的是,考虑到市面上部分微控制器并不具备1-Wire接口,为用户设计方便起见,耳机的微控制器MAX32655采用UART接口模拟1-Wire时序,透过IOB对DS2488进行通讯,如图三所示。微控制器透过配置特定的UART波特率和发送特定的码形就可以实现这一功能。以图四所示的复位与回应时序为例,当波特率为115200时,UART收发每一位数据的时间长度约为8.68μs。因此,1个字节(8位)的数据的时间长度约为69.44μs,而0xE0(二进制:11100000)(UART先发送低位数据)则刚好对应1-Wire复位讯号的时序。此时,若微控制器透过TX发送0xE0(复位讯号),1-Wire总线将响应此复位讯号并将总线μs,此时RX上收到的讯号应为0xC0(二进制:11000000)或0x80(二进制:10000000)。微控制器透过收发不同的码形,并将接收和发送的讯号相互比较,就可以实现透过UART模拟1-Wire时序的功能。如图三所示,充电盒的微控制器MAX32655的OWM_PE接脚控制MOSFET的通断,当MOSFET关断时,系统来进行1-Wire通讯;当MOSFET导通时,5V电压透过1-Wire总线(IOA)传输至耳机侧,此时DS2488检测到5V,CD/PIOC接脚变为低位准使晶体管导通,将5V电压传至充电器给耳机的锂电池充电。充电盒的电池管理和电源方案系统由USB Type-C充电器MAX77751、电量计MAX17262、升压DC/DC转换器MAX17224和降压DC/DC转换器MAX38640组成。通常,单节锂电池的充电终止电压为4.2V,因此选择MAX77751CEFG+作为具体的充电器型号。该充电器的充电电流由连接至IFAST接脚和ITOPOFF接脚的电阻配置,考虑到实际需要,选择500mA的快充电流和100mA的终止电流,对应的电阻分别为2.4kΩ和8.06kΩ。电量计MAX17262具备ModelGauge m5 EZ算法,在配置电池容量、终止电流、充电电压门限等电池参数后即可自动对电池做测量,无需额外的电池建模。升压DC/DC转换器MAX17224和降压DC/DC转换器MAX38640的输出电压均由连接至SEL接脚和RSEL接脚的电阻配置,这里选择0Ω和56.2kΩ的电阻以分别输出5V和3.3V。耳机的电池管理和电源方案系统由充电器MAX77734和电量计MAX17262组成,微控制器MAX32655的SIMO输出也同时为系统提供1.8V和1.2V的电源轨。由于只需要一路3.3V的LDO输出,因此选择充电器的具体型号为MAX77734GENP+。该充电器还可透过I2C配置成出厂运输模式、关断模式和待机模式,从而延长电池使用寿命。微控制器MAX32655提供四路SIMO输出,每路均可透过缓存器配置输出不同的电压。充电盒的韧体流程图如图七所示。上电后,充电盒的微控制器将初始化GPIO,并配置电量计MAX17262和OLED模块。然后,微控制器对充电盒仓盖的状态进行轮询。如果充电盒盖关闭,微控制器将禁用 1-Wire 模块,并将 5V 的充电电压加到1-Wire总线(IOA)上为耳机充电。在这种状态下,如果微处理器检测到充电盒电池的剩余电量小于5%,则充电会停止。如果充电盒盖打开,则微控制器将禁用 5V 充电电压,并启用 1-Wire 模块读写 DS2488 的缓冲器。充电盒和耳机的电池信息透过OLED模块或者虚拟串行端口显示。
耳机的韧体流程图如图八所示。上电后,耳机的微控制器将初始化GPIO,配置电量计MAX17262和充电器MAX77734。然后,微控制器轮询充电器的输入电压是否有效。如果输入电压有效且大于4V,则微控制器启用充电器,开始充电。此时,微控制器轮询TOKEN的状态,如果TOKEN为低,则充电盒拥有DS2488的读写权限。如果 TOKEN 为高,则耳机拥有DS2488的读写权限,此时微控制器将耳机的电池信息写入 DS2488 的缓冲器,供充电盒读取。
充电盒和耳机的电源轨的设计的基本要求和测试结果如表四和表五所示。可见本设计能够很好的满足系统的设计要求。
充电盒盖关闭时和充电盒盖开启时的测试结果如图九和图十所示。可见本设计能够实时显示充电盒和耳机电池的信息,并读取显示耳机上DS2488的ROM ID。
图十 : 充电盒仓盖打开时的测试结果结论对于工程师而言,在易用性、低成本、可移植性和稳定能力之间取得平衡,从而对TWS耳机进行原型设计通常是一项巨大的挑战。DS2488 1-Wire双向网桥为以更小的空间和更低的成本实现低功耗、高稳定性、高性能的TWS耳机解决方案铺路。MAXREFDES1302以DS2488为基础,包括硬件和韧体设计,仅透过两个接触点即可进行电力传输和数据通讯,是一款易用的TWS耳机原型。(本文作者Yi Xin为ADI 应用工程师)参考电路[1] 方良、贾宁,基于MAXIM PLC技术的TWS解决方案。电子科技类产品世界,2021年5月。[2] MAX32655用户指南。Maxim Integrated,2021年3月。