基于CY7C63723/CY7C63722芯片的鼠标设计方案


基于CY7C63723/CY7C63722芯片的鼠标设计方案
CY7C63723和CY7C63722是赛普拉斯(Cypress)公司生产的低成本、低功耗USB微控制器,专为人机接口设备(HID),尤其是鼠标和键盘等应用而设计。它们集成了USB接口、GPIO、定时器以及串行接口等功能,使得基于这些芯片的鼠标设计方案具有成本效益高、功耗低、开发周期短等优点。本方案将详细阐述基于这些芯片的鼠标设计,包括核心元器件选择、电路原理、固件设计思路以及调试要点。
一、 核心控制芯片选择:CY7C63723/CY7C63722
为什么选择CY7C63723/CY7C63722?
这两款芯片是为USB HID设备量身定制的解决方案。它们内部集成了USB收发器、SIE(串行接口引擎)、USB控制器以及一个精简指令集(RISC)处理器,极大地简化了USB接口的实现难度,无需外部USB收发器,降低了BOM(物料清单)成本和PCB(印刷电路板)面积。此外,它们提供充足的GPIO(通用输入/输出)引脚来连接鼠标的各种输入设备(按键、滚轮、传感器),并且具有低功耗特性,这对于便携式或电池供电的鼠标尤为重要。它们还支持多种省电模式,进一步延长电池寿命。CY7C63723相比CY7C63722具有更多的GPIO引脚和更大的闪存,适用于功能更复杂、按键更多的鼠标,而CY7C63722则更适合基本的两键或三键鼠标。
元器件功能:
USB接口: 内置全速USB 2.0接口,支持HID类设备协议,负责与PC进行数据通信。
RISC处理器: 负责执行固件代码,处理鼠标的输入事件(按键按下、滚轮滚动、传感器数据),并将这些事件转换成USB HID报告发送给PC。
SRAM/Flash存储器: SRAM用于存储运行时数据和堆栈,Flash用于存储固件程序。
GPIO: 用于连接鼠标的按键、滚轮编码器以及光学/激光传感器的控制和数据引脚。
定时器: 可用于延时、按键防抖、USB轮询间隔等功能。
电源管理单元: 管理芯片内部的供电,支持低功耗模式。
二、 光学/激光传感器模块
优选元器件型号:
PMW3325 / PMW3360(PixArt原相): 这些是业界常用的高性能光学传感器,提供精确的追踪能力、高DPI(每英寸点数)和良好的功耗表现。PMW3360是更高端的选择,提供更高的DPI和加速度。
ADNS-9800(Avago/Broadcom): 高端激光传感器,适用于追求极致性能的游戏鼠标,提供极高的DPI和追踪速度。
经济型选择: 对于普通办公鼠标,也可以选择PixArt的PAW3205/PAW3212等更经济实惠的光学传感器。
为什么选择这些传感器?
光学/激光传感器是鼠标的核心,直接决定了鼠标的追踪精度、速度和稳定性。高性能传感器能提供更流畅、无跳帧的体验,尤其是在游戏或高精度设计工作中。PixArt是光学鼠标传感器领域的领导者,其产品经过市场验证,性能可靠。选择时需根据鼠标的定位(办公、游戏)和成本预算来决定。
元器件功能:
图像采集: 通过内部的LED(光学)或激光二极管(激光)照射鼠标下方的表面,并利用CMOS图像传感器捕捉表面的微小纹理图像。
运动分析: 内部的DSP(数字信号处理器)对连续捕捉的图像进行比较和分析,计算出鼠标在X轴和Y轴上的相对位移。
数据输出: 通常通过SPI(串行外设接口)或I2C接口将位移数据(delta X/Y)传输给主控芯片(CY7C63723/CY7C63722)。
DPI设置: 大多数传感器支持可编程DPI,允许用户在不同灵敏度之间切换。
三、 按键开关
优选元器件型号:
欧姆龙(OMRON)微动开关 D2FC系列: D2FC-F-7N(20M)、D2FC-F-7N(50M)等。
凯华(Kailh)微动开关: 同样提供多种寿命和手感的微动开关。
TTC微动开关: 国内品牌,性价比高,也有不错的寿命和手感选择。
为什么选择这些开关?
按键手感和寿命是用户体验的关键部分。欧姆龙微动开关是鼠标行业的事实标准,以其清脆的手感、可靠的性能和长寿命而闻名。不同型号提供不同的点击寿命(如2000万次、5000万次),可根据鼠标的定位和预算选择。国产微动开关如凯华、TTC在性价比方面表现出色,也能提供不错的体验。
元器件功能:
输入触发: 当用户按下按键时,内部的金属簧片接触,形成电气通路,产生一个低电平信号。
机械寿命: 决定了按键在多少次点击后可能失效。
手感: 影响按键的点击力、回弹速度和声音。
四、 滚轮编码器
优选元器件型号:
ALPS编码器: 通常用于高端鼠标,手感舒适,刻度感强,寿命长。
华诺(Huano)编码器: 性价比高,广泛应用于中低端鼠标。
机械编码器: 常见类型,通过光栅或触点产生脉冲信号。
光电编码器(较少): 理论上寿命更长,但成本较高,通常用于更高端或特殊应用。
为什么选择这些编码器?
滚轮的滚动手感直接影响用户在浏览网页或文档时的体验。优秀的编码器能提供清晰的刻度感,且不会出现误触或跳帧现象。机械编码器是主流选择,ALPS提供更好的手感和可靠性,华诺则在成本和性能之间取得了平衡。
元器件功能:
位置检测: 当滚轮转动时,编码器内部的触点或光电对会产生一系列脉冲信号。
方向判断: 通过两路相位差为90度的脉冲信号(A相和B相),主控芯片可以判断滚轮的转动方向(向上或向下)。
滚轮点击: 大多数滚轮编码器下方集成一个微动开关,用于实现滚轮中键功能。
五、 USB接口和保护电路
优选元器件型号:
USB Type-A连接器: 标准的USB接口,连接到PC。
ESD(静电放电)保护器件:
瞬态电压抑制器(TVS)二极管阵列: 例如 NXP PESD5V0X1BT,215 或 ON Semiconductor RClamp0524P。这些器件在USB数据线(D+、D-)和电源线(VBUS)上提供静电放电保护,防止静电击穿芯片。
共模扼流圈(可选): 如 Murata DLW21SN900HQ2L,用于抑制共模噪声,提高USB信号完整性。
滤波电容:
旁路电容: 0.1uF和10uF陶瓷电容,例如 Murata GRM155R61A104KA01D (0.1uF) 和 Murata GRM188R61A106KA01D (10uF),靠近CY7C63723/CY7C63722的VCC引脚放置,用于电源去耦,滤除高频噪声,提供稳定的电源。
USB VBUS滤波电容: 4.7uF或10uF电解电容,用于稳定VBUS供电。
为什么选择这些元器件?
USB接口是鼠标与PC连接的桥梁,其稳定性和可靠性至关重要。ESD保护器件能有效防止静电放电对芯片造成损坏,尤其是在用户插拔USB线时。滤波电容则确保电源的纯净,避免噪声干扰芯片的正常工作。共模扼流圈进一步提高USB信号的抗干扰能力。
元器件功能:
USB连接器: 提供物理连接。
ESD保护: 在发生静电事件时,将静电能量旁路到地,保护敏感的USB引脚。
滤波电容: 存储电荷,在电源波动时提供瞬时电流,并滤除高频噪声。
共模扼流圈: 衰减USB差分信号中的共模噪声,提高数据传输质量。
六、 晶振电路
优选元器件型号:
石英晶体振荡器: 12MHz 或 24MHz,具体频率取决于CY7C63723/CY7C63722的要求,例如 EPSON FC-12M。
负载电容: 20pF-33pF,例如 Murata GRM1555C1H220JA01D (22pF)。
为什么选择这些元器件?
晶振为CY7C63723/CY7C63722提供精确的时钟源,是芯片正常工作的关键。USB通信对时钟精度有严格要求,因此需要选择稳定可靠的晶振。负载电容的选择需要与晶振的规格相匹配,以确保晶振在正确的频率下振荡。
元器件功能:
时钟源: 为微控制器内部的CPU、USB接口和定时器等提供精确的时钟信号。
频率稳定性: 确保USB通信的时序准确性。
七、 LED指示灯(可选)
优选元器件型号:
普通发光二极管(LED): 如 Everlight 19-213UYC/S530-XX (黄色)、19-213UBC/S530-XX (蓝色) 等。
限流电阻: 根据LED的正向电压和电流以及电源电压计算,例如200Ω - 1kΩ。
为什么选择这些元器件?
LED用于指示鼠标的工作状态,例如DPI切换、连接状态等。选择普通LED即可满足功能需求,根据设计美观性选择颜色。限流电阻是必要的,用于限制流过LED的电流,防止LED烧坏。
元器件功能:
状态指示: 通过亮灭或颜色变化显示鼠标的工作状态。
装饰: 提升产品美观性。
八、 PCB设计要点
电源完整性: 尽可能使用宽的电源线和地线,并确保电源线和地线形成回路。在芯片的电源引脚附近放置足量的旁路电容,尽可能靠近引脚。
信号完整性: USB差分信号线(D+、D-)应进行等长走线,且走线宽度和间距要符合差分阻抗控制要求(通常为90欧姆)。尽量避免锐角走线,减少过孔。
ESD保护: ESD保护器件应尽可能靠近USB连接器放置,且其接地端应有良好的接地路径。
晶振布局: 晶振应放置在离芯片引脚最近的位置,并远离其他高频信号线。晶振的外壳最好接地,以减少电磁干扰。
地线: 采用单点接地或大面积铺地,确保所有模块都有良好的接地。
九、 固件设计思路
基于CY7C63723/CY7C63722的固件开发主要通过Cypress提供的开发工具(如PSoC Creator或专门的CY30xx系列开发工具)进行。
USB枚举: 芯片上电后,首先需要完成USB设备的枚举过程,向PC报告其设备描述符、配置描述符、接口描述符和HID报告描述符。HID报告描述符是关键,它定义了鼠标的按键、滚轮和位移数据如何封装成报告发送给PC。
按键处理:
输入检测: 实时读取GPIO引脚状态,判断按键是否被按下。
防抖: 由于机械按键在按下和释放时会产生抖动,需要通过软件延时或定时器中断来消除抖动,确保只识别一次有效的按键事件。
按键映射: 将检测到的按键事件映射到USB HID报告中对应的按键位(如左键、右键、中键、侧键)。
滚轮处理:
编码器读取: 通过读取编码器A/B相的电平变化,判断滚轮的转动方向和步数。
滚轮计数: 累积滚轮的滚动量,并将其转换为USB HID报告中的滚轮事件。
中键功能: 处理滚轮下方的按键事件。
传感器数据读取:
SPI/I2C通信: 通过SPI或I2C接口与光学/激光传感器进行通信,读取X轴和Y轴的位移数据(delta X/Y)。
数据处理: 可能需要对传感器数据进行校准或过滤,以提高精度和稳定性。
DPI切换: 如果鼠标支持DPI切换,需要根据用户操作(如按下DPI按键)调整传感器的工作模式或对位移数据进行缩放。
USB HID报告:
报告封装: 将按键状态、滚轮位移和传感器位移数据封装成符合HID规范的报告。
数据传输: 通过USB中断端点(Interrupt Endpoint)将HID报告发送给PC。HID报告通常是周期性发送的,即使没有输入事件也需要发送空报告,以保持与PC的通信。
低功耗管理:
空闲模式: 当鼠标长时间无操作时,进入低功耗模式,降低芯片时钟频率或关闭不必要的模块,以节省电量。
唤醒机制: 任何按键按下或鼠标移动事件都应该能够唤醒芯片。
DPI切换逻辑(可选):
定义多个DPI档位。
当DPI按键按下时,切换到下一个DPI档位,并更新传感器配置或进行软件缩放。
可以通过LED颜色或闪烁次数指示当前DPI档位。
宏功能/可编程按键(可选,对于CY7C63723更适用):
如果芯片资源允许,可以实现按键宏定义,允许用户将多个按键操作录制成一个宏。
PC端软件配合,实现按键功能自定义。
十、 调试要点
USB枚举问题: 使用USB抓包工具(如Wireshark与USBPcap、Ellisys、Total Phase Beagle等)检查USB枚举过程是否正常,设备描述符、配置描述符和HID报告描述符是否正确。
按键/滚轮响应: 使用万用表或示波器检查按键和编码器引脚的电平变化是否正常,检查防抖逻辑是否生效。
传感器数据: 通过调试接口(如UART或SWD/JTAG,如果CY7C63723支持)输出传感器原始数据,验证数据是否正确读取。
HID报告内容: 使用USB抓包工具分析发送到PC的HID报告内容,确保数据格式和值与预期相符。
功耗测试: 使用电源表测量鼠标在工作和空闲模式下的电流消耗,验证低功耗管理是否生效。
EMC/EMI测试: 对于量产产品,需要进行电磁兼容性(EMC)和电磁干扰(EMI)测试,确保产品符合相关标准。USB差分信号走线、晶振布线、电源滤波等都会影响EMC性能。
总结
基于CY7C63723/CY7C63722芯片设计鼠标,是一个经典的USB HID设备开发案例。选择合适的元器件并理解其功能至关重要。CY7C63723/CY7C63722提供了强大的USB控制能力和灵活的GPIO,结合高性能的光学/激光传感器、可靠的按键和滚轮编码器,以及细致的PCB布局和固件开发,可以设计出性能优越、用户体验良好的鼠标产品。从设计初期就考虑电源完整性、信号完整性以及ESD保护,将有助于确保产品的稳定性和可靠性。固件开发是核心,需要精确处理各种输入事件,并将其转换为符合USB HID规范的报告,最终通过USB接口与PC进行无缝通信。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。