多IO口的LED驱动电路设计,精且简!
本文主要讲述的是针对电容触摸应用的MSP430单片机,这款以低功耗和外设模块的丰富性著称的硬件设备,其PIN R0电容触摸检测方式支持IO口直接连接检测电极,不需要任何外围器件,既精且简的电路设计就这样产生了。
图1
本设计文档中使用的MSP430G2XX5 更支持多达2个IO口,可驱动24个以上的LED灯,达到理想的显示效果。
电容触摸实现原理
MSP430根据型号的不同支持多种电容触摸检测方式,有RC 震荡、比较器、PIN RO,本设计使用的是PIN Relaxation Oscillator 方式,原理如图,芯片管脚内部检测电路由施密特触发器、反向器,以及一个电阻组成,震荡信号经过施密特触发器变成脉冲信号,再通过反向器反馈回RC 电路,通过Timer_A对施密特触发器的输出进行记数,再通过设置测量窗口Gate 获得记数的结果。当手指触摸电极,电极上的C 产生变化,导致震荡频率改变,这样在定长的测量窗口就能获得不同的记数结果,一旦差值超过门限,结合一定的滤波算法判断就可以触发触摸事件。
图2:PIN RO 原理图
电路设计MCU 通过一个5V 转3.3V 的LDO 给VCC 供电,使用LDO的目的是为了保证电源的稳定,让触摸电路在检测信号时不会因为电源的噪声产生过大的信号偏差。电极上串的电阻作为ESD保护器件,如果在产品结构设计合理的情况下可以省去。电路中预留了UART 口与主控系统通讯。
我们可以看到由于每一个LED的电流在10mA左右,24个LED如果同时亮就有240mA,无法通过MCUIO口直接驱动,在每个LED 上加一个三极管以及限流电阻,实现24路LED 的控制。