自制单片机开发学习板

2021-01-25 01:44:37 浏览
现在产品里面基本都用上了单片机,得益于成本的下降,还记得以前上学时的AT89C51需要十几块钱一片,更别提开发工具了。目前市面上流行的单片机种类繁多,但无非也就两种架构,一种为冯诺依曼结构,采用的是复杂指令集CISC,也就是常用的C51系列单片机;另一种是哈佛结构,采用的是精简指令集。总之这两种结构各有优缺点。以前高校的专业课程里面只有51系列,所以工程师都是从C51系列开始的,C51单片机内核也已过专利期限,国内的芯片设计公司也很容易拿到IP核,最近几年C51系列单片机呈爆发性增长,例如中颖SinoWealth的8位51核单片机,在小家电上应用比较广泛,虽然都是51系列单片机,但内部资源却大有不同哦,跟学校里面的是两个概念,若是想从学校一毕业就能设计产品,从事电控开发工作,那最好是能学习这种比较流行的单片机。

学习单片机就得需要工具,简单一点的就整个在线烧录器,编写程序后直接烧录再看结果,复杂一点就需要仿真器,专业的烧录工具和仿真器都比较贵,若是舍不得花钱买工具,那么自己做一个也行吧,一来可以提升自己的动手能力,二来也可以提升自己对单片机的认识,为以后正式做项目打下基础吧。

 

这次以中颖单片机SH79F3283为例,详细介绍自制开发学习板的过程,开发学习板首先得需要将程序下载到芯片里,如何烧录呢?通常想到的都是弄一份烧录的通信协议,然后再通过电脑编写上位机进行在线烧录。但是烧录协议厂商是严格保密的,有人说那就自己用示波器分析啰,当然简单一点是可以这么做的,复杂一点就难分析出来了。在上一篇文章《一文读懂单片机远程在线程序升级》中介绍到,常用的flash单片机是可以模拟IAP功能的,完全可以绕开烧录时序这个障碍,这次就将模拟IAP功能实践一下,用于程序烧录,自制一个烧录器。

图1

若要通过电脑实现通信烧录,那么串口是最经济最简单的方案,但现在的电脑都已经没有串口了,不过不要紧,现在的USB转串口芯片已大量使用,价格也便宜。烧录的最简单电路就是只有一个USB转串口的电路,串口直接接在单片机的串口上即可,就是这么简单,电路如图1所示。

图2

芯片如图2所示,电路就具备完成,上文中提到IAP在进入时需要进行软件或硬件触发,决定是进入Block 0工作还是Block 1工作,简单一点吧,我们就以硬件触发来做,加入一个开关,开关接芯片的任一IO口,以P3.0为例,电路如下图3所示。

图3

电路完成后,就是设计BootLoader了,过程如下图4,按下开关S1时芯片上电后,程序入口从0x0000开始执行,此时先判断P3.0的电平,将检测到低电平,则进入Block 0循环运行,进入后是无法跳出Block 0的,就可以一直与电脑串口通信,并可以刷新Block 1,这就是烧录模式了。

图4

当刷新了Block 1后,在不按下S1的情况下重新上电,程序入口检测到高电平,程序则转入Block 1里面循环运行,同样,进入后只在用户程序区循环,是无法跳出的,这就是正常程序工作模式,这样也就实现了模拟的IAP功能。内部存储区分解如下表1:

表1

有人会问,这样岂不是占用了一个P3.0和一组串口吗?当然不会,因为占用P3.0和串口时是在Block 0区域,而进入用户Block 1的程序区域后,是已经释放这些资源了的,完全不干涉,照样可以正常使用。利用单片机开放的flash操作指令就可以实现烧录了,最后就是电脑端的APP设计,串口程序设计还是比较简单,目前大部分高校也都有学过,采用VC、C#之类的就可以搞定。

图5

以上图5是我在电脑端APP设计界面,将编译后的HEX文件载入后,就可以执行擦除、下载等操作,到此一个简易的烧录器就设计完成了。然后在单片机的外围再辅助一些数码管、按键、蜂鸣器等常用的模块,就变成万能的开发学习板了,下图6是我最终设计的开发学习板电路图,供大家参考。

 
文章标签:

本文链接地址: 自制单片机开发学习板:http://www.mcucd.com/s1/48.html
联系信息:单片机疑难问题咨询:方先生 手机:15328075932 QQ:67828115

版权声明 本文部分文字和图片来源于互联网,如有侵犯您的权利请发送内容至:173323810@qq.com,我们将立即删除!