娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月07日(星期一)

2020年04月07日 | 十五.ARM裸機(jī)學(xué)習(xí)之I2C通信詳解

發(fā)布者:溫柔的心情 來(lái)源: eefocus關(guān)鍵字:ARM  裸機(jī)學(xué)習(xí)  I2C通信 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

常用的串行總線(xiàn)協(xié)議:


常用的微機(jī)與外設(shè)之間進(jìn)行數(shù)據(jù)傳輸?shù)拇锌偩€(xiàn)主要有I2C總線(xiàn)、SPI總線(xiàn)和SCI總線(xiàn)。

其中I2C總線(xiàn)以同步串行2線(xiàn)方式進(jìn)行通信(一條時(shí)鐘線(xiàn),一條數(shù)據(jù)線(xiàn))。

SPI總線(xiàn)則以同步串行3線(xiàn)方式進(jìn)行通信(一條時(shí)鐘線(xiàn),一條數(shù)據(jù)輸入線(xiàn),一條數(shù)據(jù)輸出線(xiàn))。

SCI總線(xiàn)是以異步方式進(jìn)行通信(一條數(shù)據(jù)輸入線(xiàn),一條數(shù)據(jù)輸出線(xiàn))。

1-wire,即單線(xiàn)總線(xiàn),又叫單總線(xiàn)。例如DS18B20溫度傳感器就是用的這種總線(xiàn)結(jié)構(gòu).

我們這里重點(diǎn)詳解下I2C串行總線(xiàn),我們這里以數(shù)據(jù)手冊(cè)的IIC時(shí)序圖為例講起,看不懂時(shí)序圖的小伙伴必須補(bǔ)上來(lái)了.


一.I2C串行總線(xiàn)的組成及工作原理.

1.I2C總線(xiàn)是PHLIPS公司推出的一種串行總線(xiàn),它只有兩根雙向信號(hào)線(xiàn)。一根是數(shù)據(jù)線(xiàn)SDA(serial data I/O),另一根是時(shí)鐘線(xiàn)SCL(serial clock)。


2.如下圖所示,IIC一條總線(xiàn)上可以?huà)於鄠€(gè)器件,而每個(gè)器件都有唯一的地址,這樣可以標(biāo)

識(shí)通信目標(biāo)。數(shù)據(jù)的通信的方式采用主從方式,主機(jī)負(fù)責(zé)主動(dòng)聯(lián)系從機(jī),而從機(jī)則被動(dòng)回應(yīng)數(shù)據(jù)并及時(shí)響應(yīng)。

這里寫(xiě)圖片描述

二.I2C總線(xiàn)傳輸協(xié)議

1.數(shù)據(jù)位的有效性規(guī)定:


SCL為高電平期間,數(shù)據(jù)線(xiàn)上的數(shù)據(jù)必須保持穩(wěn)定,只有SCL信號(hào)為低電平期間,SDA狀態(tài)才允許變化。如圖所示

這里寫(xiě)圖片描述

2.I2C的起始和終止信號(hào)


SCL線(xiàn)為高電平期間,SDA線(xiàn)由高電平向低電平的變化表示起始信號(hào);

SCL線(xiàn)為高電平期間,SDA線(xiàn)由低電平向高電平的變化表示終止信號(hào);

響應(yīng)信號(hào)( ACK ):接收器在接收到8位數(shù)據(jù)后,在第9個(gè)時(shí)鐘周期,拉低SDA電平。即接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳 遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障;如圖所示

這里寫(xiě)圖片描述

下列三種情況不會(huì)有ACK信號(hào):

A、當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時(shí)(從機(jī)忙于其他事無(wú)法響應(yīng)IIC總線(xiàn)操作或這個(gè)地址沒(méi)有對(duì)應(yīng)從機(jī)),在第9個(gè)SCL周期內(nèi)SDA線(xiàn)沒(méi)有被拉低,即沒(méi)有ACK信號(hào)。這時(shí),主機(jī)發(fā)送一個(gè)P信號(hào)終止傳輸或者重新發(fā)送一個(gè)S信號(hào)開(kāi)始新的傳輸

B、從機(jī)接收器在傳輸過(guò)程中不能接收更多的數(shù)據(jù)時(shí),也不會(huì)發(fā)出ACK信號(hào)。主機(jī)意識(shí)到這點(diǎn),從而發(fā)出一個(gè)P信號(hào)終止傳輸或者從新發(fā)送一個(gè)S信號(hào)開(kāi)始新的傳輸

C、主機(jī)接收器在接收到最后一個(gè)字節(jié)時(shí),也不會(huì)發(fā)出ACK信號(hào),于是,從機(jī)發(fā)送器釋放SDA線(xiàn),允許主機(jī)發(fā)送P信號(hào)結(jié)束傳輸


3.I2C字節(jié)的傳送與應(yīng)答


每一個(gè)字節(jié)必須保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳送最高位(MSB),每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位).如圖所示

這里寫(xiě)圖片描述

4.應(yīng)答位的作用


主機(jī)在發(fā)送數(shù)據(jù)時(shí),每次發(fā)送一字節(jié)數(shù)據(jù),都需要讀取從機(jī)應(yīng)答位,當(dāng)從機(jī)空閑可以接收該字節(jié)數(shù)據(jù)時(shí),從機(jī)會(huì)發(fā)出應(yīng)答(一幀數(shù)據(jù)的第9位為“0”),當(dāng)從機(jī)正忙于其他工作的處理來(lái)不及接收主機(jī)發(fā)送的數(shù)據(jù)時(shí),從機(jī)會(huì)發(fā)出非應(yīng)答(一幀數(shù)據(jù)的第9位為“1”)主機(jī)則應(yīng)發(fā)出終止信號(hào)以結(jié)束數(shù)據(jù)的繼續(xù)傳送,主機(jī)通過(guò)從機(jī)發(fā)出的應(yīng)答位來(lái)判斷從機(jī)是否成功接收數(shù)據(jù).


當(dāng)主機(jī)接收數(shù)據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信號(hào)。這個(gè)信號(hào)是由對(duì)從機(jī)的“非應(yīng)答”來(lái)實(shí)現(xiàn)的。然后,從機(jī)釋放SDA線(xiàn),以允許主機(jī)產(chǎn)生終止信號(hào)。


貼個(gè)IIC總線(xiàn)在傳送數(shù)據(jù)過(guò)程中信號(hào)時(shí)序圖.好好研究好時(shí)序圖,一切都可以輕松解決.

這里寫(xiě)圖片描述

● I2C是如何通信的?


s5pv210是發(fā)送或接受數(shù)據(jù)是如何區(qū)分多個(gè)子設(shè)備?可以看下圖:開(kāi)始通信以后,主設(shè)備首先會(huì)發(fā)送7bit位的slave device地址,和1bit位的rean或者write命令,

(1)如果為write命令,則主設(shè)備free SDA通信線(xiàn)(If the I2C-bus is free, both SDA and SCL lines should be both at High level.三星user manual),即SDA

為高位。然后從設(shè)備先ACK主設(shè)備(拉低SDA)表示收到命令(S)。然后主設(shè)備在發(fā)送8bit數(shù)據(jù),從設(shè)備在ACK(A)。然然后結(jié)束(P)。


(2)如果為read命令,則從設(shè)備先ACK主設(shè)備(拉低SDA),然后發(fā)送8bit數(shù)據(jù),主設(shè)備ACK從設(shè)備(拉低SDA),從設(shè)備在發(fā)送,直到主設(shè)備停止接收。

如下圖所以,白色bit位為主設(shè)備發(fā)送,灰色bit位為從設(shè)備發(fā)送。

這里寫(xiě)圖片描述

三.S5PV210的I2C控制器

IIC控制器的作用:

通過(guò)硬件的控制器來(lái)產(chǎn)生通信的時(shí)序,軟件只需要控制對(duì)應(yīng)IIC控制器的寄存器的配置即可。通信雙方的時(shí)序會(huì)由控制器自行分配。


1.結(jié)構(gòu)框圖分析

這里寫(xiě)圖片描述

時(shí)鐘源:PCLK_PSYS=65MHz,經(jīng)過(guò)內(nèi)部分頻最終得到I2C控制器的CLK,通信中這個(gè)CLK會(huì)通過(guò)SCL線(xiàn)傳給從設(shè)備。

總線(xiàn)控制邏輯單元:產(chǎn)生IIC通信時(shí)序(設(shè)置I2CCON、I2CSTAT)

移位寄存器:將要發(fā)送的字節(jié)數(shù)據(jù)變成1bit移位到SDA線(xiàn)

I2CCON:時(shí)鐘配置

I2CSTAT:操作模式及條件位發(fā)送,配合I2CCON一起用,產(chǎn)生通信時(shí)序和IIC接口配置

I2CADD:IIC地址,用來(lái)寫(xiě)自己的地址

I2CDS:數(shù)據(jù)移位器,發(fā)送和接收的地址放在這里

比較器+地址寄存器:作為從設(shè)備使用時(shí)將收到的地址與地址寄存器地址比較。


2.分析I2C的時(shí)鐘

這里寫(xiě)圖片描述

(1)I2C時(shí)鐘源頭來(lái)源于PCLK(PCLK_PSYS,等于65MHz),經(jīng)過(guò)了2級(jí)分頻后得到的。

(2)第一級(jí)分頻是I2CCON的bit6,可以得到一個(gè)中間時(shí)鐘I2CCLK(等于PCLK/16或者PCLK/512)

(3)第二級(jí)分頻是得到最終I2C控制器工作的時(shí)鐘,以I2CCLK這個(gè)中間時(shí)鐘為來(lái)源,分頻系數(shù)為[1,16]

(4)最終要得到時(shí)鐘是2級(jí)分頻后的時(shí)鐘,譬如這樣設(shè)置:65000KHz/512/4 = 31KHz


3.主要寄存器I2CCON、I2CSTAT


I2CCON + I2CSTAT:主要用來(lái)產(chǎn)生通信時(shí)序和I2C接口配置,分析兩個(gè)寄存器的bit位

I2CCON寄存器:

這里寫(xiě)圖片描述

I2CSTAT寄存器:

這里寫(xiě)圖片描述

四.S5PV210的I2C控制器通信流程分析

(1)S5PV210的主發(fā)送模式流程圖

這里寫(xiě)圖片描述

(2)S5PV210的主接收模式流程圖

這里寫(xiě)圖片描述

在SoC中I2C通信代碼中,只需要按照上圖中的流程圖的順序即可完成通信,I2C控制器內(nèi)部電路模塊已經(jīng)幫我們實(shí)現(xiàn)了通信時(shí)序,我們不需要去關(guān)心具體時(shí)序過(guò)程。


五.S5PV210板載的I2C傳感器

● I2C從設(shè)備的設(shè)備地址


(1)KXTE9的I2C地址固定為0b0001111(0x0f)

(2)I2C從設(shè)備地址本身是7位的,但是在I2C通信中發(fā)送I2C從設(shè)備地址時(shí)實(shí)際發(fā)送的是8位,這8位中高7位(bit7-bit1)對(duì)應(yīng)I2C從設(shè)備的7位地址,最低一位(LSB)存放的是R/W信息(就是說(shuō)下一個(gè)數(shù)據(jù)是主設(shè)備寫(xiě)從設(shè)備讀(對(duì)應(yīng)0),還是主設(shè)備讀從設(shè)備寫(xiě)(對(duì)應(yīng)1))

(3)基于上面講的,對(duì)于KXTE9來(lái)說(shuō),

主設(shè)備(SoC)寫(xiě)給gsensor信息時(shí),SAD應(yīng)該是:0b00011110(0x1E)

如果是主設(shè)備讀取gsensor信息時(shí),SAD應(yīng)該是:0b00011111(0x1F)**


● IIC傳感器的讀寫(xiě)寄存器流程圖

這里寫(xiě)圖片描述

六.SoCI2C控制器通信代碼分析


七.I2C傳感器通信代碼分析

目前只能根據(jù)代碼分析對(duì)應(yīng)寄存器的使用,對(duì)內(nèi)部驅(qū)動(dòng)代碼不懂

研究了驅(qū)動(dòng)后邊補(bǔ)

關(guān)鍵字:ARM  裸機(jī)學(xué)習(xí)  I2C通信 引用地址:十五.ARM裸機(jī)學(xué)習(xí)之I2C通信詳解

上一篇:SDRAM-MEMORY CONTROLLER
下一篇:最后一頁(yè)

推薦閱讀

在學(xué)習(xí)單片機(jī)和進(jìn)行單片機(jī)產(chǎn)品開(kāi)發(fā)過(guò)程中,我們通常使用仿真器作為調(diào)試程序的有力工具。但仿真器價(jià)格昂貴,對(duì)于初學(xué)者和一般個(gè)人開(kāi)發(fā)人員很難承受。為此,我們選用了帶ISP 功能的AT89S51/52 系列單片機(jī),不需要仿真器也能很輕易地完成系統(tǒng)調(diào)試和開(kāi)發(fā)。所謂ISP,即In SystemProgrammerable 在線(xiàn)系統(tǒng)可編程。也就是說(shuō),單片機(jī)可在系統(tǒng)應(yīng)用板上進(jìn)行...
  近日,亞洲最具影響力的行業(yè)展會(huì)慕尼黑上海電子展在上海新國(guó)際博覽中心舉行,來(lái)自全球各地1500多家專(zhuān)業(yè)展商帶來(lái)了的電子技術(shù)和產(chǎn)品,并重點(diǎn)展示未來(lái)汽車(chē)、智慧工廠、人工智能、等領(lǐng)域的應(yīng)用方案。而在電子制造方面,數(shù)字化技術(shù)正給行業(yè)帶來(lái)全新的變革,而眾多機(jī)器人成為本次展會(huì)的亮點(diǎn)之一。   近年來(lái),隨著人口紅利的逐步消失,制造業(yè)開(kāi)始嘗試采...
TMCM-1617是一款極其輕巧的小型單軸伺服驅(qū)動(dòng)器,適用于高達(dá)18A RMS和+ 24V電源的三相BLDC電動(dòng)機(jī),可以進(jìn)行定制和不同的套管選項(xiàng)。 漢堡,2020年4月6日-TRINAMIC運(yùn)動(dòng)控制有限公司宣布推出其堅(jiān)固耐用的高品質(zhì)單軸伺服控制器模塊。專(zhuān)為具有18A RMS和8…28V DC的伺服驅(qū)動(dòng)器而設(shè)計(jì),配有EtherCAT或CAN和RS485接口。符合DIN EN 60529的超輕鋁制外殼和先進(jìn)...
中國(guó)上海 - 2021年4月7日 — 2021慕尼黑上海電子展覽會(huì)即將于4月14日至16日在上海新國(guó)際博覽中心舉辦。慕尼黑上海電子展作為電子行業(yè)展覽,是行業(yè)內(nèi)重要的盛事。本屆慕尼黑上海電子展覽會(huì)將匯聚近千家國(guó)內(nèi)外優(yōu)質(zhì)電子企業(yè),涵蓋從產(chǎn)品設(shè)計(jì)到應(yīng)用落地的上下游產(chǎn)業(yè),展示內(nèi)容包括了半導(dǎo)體、傳感器、物聯(lián)網(wǎng)技術(shù)、汽車(chē)電子及測(cè)試等。作為功率半導(dǎo)體行業(yè)的領(lǐng)...

史海拾趣

問(wèn)答坊 | AI 解惑

雙電機(jī)驅(qū)動(dòng)的彈性系統(tǒng)

比較單電機(jī)-機(jī)械彈性系統(tǒng)及雙電機(jī)驅(qū)動(dòng)的彈性系統(tǒng)…

查看全部問(wèn)答∨

FPGA網(wǎng)站大全

FPGA網(wǎng)站大全收集的不是很到位,不過(guò)希望對(duì)大家有幫助! 1. OPENCORES.ORG 這里提供非常多,非常好的PLD了內(nèi)核,8051內(nèi)核就可以在里面找到。 進(jìn)入后,選擇project或者由http//www.opencores.org/browse.cgi/by_category進(jìn)入。 對(duì)于想了解這個(gè) ...…

查看全部問(wèn)答∨

為啥我在PCB里移動(dòng)某些元件,需要以遠(yuǎn)處一點(diǎn)為圓心?

感覺(jué)好麻煩,需要把圖放小,然后以十萬(wàn)八千里之外的那個(gè)十字叉(注意圖中左側(cè)那個(gè)地方有個(gè)小叉,我要移動(dòng)的是中間的蜂鳴器)為圓心移動(dòng),大大降低了放置的精確性和隨意性.哪位前輩知道怎么改一下...…

查看全部問(wèn)答∨

vxworks UDP 組播發(fā)送

各位大哥幫忙看看我的組播發(fā)送函數(shù),sendto返回老是ERROR,發(fā)送失敗,是什么原因?謝謝。 struct   sockaddr_in       local;        struct   sockaddr_in     &nb ...…

查看全部問(wèn)答∨

CE 6.0 模擬器 支持MFC 問(wèn)題

看到網(wǎng)上說(shuō)的是把vs2005\\vc\\ce\\dll下與對(duì)應(yīng)cpu的mfc dll 手動(dòng)添加到NK.bin,模擬器就可以支持MFC APP 但是我添加了沒(méi)的反映, APP 是vs2005,smartdevice,vc的? --------需要注意什么問(wèn)題呢?…

查看全部問(wèn)答∨

vxworks 中斷響應(yīng)時(shí)間問(wèn)題

我的開(kāi)發(fā)環(huán)境是:vxworks5.5 和power pc 405 300MHz,現(xiàn)在通過(guò)硬件測(cè)得中斷響應(yīng)時(shí)間在13微妙左右,這個(gè)時(shí)間不滿(mǎn)足我的應(yīng)用要求,不知道在這個(gè)環(huán)境下最快的中斷響應(yīng)時(shí)間能達(dá)到多少? 怎樣配置才能縮短中斷響應(yīng)時(shí)間 ? 謝謝!!!…

查看全部問(wèn)答∨

2407 io 讀寫(xiě)問(wèn)題

我認(rèn)為你把IS和A0直接相與欠妥。若DAC的片選低有效,IS和A0的非相與后接入如DAC; 若DAC的片選高有效,IS的非和A0相與后接入如DAC。你試試吧。…

查看全部問(wèn)答∨

一些暫時(shí)不用的板子拿出來(lái)?yè)Q點(diǎn)東西

本帖最后由 ddllxxrr 于 2016-1-7 16:27 編輯 想玩一下PSoc 3/5, FPGA 或DSP STM32/Discovery 的板子 博創(chuàng) 2410 利爾達(dá)MSP430F5438 ENERGY(小壁虎) EFM32 Starter kit(Tiny Gecko Starter kit EFM32TG-STK3300) Renesas RPBRX210 Ti LM4F23 ...…

查看全部問(wèn)答∨

運(yùn)放電路求指導(dǎo)

求各路大神指導(dǎo)這個(gè)電路怎么分析 …

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 罗定市| 枝江市| 新泰市| 舒兰市| 河东区| 卢氏县| 偏关县| 连平县| 台北市| 宜君县| 崇礼县| 河南省| 湾仔区| 红安县| 秦安县| 巴彦淖尔市| 韶关市| 民丰县| 稷山县| 三明市| 呈贡县| 鄯善县| 涿鹿县| 南木林县| 平泉县| 轮台县| 安新县| 莆田市| 夏邑县| 安多县| 谢通门县| 和田市| 积石山| 平昌县| 晋中市| 孙吴县| 东海县| 兰西县| 博乐市| 江津市| 项城市|