PCA9685經過IIC協議控制多個舵機方法

IIC概述:
IIC:兩線式串行總線,它是由數據線SDA和時鐘線SCL構成的串行總線,可發送和接收數據。
在CPU與被控IC之間、IC與IC之間進行雙向傳送,高速IIC總線通常可達400kbs以上。
時鐘線SCL:在通訊過程起到控制做用。
數據線SDA:用來一位一位的傳送數據。
IIC分爲軟件IIC和硬件IIC
軟件IIC:
軟件IIC通訊指的是用單片機的兩個I/O端口模擬出來的IIC,用軟件控制管腳狀態以模擬I2C通訊波形,軟件模擬寄存器的工做方式。
硬件IIC:
一塊硬件電路,硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,硬件(固件)I2C是直接調用內部寄存器進行配置。
1.硬件I2C的效率要遠高於軟件的,而軟件I2C因爲不受管腳限制,接口比較靈活。
2.IIC是半雙工通訊方式
IIC通訊協議
IIC通訊過程由開始、結束、發送、響應、接收五個部分構成。
一、(在發送、接收數據的時候)當SCL爲高電平時,SDA線不容許變化;當SCL線爲低電平時,SDA線能夠任意0、1變化。
二、(在任意時候)只有當SCL爲高電平時,IIC電路纔對SDA線上的電平(0或者1)進行記錄,當SCL線爲低電平時,不管SDA是高仍是低,IIC電路都不對SDA進行採樣。
空閒狀態
在介紹上面五個部分前,咱們首先說說空閒狀態,什麼是空閒狀態,就是沒有通訊時的狀態(初始狀態)
I2C總線的SDA和SCL兩條信號同時處於高電平時,規定爲總線的空閒狀態。此時各個器件的輸出級場效管均處在截止狀態,即釋放總線,由兩條信號線各自的上拉電阻把電平拉高。
開始信號與中止信號
開始信號:當SCL爲高期間,SDA由高到低的跳變;啓動信號是一種電平跳變時序信號,而不是一個電平。
中止信號:當SCL爲高期間,SDA由低到高的跳變;中止信號也是一種電平跳變時序信號,而不是一個電平信號。
應答信號
發送器每發送一個字節,就在時鐘脈衝9期間釋放數據先,由接收器反饋一個應答信號。應答信號爲低電平時,規定爲有效應答位(ACK簡稱應答位),表示接收器已經成功接收了該字節;應答信號爲高電平時,規定爲非應答位(NACK),通常表示接收器接收該字節沒有成功。對於反饋有效應答位ACK的要求是,接收器在第9個時鐘脈衝以前的低電平期間將SDA線拉低,而且確保在該時鐘的高電平期間位穩定的低電平。若是接收器是主控器,則在它收到最後一個字節後,發送一個NACK信號,以通知被控發送器結束數據發送,並釋放SDA線,以便主控接收器發送一箇中止信號P。
接收數據
發送數據是一位一位發送,接收數據也是一位一位接收進來,最後返回應答信號。
PCA9685 控制多個舵機方法
PCA9685 芯片特色 :
PCA9685 是一款專門爲 LED 背光調節而設計的控制芯片. 爲了提升性能,芯片專門針對紅/綠/藍/琥 珀( RGBA) 等顏色的混合進行優化. PCA9685 芯片主要經過輸出 PWM 脈衝來控制 LED 亮度,其主要特 點有: 1) 芯片工做電壓範圍爲2. 3 ~5. 5 V,每路輸出能夠設置爲25 mA 電流吸取能力的開漏模式,也能夠 設置爲提供10 mA 拉電流的推輓模式. 2) 芯片輸出的頻率範圍爲40 ~1 000 Hz,其內置有25 MHz 振盪器,也能夠外接時鐘以便多個不一樣器 件間同步. 3) 芯片採用I2C 總線方式讀寫芯片,芯片有四個可編程I2C 總線地址,這使得設備組能夠任意組合並 能同時被尋址. 有6 個硬件地址引腳,這使得同一 I2C 總線上能夠鏈接多達62 個 PCA9685 芯片. 4) 芯片能夠獨立輸出16 路可調 PWM 脈衝,並具有12 位的分辨率. 5) PCA9685 芯片具備 TSSOP28 和 HVQFN28 兩種封裝形式,其中經常使用的 TSSOP28 封裝下的芯片。
控制原理:
要實現 PCA9685 PWM 波的輸出,須要通過芯片訪問地址肯定、控制模式選擇、PWM 波長設定、佔空 比計算等幾個主要步驟.





























編程

  1. 芯片訪問地址肯定. PCA9685 芯片訪問格式,訪問地址 由8 個字節組成,最高位固定爲 1,最低位爲讀寫模式選擇,第二位到第七 位由芯片外接電平肯定. 本系統中 6 個硬件地址引腳所有接低電平,由此 能夠得出寫芯片命令爲0X80H,讀芯片命令爲0X81H. PCA9685 共有255 個控制寄存器,向對應的控制寄 存器寫入控制字能夠實現芯片不一樣的功能,其中地址 00 ~ 01H 定義了芯片的工做模式,地址 02h—05h 定義了 I2C總線的子地址,地址 06h ~45h 定義了 16 個輸出端口控制寄存器. 每一個端口輸出波形由高 四位控制寄存器和低八位控制寄存器分別控制.
  2. 控制模式選擇. PCA9685 有兩種工做模式,通常 PCA9685 芯片都設定在模式1 工做方式下,對應 的寄存器地址爲 00h,其中的 8 位控制字能夠設置芯片的外部時鐘信號輸入、休眠、重啓、地址自動加、從 地址訪問等工做狀態. 具體的 C 語言程序代碼爲: write8( PCA9685_MODE1,0x0) ,其中: write8( ) 爲 I2C 寫 函數; PCA9685_MODE1 爲模式1 寄存器地址,該命令能夠將 PCA9685 工做設定在無外部時鐘信號輸入、 禁止休眠、不許重啓、地址不自動加模式下.
  3. PWM 波長設定. 舵機控制所需的 PWM 週期爲20 ms. 在用 PCA9685 做爲多舵機控制器時,須要將 其 PWM 輸出週期設定爲20 ms,即PWM 波的頻率設定爲50 Hz,PCA9685 輸出頻率與振盪器有關,頻率的 設置值
    在這裏插入圖片描述 經計算,當須要輸出50 Hz 的 PWM 頻率時,設定值爲121. 將該值下載到頻率設定寄存器就能夠改變芯片 工做頻率. 須要注意的是,頻率的更改只能在 PCA9685 芯片處於休眠狀態下進行。
相關文章
相關標籤/搜索