经常有人问,“如何学电子设计开发?”
多数的回答,大概是这样的:
先学《模拟电子》和《数字电子》,然后......
其实,然后就没有然后了。
鉴于单片机的趣味性比较好,我觉得从学习单片机开始进入电子设计行业,不能说zui好,也算是非常好的一种方式了。
在学习单片机的过程中,可以同时学习遇到的硬件电路原理,以及C语言。
以单片机为中心,以前不知道C语言有啥用,这下也用上了,顺便学一些“波及”到的电路知识,三种知识融会贯通。
学单片机就必须要有一个单片机开发板,道理很简单:如果你要学车,你只看如何开车的视频教程,而不去亲自上车,那估计一万年也学不会。
那什么样的开发板,适合新手呢?
第一个,一定要可以学习和实操全部的单片机基础知识。
这些基础知识包含:IO口、PWM、定时器、ADC模数转换、串口通信、I2C通信、SPI通信、并口通信、看门狗、低功耗电源管理等。
宏晶STC51单片机无疑是zui适合的,首先它的教材渗透到了各大高校,好多老师也都是使用它进行教学。再有,它的确是非常简单,网上资料超级丰富,特别适合初学者。
第二个,除了学到上面的基础知识外,还可以在开发板上做一些项目出来。
好多人拿普通开发板学习以后,感觉都学会了,却又还感觉什么都做不了。一个人感觉也就算了,偏偏是几乎所有人都是这样的感觉,你说奇怪不奇怪?
究其原因,就是缺少项目的操练。你说那些普通的开发板上,要说也有项目,不过呢,都是一些“哄鬼”的小玩意,比如什么智能浇花系统、烟雾报警系统,做出来的东西,实用性太差,连自己都不相信这个系统能用在实际中...
因为实际应用中,你做的那个浇花系统。首先从外观上看,乱七八糟,一看就不是个产品。然后,线绕的那么多,稳定性实在太差,谁看了都给差评!
考虑到以上两点,我们看看能不能设计出一款可以完美解决以上两个问题的单片机开发板。
-----------我是分割线----------
第一个:要可以学习全部的单片机基础知识。
1、IO口
IO口就是输出输出口,单片机归根结底,耍的就是IO,作为初学者,IO口是开启新世界的钥匙,必学!
作为“输入口”学习,那没有比“按键”更适合初学者的了,按键在教我们理解引脚的输入时,功不可没!不论“触摸”多么占据社会的风潮,按键是必须放到开发板上的。
放多少个呢,多了浪费,少了不够,我们就放3个按键到开发板吧,可以实现大部分的电子项目了。
作为“输出口”学习,那没有比“LED”更适合初学者的了。多少初学者,因为点亮一个LED,而兴奋不已。
为了增加趣味性,这里我们使用红黄绿3种颜色,3个LED,既可以实现3LED的流水灯,又可以模仿红绿灯系统的运行过程,熟悉C语言的执行流程。
2、PWM脉宽调制
PWM输出,也是初学者必须掌握的一种知识,可用于呼吸灯、电机控制、舵机控制等场合。搞单片机的不会PWM,那不是搞笑了嘛。
利用上面的LED,可以做呼吸灯实验,这个是利用调PWM的占空比实现的。
再来一个调频的吧,加一个无源蜂鸣器,记住,是无源的,咱不要有源的,无源蜂鸣器配合PWM,可以输出do ri mi fa so la xi音调,制作音乐不是梦。
用IO口模拟PWM,可以增加初学者对PWM原理的理解,不过,模拟PWM后,单片机恐怕再不能干其它事情,所以,如果单片机有硬件PWM,那就完美了...先学模拟PWM理解原理,再使用硬件PWM做更多项目。
3、定时器、UART串口、看门狗
这几项内容,是普通单片机的标配,当然STC单片机都有。
4、ADC模数转换
万物互联,传感器大爆发,ADC作为一种可以把模拟电压转换成数字电压的外设,越来越需要。
所以我们还需要找一款自带ADC外设的单片机。
用ADC做什么实验学习呢?不如给我们的产品中加一个锂电池,用ADC来测量电池电压。
开发板加锂电池,这个主意不错,可以让我们的开发板制作更多移动便携项目。
5、I2C口
以前,我们学习I2C通信,总是喜欢用24C02来教学,但是,STC单片机本身已经自带EERPOM,再在电路中接一个24C02,总感觉哪里不妥。
不如,我们找一款I2C通信的其它芯片,选来选去,就选3轴加速度传感器吧,有了它,不仅可以学习I2C通信,还可以给我们带来更多的无限创意。
6、SPI口
考虑到产品的趣味性,这个开发板,我们必须带一个屏幕,屏幕上要显示汉字,那就必须要一颗存储容量足够大的外部FLASH芯片,用来存放汉字的字模。
这里我们选择SPI口通信的25Q64,8M容量,可以放好几种不同字体、不同像素大小的字库。
7、并口通信
以上提到的UART串口、I2C口、SPI口,都是串行通信的典范,几乎所有的外部传感器和物联网通信模块,都使用这3种其中的一种。
为了让初学者更好的理解串行通信和并行通信的区别,我们必须要加一个并行通信的器件。
我们选择8位并行通信的液晶屏,12864就是8位并行通信,不过,12864和彩色液晶屏比起来,效果差了点,况且,8位并口驱动的彩色TFT,接线方法和12864一模一样,学习同样的知识,不如来个效果好的吧。
常见的开发板上配的TFT,是2.4英寸、2.8英寸、3.2英寸,它们的分辨率都是240*320,而且都是普通的正视屏,稍微歪着看,就“走色了”,这种效果的屏,做产品已经不被人接受了,就好像你用了固定硬盘后再用机械硬盘的感觉是一样的。
320*240的分辨率,对51单片机来说,其实已经很吃力了,我们就不追求更高分辨率的屏了,但是,我们知道,在同样的分辨率下,越小的屏,越清晰,效果越好,所以,我们从这一点入手,选择2.0英寸的屏。
这次,必须要选择IPS多角度屏,这种屏,才是我们现在人们可以接受的。我们既然要在开发板上做项目,那就必须做成产品级的。
8、低功耗电源管理
这个就不必多说了,低功耗就是电子产品的趋势。所以,我们需要单片机带低功耗管理单元,以方便初学者学习。
----------我是分隔线----------
以上呢,就是我们对开发板的要求,综合以上因素,我们选择STC最新推出的STC8G2K64S4,作为开发板的主控芯片。
这款单片机,带10位ADC、硬件PWM、硬件I2C、硬件SPI、4个UART串口、5个16位定时器、低功耗管理单元,简直是为初学者量身定制的单片机。
----------我是分割线----------
第二个:除了学习基础知识,还要能做产品级项目
有人说,这太过分了,既能学基础,还能做产品,你咋不上天呢?
这个还真被我给想到了,你们接着看。
普通开发板,考虑到开发需求,会把所有的引脚都用排针引出,然后呢,又不能被屏幕挡住,所以做的个头比较大。
但是呢,用排针引出的那些引脚,绝大多数都已经被开发板上的芯片使用了,很少有人在使用这些引脚连接外部模块。
其实呢,我们只需要引出开发板上芯片没有使用过的单片机引脚就可以,而且呢,我们可以把排针或者排母放到电路板的一面,把液晶屏放到电路板的另一面,这样就可以缩小电路板体积,更加的贴近实际的产品。
另外,开发板上引出的引脚,比如要有普通IO、PWM口、UART串口、I2C口、SPI口、ADC模数转换口,以方便连接更多的外部传感器和通信模块。
--------我是分割线还是分隔线--------
锂电池要拔下来,再配个充电器?不不不,那是古老的电子产品。
我们给开发板上加一个锂电池充电芯片就可以了,比如TP4056。
再加一个USB转TTL芯片CH340,实现程序下载和串口通信。
STC程序下载麻烦,需要强制开发板断电和上电?
不要紧,我们给他加一个按键电源开关,只需轻轻一点,就可以实现下载,还能当做复位按键,一举两得。
------搞不清是分割线还是分隔线------
综合以上考虑因素,开发板的原理图就出炉了,如下所示:
看不清?文章后面提供源文件下载链接。
做出PCB来,一面是这样的:
另一面是这样:
只有板子,怎么看也不像个产品,设计个外壳加上去吧。
效果图如下:
先来个3D打印,效果如下:
实测,3D打印的外壳,不耐摔,只要掉地上,摔烂的几率非常大,不要问我是怎么知道的...
既然要做产品级,我们还是找个模具厂做壳吧,虽然有点贵,但模具做出的壳子,手感和质量都是非常OK的,也是非常哈啦瘦的...
背面的那些引脚,不如再把引脚名称加上去,方便我们连接外部模块。如下所示:
因为背面外壳空间有限,只能写它的IO引脚名称,那些复用的引脚名称,就看下面这张图,我要的UART、I2C、SPI等,应有尽有。
--------我是分割线--------
开发板做好了,当然还要做好对应的例程代码,用于学习。
首先,针对全部基础知识,做好基础例程。
基础例程学完了,那总得做点项目吧?来,应用例程也做好。
想知道应用例程和实际产品相差多大?来,上图。
双轴数字水平仪
数码相框
重力感应游戏-射击苹果
综合例程
除了以上的项目,还可以开发出更多的项目,加上外部扩展接口,实现更多可能,更多创意,就等你去实现了。
有人怀疑51单片机刷屏的速度太慢,来看看这个视频中数码相框的效果,这速度,毫不逊色与Cortex-M0。
感谢大家把文章看到了这里,为了表示谢意,赠送10个开发板给大家。领取方式:本篇微信公众号,截止2021年6月15日中午12:00,留言的前10名,每人一个。
友情提示:1、走心的留言,才会被后台通过;2、点赞越多,排名越靠前。
获奖的小伙伴,加我微信(253057617)领取。
等不及的急性子小伙伴呢,现在就可以去某宝下单了,搜索:学电51单片机开发板,或者店铺名称:学电超人。
资料链接:https://pan.baidu.com/s/1Wbdvx-enD0m9RHfIpnuOWg
提取码:w1cv
技术讨论交流群