国产精品久久久久久亚洲,国产成人无码午夜视频在线观看 ,国产福利一区二区三区在线观看,国产av第一次处破,厨房玩弄丝袜人妻系列国产电影
您好,歡迎來到儀表展覽網(wǎng)!
請登錄
免費注冊
分享
微信
新浪微博
人人網(wǎng)
QQ空間
開心網(wǎng)
豆瓣
會員服務(wù)
進取版
標(biāo)準(zhǔn)版
尊貴版
|
設(shè)為首頁
|
收藏
|
導(dǎo)航
|
幫助
|
移動端
|
官方微信掃一掃
微信掃一掃
收獲行業(yè)前沿信息
產(chǎn)品
資訊
請輸入產(chǎn)品名稱
噪聲分析儀
紡織檢測儀器
Toc分析儀
PT-303紅外測溫儀
轉(zhuǎn)矩測試儀
繼電保護試驗儀
定氮儀
首頁
產(chǎn)品
專題
品牌
資料
展會
成功案例
網(wǎng)上展會
詞多 效果好 就選易搜寶!
江蘇中霍傳感科技有限公司
新增產(chǎn)品
|
公司簡介
注冊時間:
2005-07-20
聯(lián)系人:
電話:
Email:
首頁
公司簡介
產(chǎn)品目錄
公司新聞
技術(shù)文章
資料下載
成功案例
人才招聘
榮譽證書
聯(lián)系我們
產(chǎn)品目錄
齒輪轉(zhuǎn)速傳感器
0.00元專區(qū)(特采處理)
2021年霍爾傳感器選型
高精度電流傳感器
霍爾電流傳感器
閉環(huán)電流傳感器
開環(huán)電流傳感器
單電源3.3V,5V霍爾電流傳感器
閉環(huán)霍爾電流傳感器
開環(huán)霍爾電流傳感器
霍爾電壓傳感器
直流漏電流傳感器
霍爾電壓變送器
電流互感器
真有效值傳感器
當(dāng)前位置:
首頁
>>>
公司新聞
>
公司新聞
芯片之I2C配置
I2C總線簡介
首先按照慣例俗套的說一下I2C總線的定義,I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根分別命名為SDA(串行數(shù)據(jù)線)和SCL(串行時鐘線)的信號線連接不同的器件即可傳輸信息。
I2C總線上的器件有主從之分,在嵌入式系統(tǒng)上的主器件一般是嵌入式主芯片(MCU),主器件負(fù)責(zé)啟動、終止數(shù)據(jù)傳送,產(chǎn)生時鐘信號。從器件一般是外部設(shè)備,像小編所在行業(yè)的外部設(shè)備包括溫度傳感器、Tunner、HDMI等。
I2C主設(shè)備配置
了解了I2C總線的定義和基本原理后,我們怎樣做才能讓I2C總線正常工作呢?
首先,我們得配置I2C(本文以Hi3798CV200芯片為例)。
步驟一:硬件確認(rèn),確認(rèn)連接MCU和外設(shè)用的那一組I2C通道。
Hi3798CV200 芯片集成5個I2C控制器(一般命名為I2C0~I2C4),實現(xiàn)標(biāo)準(zhǔn)I2C主設(shè)備功能,可完成對I2C總線上的從設(shè)備的數(shù)據(jù)發(fā)送和接收,這里我們確認(rèn)的是I2C1。
步驟二:確認(rèn)硬件管腳復(fù)用情況。
因為在嵌入芯片中,絕大多數(shù)管腳都是復(fù)用的。我們首先查一下芯片datasheet,看該管腳是否是復(fù)用的。從下圖可以看出來該I2C管腳是復(fù)用的:
步驟三:配置復(fù)用寄存器。
從步驟二可以看出,我們使用的I2C1管腳是有復(fù)用的,所以我們要配置復(fù)用寄存器使當(dāng)前管腳發(fā)揮I2C的功能。查看datasheet得知,控制該組I2C的復(fù)用寄存器分別是ioshare_56和ioshare_57。
我們可以按照下圖所示的將寄存器的低三位配置為010,即此管腳就是執(zhí)行I2C1的數(shù)據(jù)線功能了。
同樣的方法配置ioshare_57。
配置完后我們將記錄配置信息相應(yīng)的分區(qū)文件燒錄的開發(fā)板中。在串口輸入如下命令可以查看I2C的信息:
Hi3798CV200:/ # cat /proc/hisi/msp/i2c
---------Hisilicon Standard I2C Info---------
No. Rate
0 0
1 100000
2 0
3 0
4 0
此信息顯示I2C1,速率100K。
I2C總線調(diào)試
前面一節(jié)我們配置了I2C主器件,接下來就是調(diào)試該總線,調(diào)試之前需要確認(rèn)從設(shè)備在I2C總線上的地址、該設(shè)備內(nèi)部寄存器地址以及寄存器地址長度。
小編這里用到的是一款溫度傳感器。其設(shè)備地址為0x90,內(nèi)部寄存器地址是0x0,寄存器地址長度為1個字節(jié)。
海思芯片I2C調(diào)試起來很方便,因為它自帶了I2C控制命令,包含了讀寫等操作,省去了自己寫調(diào)試代碼。
串口命令行下輸入i2c_read,就會告訴你讀取操作使用方法:
Hi3798CV200:/ # i2c_read
Usage: i2c_read i2c_channel device_addr register_addr register_addr_len read_bytes_number
參數(shù)含義說明:
i2c_channel:I2C通道
device_addr:I2C設(shè)備地址。
register_addr: i2c設(shè)備內(nèi)部寄存器地址。
register_addr_len: i2c設(shè)備內(nèi)部寄存器地址長度。
read_bytes_number:所需要讀取的數(shù)據(jù)長度。
于是我們就可以按照上面的方法調(diào)試I2C總線了,命令行下輸入:
Hi3798CV200:/ # i2c_read 1 0x90 0 2 2
得到以下結(jié)果:
從上圖看出來,我們執(zhí)行是錯誤的,那么是不是I2C沒有配置好呢?別急,繼續(xù)檢查一遍我們輸入的命令,發(fā)現(xiàn)第4個參數(shù)寫成了2,而前面我們介紹的是寄存器地址長度為1個字節(jié)。修改命令:
Hi3798CV200:/ # i2c_read 1 0x90 0 1 2
查看執(zhí)行結(jié)果:
成功啦,成功讀取到2個字節(jié)內(nèi)容的數(shù)據(jù)。到這里,說明我們對I2C的配置是正確的!
I2C總線的工作狀態(tài)
1、I2C開始和停止工作
開始:當(dāng)SCL是高電平時,SDA從高電平跳變到低電平,則I2C總線開始工作
結(jié)束:當(dāng)SCL是高電平時,SDA從低電平跳變到高電平,則I2C總線結(jié)束工作,如下圖:
2、開始狀態(tài)后緊跟著主器件會發(fā)送一個字節(jié)的數(shù)據(jù),這個字節(jié)數(shù)據(jù)由7bit從器件地址和1bit讀寫位組成。
3、當(dāng)從器件收到總線上的地址并匹配,發(fā)現(xiàn)與自己地址相同時,則在第9個時鐘周期回復(fù)一個應(yīng)答反饋信號。
應(yīng)答信號如下圖:
4、當(dāng)主器件收到從器件的應(yīng)答信號后繼續(xù)發(fā)送后面的數(shù)據(jù)。從器件收到數(shù)據(jù)后發(fā)送ACK則表示繼續(xù)傳輸,發(fā)送NACK則傳輸結(jié)束。
留在后面的作業(yè)
小編用示波器抓取了一張I2C總線的波形圖,下圖黃色為SCL時鐘信號,綠色為SDA數(shù)據(jù)信號。
上一篇:
一文了解壓敏電阻
下一篇:
電容、電感的相位差是如何產(chǎn)生的呢?
若網(wǎng)站內(nèi)容侵犯到您的權(quán)益,請通過網(wǎng)站上的聯(lián)系方式及時聯(lián)系我們修改或刪除