高效实战及电赛训练(3)- MCU构成数字系统的学习资源

74
0
2020年9月16日 10时07分

上一篇文章 “高效实战及电赛训练(2)- 数字系统的“控制”和“处理””中我简单介绍了一下构成数字系统核心的几种方式:

  • 微控制器MCU – 通过编程用指令来控制,比较简单、通用
  • 微处理器MPU – 用于处理密集性的场景,功能强大,但门槛较高
  • FPGA – 如果灵活使用,配合软核能够处理各种应用,潜力巨大

 

在这里插入图片描述

 

电子产品的系统构成


其中MCU是简单、直接的一种,今天就来谈一下在电赛和初学的实战项目中如何合理选用MCU以及如何高效利用资源。

 

首先,我们常常提到的“微控制器”/“单片机”/“嵌入式系统”种类繁多,多得让你发晕,如果你打开Digikey或Mouser这种元器件分销商的网站,从处理器一路点击浏览下去,你会发现有数不清的品类,因为太多的厂商在做 – 美国的、日本的、欧洲的、中国本土的。。。。有太多的流派都存活于处理器的江湖上 -8051、AVR、PIC、MIPS、Arm。。。。仅Arm又派生出一窝又一窝的小分支, Cortex就有-M、-R、-A的系列,这些字母后面还有用数字进一步分支。。。

在这里插入图片描述

在半导体的发展史上一直伴随着各种处理器的层出不穷,毕竟它是电子产品的核心部件,从构成上有冯.诺伊曼结构和哈佛结构之分,从指令集上又有CISC和RISC之别。幸的是随着半导体厂商的不断整合,同时随着Arm通过授权半统天下,今天的多数初学者接触到的大概率就是51、AVR和Arm,更具体点就是STC的51、用在Arduino上的AVR和ST的STM32 Arm,为啥这三者大行其道?STC的8051是因为其便宜、好用(But其网站惨不忍睹),AVR是因为Arduino开源硬件的全球普及,而STM32则是因为生态系统建设得最完备(想与非网当年也为STM32在中国的普及做出了突出的贡献 — 印象中从2008年开始,stmcu.org这个社区的域名还是我起的)。从这里也可以看出8位的单片机战斗力还依然是杠杠的。

 

在这里插入图片描述

 

8051单片机

 

在这里插入图片描述

 

AVR单片机(Atmel已被Microchip收购)

 

在这里插入图片描述

 

ST基于Arm Cortex M0的F042系列控制器

 

当然还有其它。。。比如TI的MSP430、Cypress的PSoC。。。。

 

在这里插入图片描述

 

选用哪家?其实偶然因素很多,比如身边一个师兄给你的推荐、给你授课的老师喜欢某一款、抑或是正好有一个活动你白嫖了一个。。。

 

这个其实不重要,重要的是你如何去学、去用,好用的未必能学到技能,踩坑才会让自己涨知识。毕竟微处理器虽然看上去千差万别完毕,但核心的东西其实都大同小异,比如:

 

内部的结构其实都包含下面的部分:

在这里插入图片描述

 

要玩转它们,你要面对的下面这些也都是要有的:

在这里插入图片描述

 

学习技能一定要避免成为“器材党”,一定要学到本质的东西,这些本质的东西对无论任何一款平台其实都是一样的,比如对外设(按键、开关、传感器)的响应;对中断的处理;多进程的调度;通过各种总线对数据的访问和对外设的控制等。

 

所以,你身边有任何机缘拿到任何一款MCU的开发板/学习板,都可以上手去学,去用 – Just use it!以后的应用场景很多,多到你现在无法想象,所以就不要多去纠结。就象你在学开车的时候只要用驾校的车练就行了,你不确定将来会开多少中不同的车,学好驾驶技能,以后可以开任何车。

 

无论是8031、AVR、还是Arm的Cortex M0、M4,无论是ST的Arm还是NXP、TI的Arm板卡,对于初学者来讲、对于备战电赛的同学来讲,这些最基本的器件的处理能力其实应该是足够的,网上也能找到非常多的可用于扩展的套件。

 

当然你需要考虑在实际的应用场景中它们会以什么的形态出现,在学习的过程中你可以用一个开发板来玩、或者购买一块Arduino来用,但在做电赛的时候你直接用开发板是否还合适(稳定性、功能)?是否需要自己重新设计PCB来实现项目或电赛中的要求?如果自己根据参考设计来设计自己的PCB,设计的难度如何?

在这里插入图片描述
在这里插入图片描述
SoM将核心的功能做好,简化了用户的PCB设计

 

在这里插入图片描述

 

基于LPC824(Arm Cortex M0)的最小系统板简化了PCB的设计

 

选定好了任何一款MCU,你要做的就是通过一些实际的项目快速上手,掌握MCU的核心技能,一些参考设计资源是必不可少的,下面我列一些:

 

  1. Arduino的Project

Hub(https://create.arduino.cc/projecthub)你是必须要看的,你脑瓜里的任何创意,指导老师让你做的任何项目,几乎都可以在这个Hub上找到别人分享的类似作品,多数都已经开源,你可以拿来参考(思路很重要):

在这里插入图片描述

 

  1. ElectronicHub(http://electronichub.com/)你也有必要知道,因为在它上面整理了无数非常接地气的与MCU相关的项目资源,看一下它的列表:

 

在这里插入图片描述

 

  1. 大名鼎鼎的Hackaday.io (https://hackaday.io/),
    这是全球最牛的一些硬件极客聚集的网站,你如果想找创意、想找思路,就在这个网站上用英文关键词搜一下吧,一下子会出来很多:
    

 

在这里插入图片描述

 

  1. 当然还有Github(https://github.com/),这个网站我就不多讲了吧。
  2. 特意提一下这个网站CircuitO.io(https://www.circuito.io/),你用了就会知道它是你学习的效率工具,看一下下面的截图就知道了,当然还有参考代码:

 

在这里插入图片描述

 

  1. 中文的几个开源社区网站也有海量的、可靠的资源来来用,比如SeeedStudio(https://wiki.seeedstudio.com/)

 

在这里插入图片描述

 

  1. 微雪(https://www.waveshare.net/wiki/Main_Page)

 

在这里插入图片描述

 

用好这些资源,对你的学习和应用会事半功倍。

 

本文转载自微信公众号“电子森林”

在这里插入图片描述

发表评论

后才能评论