大家好!今天给大家带来《带你玩转STC15第四讲》。
本讲主要内容涉及以下资源:
晶振频率@ 22.1184MHz 串口波特率@115200bps
1. RTC实时时钟使用(PCF8563)。
2. IAP15F2K61S2模拟IIC时序。
3. IAP15F2K61S2串口1发送实时时钟数据。
4. 定时器1(串口波特率发生器)。
/********************************************************/
本讲源码下载:
PCF8563芯片资料下载:
/********************************************************/
本讲开始前我得先吐槽一下~不知道谁干的,居然将楼主板子的VCC和GND(LCD12864的BLK与BLA引脚)用跳线帽短接,导致楼主进程推迟。
起先是这样的,楼主准备下载程序,忽然闻到一阵焦臭味,转身去问谁烧东西了,还是谁东西被烧了,大家查看没事儿后,楼主一转身,忽现一阵青烟,下意识的撤掉了USB线缆,此时电脑自动保护,把USB端口切断,并提示出现浪涌。那叫一个郁闷啊~
然后楼主毫不犹豫的吹下了这个芯片。
打开焊台开工
大家注意红圈
紧接着,按照惯例,查看芯片资料,先确定是什么参数的器件,再找替代。
以上网址是常用datasheet查询网址!
大家看了上面的参数会发现,这个器件是个大功率晶体管。
前面几讲我们说过,这个晶体管所构成的是一个冷启动下载电路,如图:
下载电路
当按下按键SW19后基极会被USB的电压置为高电平,也就是Q2截止,而单片机的电源是来自VCC这个网络节点的,当Q2截止后,也就意味USB的电源不能到单片机,就实现了冷启动下载。
然而我冥思苦想都想不到的是,这个大功率的三极管怎么能在USB供电的情况下就冒烟了呢?
看资料上说射极电压到基极电压为-6V(这里为何是负值,却用在+5V VCC的情况下楼主不解),这让我联想到钽电容,为什么呢?因为不得不说,用过钽电容的都应该知道它的脆弱,还记得有一次,楼主为驱动大功率电机购买了一块BTN7960芯片做的驱动板,拿到手后作正常上电的测试,结果火光四溅,定下神一看,钽电容直接炸成两截,看电路图,是个滤波电容,那时的楼主非常挑剔,就去问工程师:“你们不是号称16V供电没问题么?怎么我12V就炸电容了?”工程师是这样解释的:“我们平时模块出售的时候是针对9V电机的,虽然钽电容标称16V耐压,可是我们没实际测试过12V情况,钽电容也脆弱这大家都知道~”。于是得到这一解释后,楼主不爽了:“既然这样怎么不用25V耐压的钽电容?又不是大批量生产要严格把控成本!”后面态度越来越差,楼主最终选择了退货(说实在的,其实没必要用上钽电容的,估计只是来个卖相)。
回归正题,由钽电容这种脆弱的东西(其脆弱在耐压值小,且耐压性能参差不齐),我只得认为这个三极管质量不过关!
紧随其后楼主确定了问题,准备换一个正常的PNP三极管尝试一番,然后去预热焊台,这下新的问题又来了….焊台不工作,根据老经验,焊台的电源线又莫名其妙的断了(之前出现过一次,表面无损,万用表蜂鸣档测量不通),于是准备拆开换一根,如下图:
白光936焊台内部
到此时,楼主想了却一个多年的愿望……楼主的焊台与手柄接头是普通塑料的,看起来很没档次,也不扎实,于是想换为楼主有段时间特意购买的航空插头。然后开始拆解~
后面发现航空头是6个端,焊台的接头是5个端,PCB插不进去,于是只得用切割机将航空头打磨成5个端,这时~新问题又发生了,切割机打开后转一下就停了,那个郁闷啊~一天坏多少东西,然后赶忙打开切割机找问题
切割机内部
最开始怀疑的是这个电动工具开关有问题:
电动工具开关
后面楼主发现自己错了,是没搞清楚开关的工作原理,就想着普通开关那种邻边闭合导通,后面仔细想想,不对啊~一端接零线与火线,那一闭合不就又要看烟花了,调整思路,还是老经验了~电机最重要的地方——碳刷!这玩意居然松了,后面好歹还有个像发条的东西在支撑。OK~故障排除,最后焊台这边一切就绪。
找了把大锤子,把手柄这端砸开换头,结果砸开后,固定线的底座也裂了,线序散了,最后努力拼接出了个大概,留下了50%几率(红线和黑线)。
手柄线序
其中线的定义是这样的:
1.手柄发热芯的正负电源 2根
2.热电偶的正负端 2根
3.地端 1根
结果楼主又是老经验了~知道手柄要是连接不正确,焊台是不会工作的,也就是灯不亮,于是果断蒙了下,然后最终成品
是不是瞬间高大上了?
上电~OK!工作了!至此,焊好那个PNP三极管。
焊接三极管的时候,我看到了三极管下方的LCD12864的排针上,怎么多了一个跳线帽,这下我恍然大悟了,BLA与BLK短接,相当于VCC和GND短接。那这不要了命?
再上电测试,无短路现象,插上USB,能识别,但是下载不进程序,楼主换PL2303串口下载器,同样失败,最后只得确定芯片也坏了。
无奈只得换一块板给大家来上这一讲了!(快鼓掌)
/********************************************************/
这一讲着重是关于板上资源RTC(实时时钟),利用了PCF8563这个芯片。
为什么要使用RTC呢?
通常情况下,在需要使用到时间显示的场合,譬如:显示年/月/日,时/分/秒。在这种情况下,使用单片机自身的定时器是很不方便以及占用定时器资源是很不科学的,利用PCF8563这个芯片是很靠谱的,外带32.768KHz这个晶振,能准确产生1s的计时,同时这个芯片还带有年/月/日,时/分/秒报警功能。
我们主要通过IAP15软件模拟IIC时序来与PCF8563通讯,最终将数据通过串口显示出来,效果如下图:
串口助手现象
由于数据位定义的问题,我们的年并不能完整显示:“2014”这种样式,有兴趣大家可以尝试自己修改玩玩~
同样,程序中包含了完整的注释!大家可以下载查阅!
这里唯一需要注意的是模拟IIC时序,其中5us的延时一定要精准,我们这里是通过下载器来生成的,如若不准确,则主从机之间是无法通讯的!也就是不能获得数据和写入数据。
/********************************************************/
总结:
发现问题,一定要耐心的,逐步排查问题所在,不能盲目的慌乱,或者没有头绪。要善于去查阅资料,不查看资料很难知道问题出在哪~
老话再说一次:STC的下载器就是神器,大家要好或利用它!同样的STC的芯片手册也是神书,里面所有的问题都解释很清楚,要善于查阅资料!多动手,不懂了再回去查!
/********************************************************/
UltraFire:分享使人进步,同时发现自身不足!
以上就是本次玩转STC15第四讲的全部内容,感谢大家的阅读观看!
祝大家元旦快乐!
新年新气象!
感谢大家的支持!局限于作者知识,如若有错误、不足大家可以提出!
共同进步,共同学习!
若有疑问可直接在下跟帖提问,UltraPlus会根据你的疑问为你解答!
提问格式:
问题标题:
问题描述:
问题现象:
最后,衷心感谢大家的支持!
UltraPlus
2014-12-31