chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

PCA9685的使用及RT-Thread PCA9685驅(qū)動(dòng)組件詳解

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:CSDN博客 ? 作者:CSDN博客 ? 2020-09-26 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

JetBot 小車(chē)使用的電機(jī)驅(qū)動(dòng)模塊上用了 PCA9685 擴(kuò)展 I/O ,一邊與主控通過(guò) I2C 總線通信,另一邊連接 TB6612 馬達(dá)驅(qū)動(dòng)芯片。

本篇 Sugar 就來(lái)有根有據(jù)地說(shuō)一說(shuō) PCA9685 的使用,以及 RT-Thread PCA9685 驅(qū)動(dòng)組件。

硬件特點(diǎn)

1、每路 12 位分辨率(4096 級(jí))的 PWM;

2、最多 16 路 PWM 輸出,所有路 PWM 頻率統(tǒng)一,每路占空比可以獨(dú)立控制;

3、I2C 通信方式;

4、支持 2.3V~5.5V 電壓,邏輯電平 3.3V;

5、復(fù)位方式:上電復(fù)位、軟件復(fù)位。

用于舵機(jī)控制的 PWM

一、明確控制信號(hào)

1、用于舵機(jī)控制的 PWM 頻率是 50Hz(周期 20000us)

2、對(duì)于 12 位分辨率而言,時(shí)間控制精度(即:時(shí)間分辨率)就是

3、舵機(jī)的控制脈寬是0.5ms ~ 2.5ms,時(shí)間伸縮范圍是 2000us

4、伸縮范圍在 4.88us 時(shí)間分辨率下可以分成近 410 份。

5、時(shí)間伸縮范圍 2000us 對(duì)應(yīng)舵機(jī)轉(zhuǎn)動(dòng)范圍 0~180 度,因此舵機(jī)的角度分辨率約為 0.439 度

二、在 PCA9685 手冊(cè)里查芯片用法

1、芯片長(zhǎng)什么樣

2、引腳功能

3、I2C 地址

地址引腳由 A0 ~ A5 組成,因此最多可以有 64 個(gè)地址。由于芯片本身保留 All Call 7 位地址 0xE0 以及 Software Reset 7位地址 0x06,所以有 62 個(gè)地址可用。

在默認(rèn)情況下(即:A0 ~ A5 全部接地),其 7 位地址為 0x40。

4、目標(biāo)寄存器

(1) MODE1 寄存器,地址0x00,可讀、可寫(xiě)。

(2) MODE2 寄存器,地址0x01,可讀、可寫(xiě)。

(3) 每路 PWM 有 4 個(gè) 8 位控制寄存器,地址見(jiàn) datasheet,可讀、可寫(xiě)。

4 個(gè) 8 位寄存器在手冊(cè)上說(shuō)成:2 路 12 位寄存器。2 個(gè) 12 位寄存器分別控制該路輸出的高、低電平時(shí)間,最大數(shù)值是 4095。

根據(jù)下面的 Example 1 不難了解到這 2 個(gè) 12 位寄存器的意思是:每個(gè)周期從第幾個(gè) count 開(kāi)始置 1,則 LEDx_ON 寄存器寫(xiě)幾(十六進(jìn)制形式);每個(gè)周期從第幾個(gè) count 開(kāi)始清 0,則 LEDx_OFF 寄存器寫(xiě)幾。

下圖的 4 個(gè) example 表示了一般情況下 2 個(gè) 12 位寄存器設(shè)置情況與輸出的關(guān)系。

下圖的 4 個(gè) example 表示了 ON 寄存器值 《 OFF 寄存器值情況下的輸出。

下圖的 4 個(gè) example 表示了 ON 寄存器值 》 OFF 寄存器值情況下的輸出。

(4) PWM 頻率設(shè)置寄存器 PRE_SCALE,地址0xFE,可讀、可寫(xiě)。

芯片內(nèi)置 25MHz 的晶振,update_rate 是以 Hz 為單位的頻率值。因此,對(duì)于 50Hz 的 PWM 來(lái)講此寄存器應(yīng)設(shè)置為 121。

RT-Thread 的 PCA9685 驅(qū)動(dòng)組件

硬件連接如上圖,Sugar 使用了最常見(jiàn)的 PCA9658 舵機(jī)控制模塊,接上邏輯分析儀看數(shù)據(jù)。

一、第 1 段

展開(kāi)第一段通信內(nèi)容,如下圖:

上圖黃色框中“向 40 號(hào)地址寫(xiě)兩個(gè) 0 ”的意思是:向地址為 40 的設(shè)備地址為 0 的寄存器寫(xiě)入數(shù)據(jù) 0。

相應(yīng)的,后面藍(lán)色框就解讀為:讀取地址為 40 的設(shè)備地址為 0 的寄存器值,設(shè)備反回目標(biāo)寄存器里的數(shù)據(jù)值為 0。

下面到代碼里去找這段通信的相關(guān)內(nèi)容,如下:

二、第 2 段

根據(jù) PCA9685 的 datasheet 所述,設(shè)置 PWM 輸出頻率的時(shí)候要先進(jìn)入 SLEEP 模式。并且從 SLEEP 模式重啟的流程是在 datasheet 里指定的。

在 RT-Thread 的 PCA9685 的組件包里,把設(shè)置頻率相關(guān)的一干操作都封裝到了一個(gè)函數(shù) pca9685_set_pwm_freq() 里面。

三、第 3 段

上面已經(jīng)把研究方法說(shuō)透了,這里就不再把邏輯分析儀的圖放上來(lái)了。通過(guò)對(duì)代碼的分析,Sugar 發(fā)現(xiàn) RT-Thread 這個(gè) PCA9685 的驅(qū)動(dòng)組件包傳承了 RT-Thread 本身小而美的特點(diǎn),按照 PCA9685 的 datasheet 封裝函數(shù),這樣使得對(duì) PCA9685 的了解容易很多。

Arduino “以使用方便”為目的不同,PCA9685 組件包傾向于真正讓人弄懂 PCA9685 的用法。在懂了之后,個(gè)人就有能力自己“以使用方便”為目的再次做一遍封裝。很多玩過(guò) Arduino 的人都覺(jué)得做起來(lái)真簡(jiǎn)單,離了 Arduino 的環(huán)境真不會(huì)。

Arduino 面對(duì)的是小白,以方便體驗(yàn)為主,而 RT-Thread 和其一眾組件能夠讓人真正了解深層次的本源,搞懂這些能讓人在成為高手的路上走得更輕松。當(dāng)成為高手之后,再回頭看 Arduino 才能體會(huì)到 Arduino 封裝的真正智慧。

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

    關(guān)注

    5

    文章

    7

    瀏覽量

    16550
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1409

    瀏覽量

    41963
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C51單片機(jī)如何使用PCA9685舵機(jī)驅(qū)動(dòng)

    最近購(gòu)買(mǎi)了一個(gè)PCA9685的舵機(jī)驅(qū)動(dòng)板,苦于沒(méi)有PCA9685的相關(guān)資料,不知哪位有相關(guān)資料可以share一下?多謝多謝。
    發(fā)表于 08-13 22:29

    PCA9685智能LED控制器內(nèi)部框圖及功能介紹

    PCA9685 16-Channel12-BitPWMLEDDimmer 特點(diǎn)16-LED驅(qū)動(dòng)–On,Off,獨(dú)立的PWM控制4096步(12-bit)線性的可編程亮度可編程輸出延遲控制1MHzI2C總線。
    發(fā)表于 05-06 12:26

    如何用PCA9685去完成無(wú)刷電機(jī)的驅(qū)動(dòng)方法?

    怎樣去編寫(xiě)i2c驅(qū)動(dòng)的函數(shù)?如何用PCA9685去完成無(wú)刷電機(jī)的驅(qū)動(dòng)方法?
    發(fā)表于 07-21 07:02

    STM32F103控制PCA9685模塊驅(qū)動(dòng)多個(gè)舵機(jī) 精選資料分享

    之前在做假手的控制時(shí),驅(qū)動(dòng)用的是舵機(jī)。因?yàn)橐獙?shí)現(xiàn)假手的多自由度動(dòng)作,所以需要用到8個(gè)舵機(jī)。而我用的主控板只有兩路pwm輸出,不能滿(mǎn)足要求,所以在查閱了相關(guān)資料后,找到了PCA9685模塊。因?yàn)榫W(wǎng)上
    發(fā)表于 07-21 06:36

    pca9685芯片手冊(cè) stm32 hal iic

    pca9685芯片手冊(cè) stm32 hal iic#ifndefpca9685#definepca9685#include"main.h"typedefstruct
    發(fā)表于 08-10 07:24

    如何使用編程PCA9685

    這篇教程與網(wǎng)上的大部分教程都不相同,著重講述如何使用編程PCA9685,而不是著重講述原理,最后你還是一頭霧水。這是一篇教你如何如何輸出固定舵機(jī)角度,如何移植程序,從PCA9685的原理到如何移植
    發(fā)表于 09-02 08:08

    怎樣使用PCA9685模塊去控制舵機(jī)呢

    PCA9685的寄存器可分為哪幾種類(lèi)型?怎樣使用PCA9685模塊去控制舵機(jī)呢?
    發(fā)表于 10-25 08:46

    請(qǐng)問(wèn)PCA9685如何通過(guò)IIC協(xié)議控制多個(gè)舵機(jī)?

    請(qǐng)問(wèn)PCA9685如何通過(guò)IIC協(xié)議控制多個(gè)舵機(jī)?
    發(fā)表于 10-27 06:11

    怎么使用PCA9685擴(kuò)展PWM端口呢

    一直在用NXP的單片機(jī)做各種開(kāi)發(fā), 最近遇到了這么個(gè)問(wèn)題,就是單片機(jī)的PWM端口不夠用,公司硬件工程師推薦使用NXP的PCA9685芯片擴(kuò)展,一個(gè)芯片可以擴(kuò)展出16路PWM,我們用了兩個(gè),成功擴(kuò)展
    發(fā)表于 11-23 08:14

    PCA9685擴(kuò)展I/O的應(yīng)用是什么?

    PCA9685怎么使用?PCA9685擴(kuò)展I/O的應(yīng)用是什么?
    發(fā)表于 01-17 07:38

    STM32使用PCA9685控制舵機(jī)的過(guò)程分享

    首先聲明我寫(xiě)的代碼主要參考了這位仁兄的,非常感謝他把自己的源代碼奉獻(xiàn)出來(lái)。他的代碼是基于標(biāo)準(zhǔn)庫(kù)函數(shù)的,代碼過(guò)程簡(jiǎn)單明了,非常適合移植。STM32 使用 PCA9685 控制舵機(jī),控制機(jī)械臂,控制
    發(fā)表于 02-21 06:19

    PCA9685芯片的模擬的IIC需要加上拉電阻嗎?

    pca9685用的是IIC通訊,如果用的是模擬的IIC,需要加上拉電阻嗎?
    發(fā)表于 10-18 06:59

    PCA9685設(shè)計(jì)的16路12位LED驅(qū)動(dòng)控制方案

    本文介紹了PCA9685主要特性和優(yōu)勢(shì),方框圖以及典型應(yīng)用電路圖和LCD背光應(yīng)用電路圖.NXP公司的PCA9685是16路12位PWM不是Fm+I2C總
    發(fā)表于 09-11 15:05 ?9377次閱讀
    <b class='flag-5'>PCA9685</b>設(shè)計(jì)的16路12位LED<b class='flag-5'>驅(qū)動(dòng)</b>控制方案

    PCA9685使用說(shuō)明【寄存器地址】

    PCA9685
    發(fā)表于 04-05 11:38 ?0次下載

    PCA9685與STC12C5A60S2單片機(jī)突然不能工作了!

    1.癥狀:PCA9685工作的好好的突然不能工作了?芯片型號(hào):?jiǎn)纹瑱C(jī)STC12C5A60S參數(shù):sbit PCA9685_sda = P0^4; //數(shù)據(jù)輸入/輸出端
    發(fā)表于 12-23 19:14 ?8次下載
    <b class='flag-5'>PCA9685</b>與STC12C5A60S2單片機(jī)突然不能工作了!