我如何学习与微控制器一起工作-初学者的经验

大家好 在本文中,我想谈一谈我如何学习使用微控制器的
(以下称为MK)以及我遇到的陷阱。 我必须马上说-该文章并不声称是排他性的,因为与MK合作的任何人都经历了我经历的过程。 我要你不要严格判断,而要把它读成一个故事。



而不是加入


当我10年级时,我对MK产生了最初的兴趣。 当时是2009年。 我知道如何在QBasic和Visual Basic上的PC上进行一些编程,这是一个学校程序,但是发生的原因使我对编程不了解很多,并且缺乏电子和MK方面的知识渊博的人来做他们的工作-对我来说,这是一个新的利基市场。 尽管从小就开始研究垃圾桶中的电路板和微电路,但我真的不知道它是如何工作的,没人能解释。 我在描述的事件发生仅两年后才发现晶体管如何正常工作。 当我选择第一个MK时,我在CHIP-DIP网站上查看了特性。 坦白说-对我而言,它就像象形文字。 因此,不要害怕它。 是的,那时没有人对Arduino有任何了解。

一切如何开始


在Yandex和Google处开始采摘。 我了解到控制器本身是成功的一半,我还需要一个程序。 正如引言中所述,我在编程方面没有很多。 最后,我到达了某个站点。 后来变得很清楚,我真的“了解”了这个网站。 该站点的创建者还编写了一本编程教科书,我很高兴下载了该教科书,发现的第一件事是“我使用PIC16F84A作为工作模型”。 实际上,这就是我选择第一个MK的方式。 现在的问题是为什么我“明白了”它。 我到达那里是因为这本教科书和网站的创建者建议在ASSEMBLER中编程MK。 并不是所有的实践程序员都知道这一点,但是这里是个新手……我已经订购了控制器,不幸的是,只有那时我才开始阅读教科书。

我是如何摆脱困境的


意识到自己一无所知后,我放弃了MK几年,但与此同时,我在Scheme.net等论坛上四处闲逛,逐渐了解了这个问题。 我决定顺便研究一下PIC16F877A型号。

因此,初学者需要了解以下内容:


微控制器是一台小型计算机,它还具有算术逻辑设备-实际上是处理器,还有RAM和某种硬盘-程序和数据存储器,但它们全都在一个芯片中完成。 因此,根据型号和制造商的不同,它具有以下特征(暂定):

  • 我个人在设备中使用的工作频率从大约100 MHz到100 MHz,通常是20 MHz的频率,即MEGAhertz,而不是GIGAhertz。 该频率由外部时钟源(石英或陶瓷谐振器)设置。

  • RAM-单位和数十千字节
  • 数据和程序的内存量高达几十千字节。 如果需要,可以使用存储芯片扩展存储空间以存储数据。 为了使用这些微电路来扩展程序的存储空间,初学者应该忘记,并不是每个专业人员都能正确地做到这一点,而且并不是每个微控制器都允许您在操作期间更改固件。
  • 工作电压为1至5伏,具体取决于型号和制造商。

微控制器被设计为可以在板上工作,例如在板上的特定硬件中,在设备中工作。 所以不要以为可以在其中玩CS了:)

程式语言


他开始选择一种编程语言和一个可以编程的环境。 由于我以某种方式知道Basic,所以我认为跳过它会很好。 是的,它不是很完美,仍然有很多缺点,但是从一开始它就非常适合。 我很幸运,原来有一种PIC基本语言。 据他说,有一本教科书,作者查克·赫利比克(Chuck Helibike)并被翻译成俄罗斯的领导人,实际上在教科书和手册中一直走得更远。 该环境可以在DOS下运行,但是您可以使用CodeStudio固定螺钉,并且一切都可以在Windows下运行。

程式设计师


我遇到的下一个问题是如何将程序写入芯片。 很明显,您需要一个程序员,我决定保存下来,我试图从您的Internet收集一些电路。 一个方案还不够,我们还需要一个程序,该程序使用程序员(硬件)将代码存储在内存中。 由于经验不足,我所有的实验都以失败告终。 我决定不再看芯片上冒出的烟雾,并订购了PICKit3,此后我不知道有任何问题,我玩了几天,然后它起作用了。



初学者需要知道的是:



  • 当前,有适用于MK,相同的Basic,SI和其他语言的适应性编程语言。
  • 编写程序后,将其编译为机器代码-具有HEX扩展名的文件,必须将其闪存到MK存储器中。
  • 为了“闪存MK”-向其中写入可执行代码,您需要做两件事:

    1)编程器板,它是计算机连接器和芯片本身之间的中间设备
    2)程序员程序,它将知道如何与根据特定方案组装的程序员一起工作。
    也就是说,有必要使PC上的程序知道连接到PC的电路,以便正确地刷新芯片。 就我而言,这是一种出厂解决方案-与PicKit编程器一起,还有一个包含必要程序的磁盘。
  • MK中的内存量有限,必须考虑到这一点,有时您必须切掉固件的每个字节,才可以进入芯片的内存。 还应该理解,MK中没有操作系统,而固件是MK唯一知道的数据。

关于外围的几句话


为了与外界连接并方便工作和开发,MC内置了各种外围电路,例如ADC-模数转换器,因此您可以测量提供给MK输出的电压而不会产生不必要的捆扎,但不应高于电源电压,否则应高于芯片会燃烧。 例如,使用分压器可以制作电压表。 外围设备,内置功能的数量及其特性也取决于模型,通常,模型越昂贵,软件包捆绑的越丰富。 同样,不要忘记控制器的支脚数量有限。

例如,PIC16F877A有40个,并且有7个立即飞出,因为 用于供电,连接谐振器并控制紧急复位。 您还需要仔细查看该芯片的文档。 例如,同一个ADC —在PIC16F877A中,它只能测量芯片的8个特定分支上的电压,而在其他不能测量的引脚上。 即,对于每个内置功能,分配了特定的结论,并且不能更改它们。

这个寓言的本质是这样


真正从零开始掌握MK,但是在某些地方还不是很清楚。 如果您从未遇到过编程,那么首先至少要学习编程的基础知识,然后在计算机上编写“ Hello World”。 在那之后会更容易。 如果您不想太麻烦-Arduino就是您的一切。 MK设计用于硬件-控制单元,电路板,控制器等,这不是一台成熟的计算机,而是一个控制器。 并分别期望他。 现在,这样做的好处是YouTube上有很多示例,我希望我从头开始的经历不会那么痛苦,并且我的文章对别人有帮助。

Source: https://habr.com/ru/post/zh-CN479250/


All Articles