[应用相关]

STm32 Alternate functions 复用功能

[复制链接]
821|7
手机看帖
扫描二维码
随时随地手机跟帖
643757107|  楼主 | 2018-11-16 09:33 | 显示全部楼层 |阅读模式
重点内容一句话:复用功能就是给STM32内部的外设使用的。

根据数据表中列出的每个I / O端口的特定硬件特性,
通用IO(GPIO)端口的每个端口位可由软件
在几种模式下单独配置:
•输入浮
空•输入上拉
•输入- 下拉
•模拟
•输出漏极开路
•输出推挽
•交替功能推挽
•交替功能漏极开路

备用功能配置
当I / O端口被编程为备用功能时:
•输出缓冲器可配置为开漏或推挽模式
•输出缓冲器由来自外设的信号驱动(发送
器使能和数据)
•施密特触发器输入被激活
•弱上拉和下拉电阻被激活或不被激活,具体取决于
GPIOx_PUPDR寄存器中的值
•每个AHB
时钟,I / O引脚上的数据被采样到输入数据寄存器中循环
•对输入数据寄存器的读访问获得I / O状态
588325bee1e6357a17.png

备用功能(AF)
在使用默认
备用功能之前,必须对端口位配置寄存器进行编程。

•对于备用功能输入,端口必须配置为输入模式(浮动,上拉或下拉),输入引脚必须从外部驱动。

注意:也可以通过编程GPIO
控制器,通过软件模拟AFI输入引脚。在这种情况下,应该在备用功能输出模式下配置端口。
显然,相应的端口不应该在外部驱动,因为它将由
软件使用GPIO控制器驱动。

•对于备用功能输出,必须在备用功能输出
模式(推挽或漏极开路)中配置端口。
•对于双向备用功能,必须在备用
功能输出模式(推挽或漏极开路)中配置端口位。在这种情况下,输入驱动器
配置为输入浮动模式

如果端口位配置为备用功能输出,则会断开输出寄存器
并将引脚连接到片上外设的输出信号。

如果软件将GPIO引脚配置为备用功能输出,但外设未
激活,则不指定其输出。


643757107|  楼主 | 2018-11-16 09:37 | 显示全部楼层
为什么输出模式有专门的复用模式而输入则没有呢。因为输出是由芯片内部电路驱动的,
必须选择这个驱动来自哪一个外设,是GPIO还是复用此管脚的其他外设,也就是选择该管脚在内部是与哪个外设相连的,不说明这个就会发生信号的错乱。
而输入则不同了,输入信号是由芯片外的信号驱动的,虽然该信号进入芯片内部后可能有不同的去向,但不需要对此进行配置,因为不会发生信号的冲突,最坏的情况就是多驱动了个寄存器而已。
105755bee1e8c09805.png
179165bee1e91661be.png




在相应位置1时,P-MOS导,通N-MOS截止,输出电压为VDD;在相应位置0时,N-MOS导通,P-MOS截止,输出电压为VSS,这就是所谓的推挽。是比较简单的。

而所谓的开漏(对三极管而言是开集,一样的原理),则要巧妙一些。所谓开漏电路概念中提到的“漏”就是指MOS FET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOS FET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。


使用特权

评论回复
643757107|  楼主 | 2018-11-16 09:38 | 显示全部楼层
对于stm32,开漏就是失能了P-MOS,这样,当相应位置1时,引脚实际上是处在了浮空的状态,而通过外接的上拉电阻,将其拉高。

这么做有如下的好处:

1、可以将多个开漏输出的引脚,连接到一条线上。形成“与逻辑”关系。当多个引脚任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。在我的**“stm32模拟iic——引脚配置、代码”中,还会提到这个问题。
2、 可以利用改变上拉电源的电压,改变传输电平。这样我们就可以用低电平逻辑控制输出高电平逻辑了。想想当初认为stm32输出3.3v电压带不动IRF540,就直接断定要重新选型,是错误的想法,只要将推挽输出变为开漏,再加上上拉到5v的电阻,就能解决这个问题。

上拉电阻的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

使用特权

评论回复
磨砂| | 2018-11-19 15:29 | 显示全部楼层
讲解的好详细啊

使用特权

评论回复
八层楼| | 2018-11-19 16:38 | 显示全部楼层
每种模式都进行了详细的解释

使用特权

评论回复
dongnanxibei| | 2018-11-19 16:45 | 显示全部楼层
库函数嵌套太多,有点难以理解。

使用特权

评论回复
heimaojingzhang| | 2018-11-21 12:57 | 显示全部楼层
很详细  但是看库函数头疼呀

使用特权

评论回复
wowu| | 2018-11-21 15:43 | 显示全部楼层
讲的好详细啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

199

主题

3689

帖子

11

粉丝