|
R7F0C80212项目分享——锂电池供电的按摩器
[复制链接]
这个活动快结束了,把之前的项目总结和大家分享一下!简单罗列了一下,没有怎么组织语言,让大家见笑了!
目前消费市场的保健按摩器材比较火爆,随着动力锂电技术这两年在消费市场的成熟,便携式的保健按摩产品在国内市场逐渐兴起,怎样能把动力锂电保护做得既简单又安全,一直是大家在研究的课题。借EEword 论坛搞这个Renesas 低成本MCU的推广活动,介绍一下基于R7F0C0802这款单片机的动力锂电池保护方案。
传统的锂电池保护方案一般是基于专用IC,像精工和理光的锂电池保护芯片。使用这种芯片好处是,电路简单,安全可靠。但缺点也很明显,使用很不灵活,对于不同节数的电池,需要不同型号的芯片,电路难以做到兼容,而且对于电机难以控制,另外动力型的产品,很难选择合适的过流保护电流。采用单片机的方案可以灵活的实现电池保护和控制,并且可以实现电机的调速控制。基于这个想法,所以采用了R7F0C0802来开发这个方案。
方案原理图见附件。
锂电池的保护都是基于电压的,最关键是充电截止电压和放电截止电压。利用R7F0C0802的ADC的AIN0管脚采样电池电压,控制充放电。ADC的参考源选择了VDD,由于ADC的精度可以达到10bit,这样只要保证U2(LDO)的精度,就可以比较精确的控制充放电的截止电压了。同时还可以利用AIN1检测系统的放电电流,实现对于电机的过流和堵转保护功能,电路也十分简单。
由于充电适配器的电流一般不会太大,一般设置在300Ma ~ 1A左右,而按摩器的放电电流较高。为了避免插上充电器放电后,充电器直接对电机放电,造成电路和充电器损坏,增减了充电器检测逻辑,利用P137检测充电器的电平。同时,P137又是外部中断的输入口。当控制器放电截止后,为了降低提供功耗,由于不需要保存RAM数据,单片机进入到STOP模式,看了数据手册,这个模式下大概只有1μA左右的电流,这是对比于国内和台系一些单片机非常大的优势,用于电池供电的系统尤为重要,大大降低系统功耗。此时,单片机开启外部中断,插上充电器又可以通过P137唤醒STOP模式的单片机。
电机调速是该项目的一个设计重点,利用软件调速,程序量较大,本身的Flash只有2K,不太现实。用硬件PWM,需要占用两个定时器资源,这个单片机的定时器只有两个Channel,Chanel 0用于PWM 主定时器,产生可调的PWM频率,Chanel 1用于调节占空比。两个定时器都被占用掉了,由于系统运行还需要一个定时器,这样定时器的资源岂不是不够了?
想了很久......有仔细看了看Datasheet,终于惊奇的发现被自己忽略的地方,原来用于PWM主的定时器还可以同时产生定时中断,这样配合软件计数,就可以调试系统定时的时间了,实现了一个定时器的多用功能。所以最终选择P0.4作为电机的控制输出,利用PWM实现电机调速功能。
其余的I/O口,P0.3作为输出,连接一个LED指示灯,指示充放电状态,P0.0作为输出用于充电的控制。
总体来说,这个项目用到了7个I/O,Flash用到了1.9K,基本上用满,没有溢出,对软件的算法也进行了优化。单片机的模块用到了定时器、看门狗、ADC、LVD、外部中断等功能模块,基本上这个单片机的资源得到了充分的发挥。
总结经验,遇到问题的时候不要慌,更不要急于发帖求助,因为你的应用别人不一定碰得到。通过仔细阅读datasheet和相关资料,总能找到你需要的答案,自己解决了问题,比别人提供的答案,更加能使你进步,并且记忆更加深刻。在我们拿到一个新的单片机时,应该先看一下datasheet和编译器手册,对比一下和我们之前用过的有什么不同,大体都是通的,但是总有些差别额地方,硬件的设计和软件编程的语法等等。很多人估计不喜欢看datasheet,更别说是编译器手册了,内容太多,我觉得自己挑一些重点看看,知道大概的地方就行了,可能好多人还不知道编译器手册在哪里。我觉得我们在做项目的时候不要着急去做,遇到问题更不要急于抱怨,而是准备好相关的资源,遇到问题及时查找,这样效率就很高了。
晒一下实物板子,产品就不晒了,涉及到别人的专利和权益。
|
|