0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于tb6612芯片和红外避障模块的IO输出输入模式

电子设计 来源:mcu中文技术社区 作者:Vanilla.044 2021-02-14 06:33 次阅读

最近一周多的时间开始学习并自己动手制作了一个循迹小车,主要运用的就是tb6612芯片以及红外避障模块,这篇博客主要就是总结一下在制作小车过程中学习到的知识以及问题。

一、有关IO输出输入的总结

在这次小车制作中,我使用到的有tb6612电机驱动芯片和MH-Sensor-Series红外循迹避障模块,两者的使用方法都不是很复杂,只需要在对应的引脚上接高低电平或者接输入引脚即可,但正是这么基础的引脚操作中也发现了很多小细节,有同学在制作小车的过程中就遇到了写完代码根本没达到预期效果,后来才发现是一些引脚的模式或者使能问题,因此我也更详细学习了一下IO口的八种输入输出模式。

下面就是我个人对这几种模式的理解

一、输入模式

1. 浮空输入(GPIO_Mode_IN_FLOATING)

该模式主要针对芯片本身,以及其他的逻辑器件(即由大量逻辑开关组成的元器件),在该模式下,引脚既不表现为高电平也不表现为低电平,如果用电压表测量测得的可能也有所不同。

浮空输入大多数情况就是代表该引脚什么都不接,但是在网上也有说可以用于ADC传输数据使用,但我并不了解。

这个模式基本用不上,如果以后我有使用会在这里记录。

2. 上拉输入(GPIO_Mode_IPU)

在上拉输入模式下,引脚什么都不接的情况下表现为高电平,当连接到TTL(高电平低电平)信号时,会发生改变。

在没有输入或者是输入为高电平时,其电压为高;输入为低电平时,电压为低。

这里要注意的是没有输入的时候就处于高电平,适用于那些平常状态输出高,特殊状态输出低的模块。

3. 下拉输入(GPIO_Mode_IPD)

和上拉输入类似

在下拉输入模式下,引脚什么都不接的情况下表现为低电平,当连接到TTL(高电平低电平)信号时,会发生改变。

在没有输入或者是输入为低电平时,其电压为低;输入为高电平时,电压为高。

这里要注意的是没有输入的时候就处于低电平,适用于那些平常状态输出低,特殊状态输出高的模块。

4. 模拟输入(GPIO_Mode_AIN)

模拟输入不同于以上三种输入模式,前面三种模式都是数字信号的输入也就是非高即低的信号,而模拟输入就是输入未经处理的信号,可以是一段连续的电压不固定的信号。

往往在数模转换中需要用到,比如读取某个引脚的电压值,这个电压值就可能是PWM波形,使用模拟输入就可以讲信号不经处理的传给ADC模块进行分析。

二、输出模式

1. 开漏输出(GPIO_Mode_Out_OD)

在开漏模式下,控制IO输出低时IO口输出低,控制IO口输出高时IO口既不输出高也不输出低,电压不确定。(由外部驱动,降低芯片的驱动压力)

在使用该模式时,通常外接一个电阻,通过这个电阻来给予高电平。“推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合”

或者在推挽输出模式下我们输出的电平是3.3V,但是我们想要达到一个5V的输出,就可以采用开漏输出,通过外接一个上拉电阻来控制我们的电压能够达到5V。

再或者可以用一个IO口进行双向的数据传输。

首先从引脚往外这个指向来说,引脚输出低时IO为低,引脚输出高时外部可以由上拉电阻将IO上拉为高。

其次从外往引脚这个指向来说,由于IO的高低电平与外部上拉电阻有关,也就可以通过外部上拉电阻的有无来 反向控制IO的高低,之后可以运用寄存器读取IO状态从而获得外部的电平信号。这样就可以达到IO口的双向功能。(仅个人理解)

上拉电阻的阻值不仅影响输出的电平高低,还影响着信号的延迟,阻值越大信号也就越延迟但是功耗小。

2. 推挽输出(GPIO_Mode_Out_PP)

引脚输出低时IO为低,引脚输出高时IO输出高。

3. 推挽复用输出(GPIO_Mode_AF_PP)

可以使用IO口的第二功能,例如定时器、串口等。相当于是输出信号更多样的推挽输出。

输出PWM信号时需要使用该输出模式。

4. 开漏复用输出(GPIO_Mode_AF_OD)

可以使用IO口的第二功能,例如定时器、串口等。相当于是输出信号更多样的开漏输出。

二、PWM输出的一些总结

1.引脚与定时器和通道的对应关系

o4YBAF_9Y0CAP3JgAAFV6yeQ398380.png

o4YBAF_9Y0iAS0dBAAGa-aBL_JQ705.png

STM32的定时器除了定时器6和定时器7都可以用来产生PWM,定时器1和定时器8是高级定时器,都可可以同时产生7路PWM,需要注意的是在配置高级定时器时需要多加这样的一行代码。

TIM_CtrlPWMOutputs(TIM1,ENABLE);

这一行代码可以追根源头发现是控制的是 刹车和死区寄存器(TIMx_BDTR)

2. 一些结构体成员的介绍

①TIM_OCInitStructure.TIM_OCMode
该元素设置的是PWM的模式,可以指定两种模式

TIM_OCMode_PWM1
在向上计数时,一旦装载值小于占空比时通道为无效电平,否则为有效电平
在向下计数时,一旦装载值大于占空比时通道为有效电平,否则为无效电平。

TIM_OCMode_PWM2
向上计数时,一旦装载值小于占空比时通道1为有效电平,否则为无效电平
向下计数时,一旦转载值大于占空比时通道1为无效电平,否则为有效电平。

②PWM初始化函数的两个入口参数
TIM_TimeBaseStructure.TIM_Period
该元素设置的是计数值,通常是PWM初始化函数的第一个入口参数arr,这个值影响一次PWM周期的时间长短。

TIM_TimeBaseStructure.TIM_Prescaler
该元素设置的是预分频值,通常是PWM初始化函数的第二个入口参数psc,这个值也影响一次PWM周期的时间长短。

由公式

Fpwm = TCLK / ((arr+1)*(psc+1)) (单位:Hz)

可计算一次PWM的周期时长

其中TCLK的具体频率可以到时钟树中查找,不同定时器的最高频率是不同的
TIM1、TIM8、TIM15、TIM16、TIM17、TIM9、TIM10、TIM11属APB2总线,最高频率为72M
TIM2、TIM3、TIM4、TIM5、TIM6、TIM7、TIM12、TIM13、TIM14属APB1总线,最高频率为36M
具体可以查数据手册

③TIM_TimeBaseStructure.TIM_CounterMode
该元素设置的是PWM的计数模式,常用的有以下两种。

TIM_CounterMode_Up
向上计数

TIM_CounterMode_Down
向下计数

还有几种不常用的

pIYBAF_9Y1qAJ96-AAC-_Go2MUk956.png

④TIM_OCInitStructure.TIM_OCPolarity
该元素设置输出极性,这个元素要配合PWM模式来说,在PWM模式中有无效电平和有效电平的区别,而具体的有效电平是什么呢?

就是在这个元素设置的,这里的元素如果设置成为TIM_OCPolarity_High则有效电平就是高电平,如果元素设置为TIM_OCPolarity_Low,则有效电平就是低电平。

总结

这篇博客主要介绍了一些输入输出函数的小细节,以及PWM的一些重要结构体元素代表什么。
输入输出与PWM可以说是STM32的基础操作,只有加强对基础的了解才可能在后面的学习中更加顺利。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5310

    浏览量

    119983
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5140

    浏览量

    213366
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354723
  • 电机驱动
    +关注

    关注

    60

    文章

    1203

    浏览量

    86601
  • 定时器
    +关注

    关注

    23

    文章

    3237

    浏览量

    114442
收藏 人收藏

    评论

    相关推荐

    艾迈斯欧司朗Belago红外LED,助力Supernode打造扫地机器人

    Supernode与艾迈斯欧司朗携手,通过Belago红外LED实现精准扫地机器人; 得益于Belago出色的红外补光功能,使扫地机器人能够大大提升其识别物体的能力,实现精准
    的头像 发表于 11-21 09:19 96次阅读
    艾迈斯欧司朗Belago<b class='flag-5'>红外</b>LED,助力Supernode打造<b class='flag-5'>避</b><b class='flag-5'>障</b>扫地机器人

    机器人红外

    机器人红外
    发表于 09-19 12:57 0次下载

    IOy系列SNMP协议IO模块支持温度监控、DI输入 DO输出模块

    在追求高效、智能与安全的工业自动化时代,IO模块作为连接物理世界与数字世界的桥梁,其重要性不言而喻。钡铼技术推出了IOy系列——SNMP协议IO模块BL197,该
    的头像 发表于 08-30 16:35 255次阅读

    机智云开源自动化控制篇-式舵机转向系统

    本次采用STM32F103C8T6单片机、ESP-01S模块红外模块、SG90舵机(360°)以及0.96寸的IIC接口OLED显示屏
    的头像 发表于 08-30 12:14 267次阅读
    机智云开源自动化控制篇-<b class='flag-5'>避</b><b class='flag-5'>障</b>式舵机转向系统

    第七章-V1.5 STM32超声波测距STM32F103C8t6超声波小车 超声波模块 STM32超声波测距

    5STM32超声波测距STM32F103C8t6超声波小车
    的头像 发表于 08-15 16:25 598次阅读
    第七章-V1.5 STM32超声波测距STM32F103C8t6超声波<b class='flag-5'>避</b><b class='flag-5'>障</b>小车 超声波<b class='flag-5'>避</b><b class='flag-5'>障</b><b class='flag-5'>模块</b> STM32超声波测距

    Profinet远程IO模块:数字量输入模块_远程组态说明

    Profinet远程IO模块:数字量输入模块_远程组态说明:本章主要介绍XD系列远程IO的耦合器配合IO
    的头像 发表于 07-23 09:30 1142次阅读
    Profinet远程<b class='flag-5'>IO</b><b class='flag-5'>模块</b>:数字量<b class='flag-5'>输入</b><b class='flag-5'>模块</b>_远程组态说明

    TB6612模块使用后就烧了,求助一下各位

    用数据线接单片机时,TB6612能正常工作,但是我调好程序用12V的航模电池通电时,轮子的转速急剧上升,过了两秒TB6612开始冒青烟了,搞不懂
    发表于 07-09 11:16

    Toshiba东芝TB6612FNG电机驱动IC:释放性能与多功能性

    、可靠性和易用性。本文将深入探讨TB6612FNG的主要特点、应用和优势   主要特点 TB6612FNG是一款硅单片集成电路,旨在高效精确地驱动双直流电机。以下是其一些突出的特点: 电源和输出规格: 电源电压:该IC的最大VM
    的头像 发表于 07-01 14:05 755次阅读
    Toshiba东芝<b class='flag-5'>TB6612</b>FNG电机驱动IC:释放性能与多功能性

    Toshiba东芝TB6612FNG电机驱动IC中文版产品规格书

    可达3.2A,适用于各种电机控制应用。低导通电阻:LD MOS结构中的输出晶体管具有0.5Ω的低导通电阻(VM≥5V时的典型值),确保了高效的电力使用和较低的发热量。控制模式TB6612FNG通过其两个
    发表于 06-19 14:45 2次下载

    TOSHIBA东芝TB6612FNG电机驱动IC产品规格书

    可达3.2A,适用于各种电机控制应用。低导通电阻:LD MOS结构中的输出晶体管具有0.5Ω的低导通电阻(VM≥5V时的典型值),确保了高效的电力使用和较低的发热量。控制模式TB6612FNG通过其两个
    发表于 06-19 14:43 0次下载

    雷达的安装位置应该如何选择

    雷达的安装位置选择对于AGV小车(自动导引车)的安全性和效果至关重要。以下是选择雷达
    的头像 发表于 05-20 10:49 395次阅读

    AGV小车使用雷达

    AGV(自动导引车)小车使用雷达是为了确保其在运行过程中的安全性和稳定性。雷达,如激光雷达或超声波雷达,能够实时检测并避免与障碍物发生碰撞。 AGV小车
    的头像 发表于 05-20 10:48 571次阅读

    视觉、激光、结构光?扫地机器人导航技术盘点

    越来越多的家庭都配备扫地机器人,既能解放双手又能保持家庭清洁。而扫地机器人也不断智能化迭代,撞墙、卡住、跌落等故障随着导航技术的迭代顺利解决。行业共识认为,导航、能力是衡量扫地
    的头像 发表于 02-01 16:01 1212次阅读

    有哪些可以用于感应的红外发射接收管?

    有哪些可以用于感应的红外发射接收管? 感应是一种常见的应用于机器人、自动驾驶、安防等领域的技术,其核心是利用
    的头像 发表于 12-25 14:30 497次阅读

    基于FPGA的平衡小车设计

    电机采用的是平衡小车之家的MG310(GMR编码器)电机。底板上有两个TB6612芯片,可以驱动四个电机,除了做平衡小车之外,也可以用来作为四驱车的底板,非常nice,同时支持两种控制方式,推荐通过红外遥控进行控制,实现起来非常
    的头像 发表于 11-30 09:31 789次阅读
    基于FPGA的平衡小车设计