裸機IIC協議 模擬IO驅動

2021-09-12 07:14:23 字數 999 閱讀 8619

實際注意

iic也有叫i2c,是半雙工的,不能同時收發,有sda和clk兩條線,一條匯流排上可以掛載多個從裝置,要求從裝置位址不同。

下面以bosh的gsensor的bma253為例,來講解iic。

從bma253的datasheet可知,通過io接gnd還是vdd可以得到不同的iic位址,我實際是連線到gnd,所以位址是0x18

具體iic時序要求參考:

注意有4us和4.7us兩個時間

參考**讀取bma253的chip id,在寫bma253的暫存器進行晶元初始化;

參考**不介紹硬體的io設定,比如設定io輸入輸出等;

if

(bma253_rd_reg

(bma2x2_chip_id_addr)

==0xfa

)

下圖是bma253_rd_reg的實現,使用iic讀取乙個char,我使用的是msp430,主頻1mhz,乙個機器週期就5us多,所以沒有使用delay;

unsigned

char

bma253_rd_reg

(unsigned

char addr)

void

bma253_wr_reg

(unsigned

char addr,

unsigned

char val)

對於ack需要做超時處理,防止從機故障沒有回應,造成主機卡死;

模擬IIC匯流排協議

模擬iic 簡單講iic匯流排通訊就像你在和你物件打 講道理,步驟幾乎完全一致。回憶一下自己打 的過程。你 撥號 你物件 喂?你 巴拉巴拉 你物件 哦 你 巴拉巴拉 你物件 哦 你 掛啦,麼麼噠 你物件 哦 你 掛 通話結束 iic匯流排時序 那現在來看一下iic匯流排通訊過程 對於你來說,你是打 ...

模擬IIC匯流排協議

簡單講iic匯流排通訊就像你在和你物件打 講道理,步驟幾乎完全一致。回憶一下自己打 的過程。你 撥號 你物件 喂?你 巴拉巴拉 你物件 哦 你 巴拉巴拉 你物件 哦 你 掛啦,麼麼噠 你物件 哦 你 掛 通話結束 那現在來看一下iic匯流排通訊過程 對於你來說,你是打 的,屬於主動方,首先該你寫入資...

軟體模擬IIC驅動搭建

通過mcu和tm1680的通訊,簡要概述iic通訊協議 ic通過iic通訊的幾個基本概念 1,iic的初始化 軟體模擬iic需要兩個可程式設計io口,分別對應資料和時序匯流排。初始化iic時,將兩個gpio分別設為輸出 雙向io口 並將電平拉高 產生下降沿,做起始訊號 2,iic的起始訊號 iic的...