软硬兼修讲解STM32从原理图PCB到移植RTOS

2018-10-10 13:16:41 来源:硬件十万个为什么
标签:
PCB   RTOS

 

关于为什么我们软硬件都要懂?

2010年,我在华为时,暂时脱产去参与招聘工作;为了为本部门招聘更多的人,争夺HC号(招聘入职的名额),所以非常卖力的希望每个来面试的,符合硬杠杠的面试者都能通过层层面试。
华为是如何研发的(21)——面试

 

因为华为招聘的时候,低级别招聘时有很多硬性条件,比如:学校要满足要求、不能频繁跳槽、不能有留级、复读;要过技术面试、集体面试、心理测评,最终送给终面官做终面;然后送人力资源审核,总部审核。

 

我们招聘锻炼干部,为了完成招聘任务,都是技面放水、集面指导、心理测评暗示;拼命把 学校满足要求的人送到终面。

 

有次在青岛的时候,当天通过面试的人很少。终于逮到一个学校勉强满足要求的面试者,技术有点烂。我们一路放水。最终把他送到部门老大那里做终面。

 

结果,没过一会部门老大出来跟我说:“让他走……”。

 

我把哪位来面试的小伙子送走了之后,问老大:“刚刚那个硬性条件都满足要求哎,为啥不要啊?”

 

 

老大叼根烟,跟我说:“一个搞单片机的,搞三年了的,只会画电路,不会写代码。。。一是学习能力弱、二是不好学、三是现有技能基础太弱。我们招聘过来虽然是来也只是画电路的,但是电路复杂度比简单的单片机系统复杂得多。一个只能画MCU电路的,都不知道学习代码,得弱到什么程度。不要不要!”

 

我当时不理解,觉得领导挑人随心情,不体恤我们这些招聘的锻炼干部的辛苦。过第二天到了济南,老大跟我说:“这些人招聘进来,都是要给你做下属的,如果很难带出来,也是给你自己找麻烦。”

 

不过现在想来,觉得不无道理。

 

前期经典文章软硬兼修

我们通过这篇文章,从芯片内部原理、电路设计、软件开发、软件运行,全流程看一下GPIO初始化、工作的全过程。帮助很多朋友只做MCU硬件的,又很想提升的朋友,进行学习和理解。

 

【1、熟悉芯片的内部结构和工作原理】

任何开发,我们都应该去看厂家的Datasheet和设计参考先,其他的教材、文档、书籍、网站、博客,都是基于原厂的资料进行编辑的。

 

所以我们应该下载并仔细阅读下面两个文档:

 

 

https://www.st.com/resource/en/datasheet/cd00191185.pdf

 

 

https://www.st.com/stonline/products/literature/rm/13902.pdf

 

上面两个链接可以复制到电脑进行下载。

 

也可以在硬十的论坛的iBox专题进行下载:

https://www.hw100k.com/forum.php?mod=viewthread&tid=3511&extra=

 

STM32实物图:


 

STM32的144个管脚,除了为芯片供电的电源、GND、时钟、复位管脚之外,几乎所有管脚都可以用作GPIO

 

2. STM32,LQFP144PIN的引脚分布图:

 


STM32F103ZET6:共144个引脚,7组IO口,每组16个IO口

7*16=112个IO口(这7组IO口分别为GPIOA,GPIOB…GPIOG)
例如:PGIOA包含PA0,PA1,PA2…PA15,每组16个IO口。
从硬件上面,按照:A、B、C、D、E、F、G分为7组。

 

每组有16个管脚。

 

IO口的基本结构和工作方式

 


stm32的GPIO的配置模式有好几种,包括:

 4种输入模式
   输入浮空
   输入上拉
   输入下拉
   模拟输入
 4种输出模式
   开漏输出
   开漏复用功能
   推挽输出
   推挽复用功能

 可配置3种最大翻转速度
   2MHz
   10MHz
   50MHz


1、模拟输入;

部分管脚可以用作ADC的输入管脚,需要通过软件进行配置。

当我们把对应的GPIO配置成ADC的功能。

 

 

则信号接到GPIO的管脚,会被MCU内部集成的ADC进行检测。

 

 

从上图我们可以看到,我觉得模拟输入最重要的一点就是,他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我觉得这一点也是很好理解的,因为输入数据寄存器中存放的不是0就是1,而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器。该输入模式,使我们可以获得外部的模拟信号。

 

 

如果信号不作为模拟信号输入,可以作为数字信号输入。

 

数字信号输入时,可以配置上下拉电阻:高阻状态、无上下拉,为浮空输入。

 

上拉电阻打开,则为上拉输入、如果下拉电阻打开,则为下拉输入。

 

  

 

上拉和下拉部分均为关闭状态(AD转换-模拟量转换为数字量)
施密特触发器为截止状态
通过模拟输入通道输入到CPU
IO口外部电压为模拟量(电压形式非电平形式),作为模拟输入范围一般为0~3.3V

 

2、 浮空输入;

 

 

该输入状态,我的理解是,它的输入完全由外部决定,我觉得在数据通信中应该可以使用该模式。应为在数据通信中,我们直观的理解就是线路两端连接着发送端和接收断,他们都需要准确获取对方的信号电平,不需要外界的干预。所以我觉得这种情况适合浮空输入。比如我们熟悉的I2C通信的输入状态。

 

 

1)外部通过IO口输入电平,外部电平通过上下拉部分(浮空模式下都关闭,既无上拉也无下拉电阻)
2)传输到施密特触发器(此时施密特触发器为打开状态)
3)继续传输到输入数据寄存器IDR
4)CPU通过读输入数据寄存器IDR实现读取外部输入电平值。在输入浮空模式下可以读取外部输入电平


3、上拉输入;

上拉输入就是在输入电路上使用了上拉电阻。这种模式的好处在于我们什么都不输入时,由于内部上拉电阻的原因,我们的处理器会觉得我们输入了高电平,这就避免了不确定的输入。这在要求输入电平只要高低两种电平的情况下是很有用的。

 

 

 

和输入浮空模式相比较,不同之处在于内部有一个上拉电阻连接到VDD(输入上拉模式下,上拉电阻开关接通,阻值约30-50K)
外部输入通过上拉电阻,施密特触发器存入输入数据寄存器IDR,被CPU读取。

 


4、下拉输入;

和上拉输入类似,不过下拉输入时,在外部没有输入时,我们的处理器会觉得我们输入了低电平。

 

 

  

和输入浮空模式相比较,不同之处在于内部有一个下拉电阻连接到VSS(输入下拉模式下,下拉电阻开关接通,阻值约30-50K)
外部输入通过下拉电阻,施密特触发器存入输入数据寄存器IDR,被CPU读取


5、开漏输出;

开漏输出,输出端相当于三极管的集电极,所以适合与做电流驱动的应用。要得到高电平,需要上拉电阻才可以。(例如模拟软件实现I2C的输出)

 

 

  

 

1,CPU写入位设置/清楚寄存器BSRR,映射到输出数据寄存器ODR
2,联通到输出控制电路(也就是ODR的电平)
3,ODR电平通过输出控制电路进入N-MOS管
  -ODR输出1:
   

N-MOS截止,IO端口电平不会由ODR输出决定,而由外部上拉/下拉决定。
 

在输出状态下,输出的电平可以被读取,数据存入输入数据寄存器,由CPU读取,实现CPU读取输出电平。
 

所以,当N-MOS截止时,如果读取到输出电平为1,不一定是我们输出的1,有可能是外部上拉产生的1。


 

-ODR输出0:
  

N-MOS开启,IO端口电平被N-MOS管拉倒VSS,使IO输出低电平。
  

此时输出的低电平同样可以被CPU读取到。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
NCAB集团在马来西亚成立分公司,总经理已到位

“在较长一段时间内,我们考虑在马来西亚拓展业务的可能性。我们看到整个东南亚电子市场蓬勃发展,尤其是马来西亚国内对多品种小批量PCB需求不断增长。槟城更是许多国际大型EMS以及本地EMS的制造基地,所以NCAB马来西亚将会是我们继续扩展到周边国家的基地。”NCAB集团首席财务官Anders Forsén 在一份新闻稿中表示。

Eugene

5G时代基站需求催生高速PCB及材料需求爆发

5G频谱远高于4G,电磁波穿透力差、衰减大,在不考虑其他因素的条件下,基站的覆盖范围比4G基站覆盖范围更小,建设密度更大。其中,5G低频资源主要用于连续广覆盖、低时延高可靠、低功耗大连接等应用场景,主要载体是5G宏基站,中信建投预计我国5G宏建站密度将至少是4G基站的1.5倍,总数或将达到近600万个。

捷多邦携福猪给您送礼啦,最高可得2019元

新年伊始,万象更新,送走不平凡的2018,我们又以崭新的面貌,继续“中国制造”的征程。让我们一起牢记梦想,为创新中国砥砺前行。再出发,请先收下这份小小礼物

深南电路:目前5G处于研发板和样本阶段,对公司营收贡献不大

近期,深南电路与来自台湾申万宏源证券、新加坡政府投资公司、台湾永丰金证券、台湾国泰证券的投资者进行了电话会议。会上,深南电路表明,公司2018年业绩增长主要是来自于国内4G扩容和海外市场4G的建设,2018年5G主要处于研发板和样本阶段,对公司营收贡献较小。

PCB电路板过孔设计的艺术

过孔(VIA),电路板上的孔,连接不同层之间的线路,把电路板从平面结构变成立体结构。

更多资讯
看不懂芯片后端报告怎么做个合格的前端设计工程师
看不懂芯片后端报告怎么做个合格的前端设计工程师

首先,我要强调,我不是做后端的,但是工作中经常遇到和做市场和芯片同事讨论PPA。这时,后端会拿出这样一个表格:

Pasternack推出4种不同接口的毫米波可移动发射端PCB连接器扩展线

Pasternack Launches Expanded Line of Millimeter-Wave Removable End Launch PCB Connectors with 4 Different Interfaces

PSpice绘制电路图和电路仿真教程

目的:通过本例的介绍,将详细说明如何运用PSpice软体绘制电路图,初步掌握符号参数、分析类型的设置,并会从Probe窗口看输出结果。

弥补变压器EMI短板的创新解决方案:磁隔离技术

半导体技术的进步将电路尺寸不断压缩,曾经用一个大房间才能存放的大型计算机性能今天一台笔记本就可以做到,集成电路的集成度已经达到单芯片数亿晶体管的规模。

PCB抑制干扰设计,这47个原则你不得不知!

电流导致辐射,而非电压,静态电荷产生静电场,恒定电流产生磁场,时变电流既产生电场又产生磁场。任何电路中存在共模电流和差模电流,差模信号携带数据或有用信号,共模信号是差模模式的负面效果。

电路方案