|
1 Rockchip I2C功能特點(diǎn)
I2C(Inter-Integrated Circuit)總線是由PHILIPS 公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備; I2C總線控制器支持主模式作為橋之間 AMBA 協(xié)議和泛型I2C 總線系統(tǒng)。Rockchip I2C 控制器支持下列功能︰
項(xiàng)目兼容 I2C 總線
支持主模式下的 I2C 總線
軟件可編程時(shí)鐘頻率和傳輸速率高達(dá) 1000Kbit/秒
支持 7 位和 10 位尋址模式
中斷或輪詢驅(qū)動(dòng)多個(gè)字節(jié)數(shù)據(jù)傳輸
時(shí)鐘拉伸和等待狀態(tài)
2 DTS節(jié)點(diǎn)配置
DTS節(jié)點(diǎn)配置可參考kernel文件: Documentation/devicetree/bindings/i2c/i2c-rk3x.txt 需要配置項(xiàng):
1. I2C速率配置: 一般配置400k,100k(默認(rèn),可不填),200k,1000k;
400k示例: clock-frequency = <400000>;
2. i2c_clk上升沿時(shí)間, 下降沿時(shí)間;
當(dāng)需要I2C速率配置超過(guò)100k時(shí),i2c_clk 上升沿和下降沿時(shí)間一定需要通過(guò)示波器測(cè)量得出;因?yàn)镮2C 協(xié)議標(biāo)準(zhǔn)里面對(duì)上升沿和下降沿時(shí)間有規(guī)定要求特別是上升沿時(shí)間,如果超過(guò)了協(xié)議規(guī)定的最大值,則I2C通訊可能失敗,下面是協(xié)議里面規(guī)定的最大最小值范圍
上升沿Tr,下降沿Tf,分別取30%~70%的波形時(shí)間:
3. 以上兩項(xiàng)不配置則將默認(rèn)按上升沿和下降沿的max值來(lái)計(jì)算,得到的CLK速度將近90k。 默認(rèn)使用100k的max值是1000ns,基本上大多數(shù)硬件都是符合的,所以可以不填,如果要求不高的話。
4. I2C1+es8316 codec 示例說(shuō)明,需要I2C時(shí)鐘400k,示波器所測(cè)得Tr=164ns,Tf=15ns:
&i2c1 { status = "okay"; i2c-scl-rising-time-ns = <164>; i2c-scl-falling-time-ns = <15>; clock-frequency = <400000>; es8316: es8316@10 { #sound-dai-cells = <0>; compatible = "everest,es8316"; reg = <0x10>; clocks = <&cru SCLK_I2S_8CH_OUT>;
clock-names = "mclk"; spk-con-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; hp-det-gpio = <&gpio4 28 GPIO_ACTIVE_LOW>; }; };
|
|