0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于tb6612芯片和紅外避障模塊的IO輸出輸入模式

電子設(shè)計 ? 來源:mcu中文技術(shù)社區(qū) ? 作者:Vanilla.044 ? 2021-02-14 06:33 ? 次閱讀

最近一周多的時間開始學(xué)習(xí)并自己動手制作了一個循跡小車,主要運用的就是tb6612芯片以及紅外避障模塊,這篇博客主要就是總結(jié)一下在制作小車過程中學(xué)習(xí)到的知識以及問題。

一、有關(guān)IO輸出輸入的總結(jié)

在這次小車制作中,我使用到的有tb6612電機(jī)驅(qū)動芯片和MH-Sensor-Series紅外循跡避障模塊,兩者的使用方法都不是很復(fù)雜,只需要在對應(yīng)的引腳上接高低電平或者接輸入引腳即可,但正是這么基礎(chǔ)的引腳操作中也發(fā)現(xiàn)了很多小細(xì)節(jié),有同學(xué)在制作小車的過程中就遇到了寫完代碼根本沒達(dá)到預(yù)期效果,后來才發(fā)現(xiàn)是一些引腳的模式或者使能問題,因此我也更詳細(xì)學(xué)習(xí)了一下IO口的八種輸入輸出模式。

下面就是我個人對這幾種模式的理解

一、輸入模式

1. 浮空輸入(GPIO_Mode_IN_FLOATING)

該模式主要針對芯片本身,以及其他的邏輯器件(即由大量邏輯開關(guān)組成的元器件),在該模式下,引腳既不表現(xiàn)為高電平也不表現(xiàn)為低電平,如果用電壓表測量測得的可能也有所不同。

浮空輸入大多數(shù)情況就是代表該引腳什么都不接,但是在網(wǎng)上也有說可以用于ADC傳輸數(shù)據(jù)使用,但我并不了解。

這個模式基本用不上,如果以后我有使用會在這里記錄。

2. 上拉輸入(GPIO_Mode_IPU)

在上拉輸入模式下,引腳什么都不接的情況下表現(xiàn)為高電平,當(dāng)連接到TTL(高電平低電平)信號時,會發(fā)生改變。

在沒有輸入或者是輸入為高電平時,其電壓為高;輸入為低電平時,電壓為低。

這里要注意的是沒有輸入的時候就處于高電平,適用于那些平常狀態(tài)輸出高,特殊狀態(tài)輸出低的模塊。

3. 下拉輸入(GPIO_Mode_IPD)

和上拉輸入類似

在下拉輸入模式下,引腳什么都不接的情況下表現(xiàn)為低電平,當(dāng)連接到TTL(高電平低電平)信號時,會發(fā)生改變。

在沒有輸入或者是輸入為低電平時,其電壓為低;輸入為高電平時,電壓為高。

這里要注意的是沒有輸入的時候就處于低電平,適用于那些平常狀態(tài)輸出低,特殊狀態(tài)輸出高的模塊。

4. 模擬輸入(GPIO_Mode_AIN)

模擬輸入不同于以上三種輸入模式,前面三種模式都是數(shù)字信號的輸入也就是非高即低的信號,而模擬輸入就是輸入未經(jīng)處理的信號,可以是一段連續(xù)的電壓不固定的信號。

往往在數(shù)模轉(zhuǎn)換中需要用到,比如讀取某個引腳的電壓值,這個電壓值就可能是PWM波形,使用模擬輸入就可以講信號不經(jīng)處理的傳給ADC模塊進(jìn)行分析。

二、輸出模式

1. 開漏輸出(GPIO_Mode_Out_OD)

在開漏模式下,控制IO輸出低時IO口輸出低,控制IO口輸出高時IO口既不輸出高也不輸出低,電壓不確定。(由外部驅(qū)動,降低芯片的驅(qū)動壓力)

在使用該模式時,通常外接一個電阻,通過這個電阻來給予高電平。“推挽輸出模式一般應(yīng)用在輸出電平為0和3.3伏而且需要高速切換開關(guān)狀態(tài)的場合”

或者在推挽輸出模式下我們輸出的電平是3.3V,但是我們想要達(dá)到一個5V的輸出,就可以采用開漏輸出,通過外接一個上拉電阻來控制我們的電壓能夠達(dá)到5V。

再或者可以用一個IO口進(jìn)行雙向的數(shù)據(jù)傳輸。

首先從引腳往外這個指向來說,引腳輸出低時IO為低,引腳輸出高時外部可以由上拉電阻將IO上拉為高。

其次從外往引腳這個指向來說,由于IO的高低電平與外部上拉電阻有關(guān),也就可以通過外部上拉電阻的有無來 反向控制IO的高低,之后可以運用寄存器讀取IO狀態(tài)從而獲得外部的電平信號。這樣就可以達(dá)到IO口的雙向功能。(僅個人理解)

上拉電阻的阻值不僅影響輸出的電平高低,還影響著信號的延遲,阻值越大信號也就越延遲但是功耗小。

2. 推挽輸出(GPIO_Mode_Out_PP)

引腳輸出低時IO為低,引腳輸出高時IO輸出高。

3. 推挽復(fù)用輸出(GPIO_Mode_AF_PP)

可以使用IO口的第二功能,例如定時器、串口等。相當(dāng)于是輸出信號更多樣的推挽輸出。

輸出PWM信號時需要使用該輸出模式。

4. 開漏復(fù)用輸出(GPIO_Mode_AF_OD)

可以使用IO口的第二功能,例如定時器、串口等。相當(dāng)于是輸出信號更多樣的開漏輸出。

二、PWM輸出的一些總結(jié)

1.引腳與定時器和通道的對應(yīng)關(guān)系

o4YBAF_9Y0CAP3JgAAFV6yeQ398380.png

o4YBAF_9Y0iAS0dBAAGa-aBL_JQ705.png

STM32的定時器除了定時器6和定時器7都可以用來產(chǎn)生PWM,定時器1和定時器8是高級定時器,都可可以同時產(chǎn)生7路PWM,需要注意的是在配置高級定時器時需要多加這樣的一行代碼。

TIM_CtrlPWMOutputs(TIM1,ENABLE);

這一行代碼可以追根源頭發(fā)現(xiàn)是控制的是 剎車和死區(qū)寄存器(TIMx_BDTR)

2. 一些結(jié)構(gòu)體成員的介紹

①TIM_OCInitStructure.TIM_OCMode
該元素設(shè)置的是PWM的模式,可以指定兩種模式

TIM_OCMode_PWM1
在向上計數(shù)時,一旦裝載值小于占空比時通道為無效電平,否則為有效電平
在向下計數(shù)時,一旦裝載值大于占空比時通道為有效電平,否則為無效電平。

TIM_OCMode_PWM2
向上計數(shù)時,一旦裝載值小于占空比時通道1為有效電平,否則為無效電平
向下計數(shù)時,一旦轉(zhuǎn)載值大于占空比時通道1為無效電平,否則為有效電平。

②PWM初始化函數(shù)的兩個入口參數(shù)
TIM_TimeBaseStructure.TIM_Period
該元素設(shè)置的是計數(shù)值,通常是PWM初始化函數(shù)的第一個入口參數(shù)arr,這個值影響一次PWM周期的時間長短。

TIM_TimeBaseStructure.TIM_Prescaler
該元素設(shè)置的是預(yù)分頻值,通常是PWM初始化函數(shù)的第二個入口參數(shù)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
具體可以查數(shù)據(jù)手冊

③TIM_TimeBaseStructure.TIM_CounterMode
該元素設(shè)置的是PWM的計數(shù)模式,常用的有以下兩種。

TIM_CounterMode_Up
向上計數(shù)

TIM_CounterMode_Down
向下計數(shù)

還有幾種不常用的

pIYBAF_9Y1qAJ96-AAC-_Go2MUk956.png

④TIM_OCInitStructure.TIM_OCPolarity
該元素設(shè)置輸出極性,這個元素要配合PWM模式來說,在PWM模式中有無效電平和有效電平的區(qū)別,而具體的有效電平是什么呢?

就是在這個元素設(shè)置的,這里的元素如果設(shè)置成為TIM_OCPolarity_High則有效電平就是高電平,如果元素設(shè)置為TIM_OCPolarity_Low,則有效電平就是低電平。

總結(jié)

這篇博客主要介紹了一些輸入輸出函數(shù)的小細(xì)節(jié),以及PWM的一些重要結(jié)構(gòu)體元素代表什么。
輸入輸出與PWM可以說是STM32的基礎(chǔ)操作,只有加強(qiáng)對基礎(chǔ)的了解才可能在后面的學(xué)習(xí)中更加順利。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119212
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5059

    瀏覽量

    212219
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352505
  • 電機(jī)驅(qū)動
    +關(guān)注

    關(guān)注

    60

    文章

    1165

    瀏覽量

    86289
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113695
收藏 人收藏

    評論

    相關(guān)推薦

    機(jī)器人紅外

    機(jī)器人紅外
    發(fā)表于 09-19 12:57 ?0次下載

    IOy系列SNMP協(xié)議IO模塊支持溫度監(jiān)控、DI輸入 DO輸出模塊

    在追求高效、智能與安全的工業(yè)自動化時代,IO模塊作為連接物理世界與數(shù)字世界的橋梁,其重要性不言而喻。鋇錸技術(shù)推出了IOy系列——SNMP協(xié)議IO模塊BL197,該
    的頭像 發(fā)表于 08-30 16:35 ?142次閱讀

    機(jī)智云開源自動化控制篇-式舵機(jī)轉(zhuǎn)向系統(tǒng)

    本次采用STM32F103C8T6單片機(jī)、ESP-01S模塊紅外模塊、SG90舵機(jī)(360°)以及0.96寸的IIC接口OLED顯示屏
    的頭像 發(fā)表于 08-30 12:14 ?140次閱讀
    機(jī)智云開源自動化控制篇-<b class='flag-5'>避</b><b class='flag-5'>障</b>式舵機(jī)轉(zhuǎn)向系統(tǒng)

    Profinet遠(yuǎn)程IO模塊:數(shù)字量輸入模塊_遠(yuǎn)程組態(tài)說明

    Profinet遠(yuǎn)程IO模塊:數(shù)字量輸入模塊_遠(yuǎn)程組態(tài)說明:本章主要介紹XD系列遠(yuǎn)程IO的耦合器配合IO
    的頭像 發(fā)表于 07-23 09:30 ?866次閱讀
    Profinet遠(yuǎn)程<b class='flag-5'>IO</b><b class='flag-5'>模塊</b>:數(shù)字量<b class='flag-5'>輸入</b><b class='flag-5'>模塊</b>_遠(yuǎn)程組態(tài)說明

    TB6612模塊使用后就燒了,求助一下各位

    用數(shù)據(jù)線接單片機(jī)時,TB6612能正常工作,但是我調(diào)好程序用12V的航模電池通電時,輪子的轉(zhuǎn)速急劇上升,過了兩秒TB6612開始冒青煙了,搞不懂
    發(fā)表于 07-09 11:16

    Toshiba東芝TB6612FNG電機(jī)驅(qū)動IC:釋放性能與多功能性

    、可靠性和易用性。本文將深入探討TB6612FNG的主要特點、應(yīng)用和優(yōu)勢 ? 主要特點 TB6612FNG是一款硅單片集成電路,旨在高效精確地驅(qū)動雙直流電機(jī)。以下是其一些突出的特點: 電源和輸出規(guī)格: 電源電壓:該IC的最大VM
    的頭像 發(fā)表于 07-01 14:05 ?582次閱讀
    Toshiba東芝<b class='flag-5'>TB6612</b>FNG電機(jī)驅(qū)動IC:釋放性能與多功能性

    Toshiba東芝TB6612FNG電機(jī)驅(qū)動IC中文版產(chǎn)品規(guī)格書

    可達(dá)3.2A,適用于各種電機(jī)控制應(yīng)用。低導(dǎo)通電阻:LD MOS結(jié)構(gòu)中的輸出晶體管具有0.5Ω的低導(dǎo)通電阻(VM≥5V時的典型值),確保了高效的電力使用和較低的發(fā)熱量。控制模式TB6612FNG通過其兩個
    發(fā)表于 06-19 14:45 ?0次下載

    TOSHIBA東芝TB6612FNG電機(jī)驅(qū)動IC產(chǎn)品規(guī)格書

    可達(dá)3.2A,適用于各種電機(jī)控制應(yīng)用。低導(dǎo)通電阻:LD MOS結(jié)構(gòu)中的輸出晶體管具有0.5Ω的低導(dǎo)通電阻(VM≥5V時的典型值),確保了高效的電力使用和較低的發(fā)熱量??刂?b class='flag-5'>模式TB6612FNG通過其兩個
    發(fā)表于 06-19 14:43 ?0次下載

    雷達(dá)的安裝位置應(yīng)該如何選擇

    雷達(dá)的安裝位置選擇對于AGV小車(自動導(dǎo)引車)的安全性和效果至關(guān)重要。以下是選擇雷達(dá)
    的頭像 發(fā)表于 05-20 10:49 ?267次閱讀

    AGV小車使用雷達(dá)

    AGV(自動導(dǎo)引車)小車使用雷達(dá)是為了確保其在運行過程中的安全性和穩(wěn)定性。雷達(dá),如激光雷達(dá)或超聲波雷達(dá),能夠?qū)崟r檢測并避免與障礙物發(fā)生碰撞。 AGV小車
    的頭像 發(fā)表于 05-20 10:48 ?455次閱讀

    有哪些可以用于感應(yīng)的紅外發(fā)射接收管?

    有哪些可以用于感應(yīng)的紅外發(fā)射接收管? 感應(yīng)是一種常見的應(yīng)用于機(jī)器人、自動駕駛、安防等領(lǐng)域的技術(shù),其核心是利用
    的頭像 發(fā)表于 12-25 14:30 ?403次閱讀

    基于FPGA的平衡小車設(shè)計

    電機(jī)采用的是平衡小車之家的MG310(GMR編碼器)電機(jī)。底板上有兩個TB6612芯片,可以驅(qū)動四個電機(jī),除了做平衡小車之外,也可以用來作為四驅(qū)車的底板,非常nice,同時支持兩種控制方式,推薦通過紅外遙控進(jìn)行控制,實現(xiàn)起來非常
    的頭像 發(fā)表于 11-30 09:31 ?678次閱讀
    基于FPGA的平衡小車設(shè)計

    邁爾微視MRDVS發(fā)布多模態(tài)相機(jī)S2

    S2是邁爾微視MRDVS專為移動機(jī)器人應(yīng)用研發(fā)的工業(yè)級多模態(tài)相機(jī)。通過獲取前方障礙物距離及紋理信息,結(jié)合AI算法對障礙物進(jìn)行識別分類,提升移動機(jī)器人準(zhǔn)確性。
    的頭像 發(fā)表于 10-24 16:00 ?828次閱讀
    邁爾微視MRDVS發(fā)布多模態(tài)<b class='flag-5'>避</b><b class='flag-5'>障</b>相機(jī)S2

    技術(shù)再提升,掃地機(jī)器人不止于精準(zhǔn)

    掃地機(jī)器人好用與否,表現(xiàn)首當(dāng)其沖,那么評判好壞的標(biāo)準(zhǔn)又是什么?
    的頭像 發(fā)表于 09-28 11:38 ?668次閱讀
    <b class='flag-5'>避</b><b class='flag-5'>障</b>技術(shù)再提升,掃地機(jī)器人<b class='flag-5'>避</b><b class='flag-5'>障</b>不止于精準(zhǔn)

    技術(shù)再提升,掃地機(jī)器人不止于精準(zhǔn)

    能夠看到,市面上無論是石頭、科沃斯、還是云鯨等頭部廠商,其高端產(chǎn)品基本都是激光+視覺融合方案,并且基本支持智能,表現(xiàn)為機(jī)器人可對識別的不同障礙物信息,做出動態(tài)調(diào)整距離,進(jìn)一步提
    的頭像 發(fā)表于 09-27 17:30 ?898次閱讀
    <b class='flag-5'>避</b><b class='flag-5'>障</b>技術(shù)再提升,掃地機(jī)器人<b class='flag-5'>避</b><b class='flag-5'>障</b>不止于精準(zhǔn)