1、IIC助聽器能自己調大小聲音嗎?
可以通過輔件調試
2、iic匯流排中scl,sda兩根線的長短會影響數據讀寫嗎?
基本不會,iic才100kbit的速率,SCL周期也就是10us。而在PCB上,5inch才帶來1ns的skew,所以一般根本不足以影響到iic兩根線的同步。
3、IIC通信 中 字元傳送函數 if((c<<BitCnt)&0x80)SDA=1; //判斷發送位 else SDA=0; 這是什麼意思???
這句話是這樣的:
C為你要寫的數,bitcnt是一個變數,用它來表示一個位元組8位(BitCnt<8即專0到7共8位),C左移bitcnt(c<<BitCnt)
if((c<<BitCnt)&0x80)SDA=1;else SDA=0; 的意思呢屬,
if((c<<BitCnt)&0x80)這個是判斷C的最高位是否為1,如果為1,則把SDA數據線拉高,反之,則把SDA數據線拉低.
假如你要寫的數為0X01;那麼在程序8次時,會把SDA拉高.前面7次SDA都是拉低.
0X01左移7位等於0X80,0X80&0X80=1000,0000&1000,0000=1;if(1)為真,所以執行SDA=1
4、I2C匯流排的最大長度是多少
I2C匯流排的最大長度是:小於200mm~300mm,跟傳輸速度、布線等有關系,延長距離可以用I2C中繼器晶元,如P82B715、P82B96等等;在標准上沒有看到明確規定有效的傳輸距離。
I2C傳輸的距離應該取決信號的穩定性,而穩定性由匯流排負載,傳輸速度,匯流排電容,甚至外部干擾等因素決定,因此有可能出現5米的通訊距離換個位置或者加個設備就出問題。
(4)iic總站長度擴展資料:
Hs 模式主機器件有一個SDAH 信號的開漏輸出緩沖器和一個在SCLH 輸出的開漏極下拉和電流源上拉電路,這個電流源電路縮短了SCLH 信號的上升時間,任何時候在Hs 模式,只有一個主機的電流源有效。
在多主機系統的Hs 模式中,不執行仲裁和時鍾同步,以加速位處理能力。仲裁過程一般在前面用F/S 模式傳輸主機碼後結束。
Hs 模式主機器件以高電平和低電平是1:2 的比率產生一個串列時鍾信號。解除了建立和保持時間的時序要求,
可以選擇Hs 模式器件有內建的電橋。在Hs 模式傳輸中,Hs 模式器件的高速數據(SDAH)和高速串列時鍾(SCLH )線通過這個電橋與F/S 模式器件的SDA 和SCL 線分隔開來,減輕了SDAH 和SCLH 線的電容負載,使上升和下降時間更快。
Hs 模式從機器件與F/S 從機器件的唯一差別是它們工作的速度。Hs 模式從機在SCLH 和SDAH輸出有開漏輸出的緩沖器。SCLH 管腳可選的下拉晶體管可以用於拉長SCLH 信號的低電平,但只允許在Hs 模式傳輸的響應位後進行。
Hs 模式器件的輸出可以抑制毛刺,而且SDAH 和SCLH 輸出有一個施密特觸發器;Hs 模式器件的輸出緩沖器對SDAH 和SCLH 信號的下降沿有斜率控制功能。
參考資料來源:網路-I2C匯流排
5、51單片機用iic匯流排對eeprom進行操作
同意樓下 IIC的短延時是非常重要的 弄不好時序就錯了 你的delay函數這樣寫相當於沒有 最好用nop指令來寫
6、I2C匯流排的最大長度是多少
在標准上沒有看到明確規定有效的傳輸距離。但是I2C傳輸的距離應該取決信號內的穩定性,而容穩定性由匯流排負載,傳輸速度,匯流排電容,甚至外部干擾等因素決定。因此有可能出現5米的通訊距離換個位置或者加個設備就出問題。
最主要的是出現問題的時候能夠想辦法解決:
1.
如果是實際應用需要保證傳輸波形的上升沿,下降沿,高低電平達到規定的要求即可排除線長的影響。
2.
如果只是設計的時候選擇方案,上面的回答是25英尺(7米多)。我本身最長實際用過2米(普通細排線,在實驗室環境中)。
7、硬體IIC怎麼接收不同位元組的長度的數據
數據通信,要麼預先傳送一個數據長度,要麼傳輸結尾標志
8、I2C匯流排的發展史
I2C(Inter-Integrated Circuit)匯流排是一種由PHILIPS公司開發的兩線式串列匯流排,用於連接微控制器及其外圍設備。I2C匯流排產生於在80年代,最初為音頻和視頻設備開發,如今主要在伺服器管理中使用,其中包括單個組件狀態的通信。例如管理員可對各個組件進行查詢,以管理系統的配置或掌握組件的功能狀態,如電源和系統風扇。可隨時監控內存、硬碟、網路、系統溫度等多個參數,增加了系統的安全性,方便了管理。
1 I2C匯流排特點
I2C匯流排最主要的優點是其簡單性和有效性。由於介面直接在組件之上,因此I2C匯流排佔用的空間非常小,減少了電路板的空間和晶元管腳的數量,降低了互聯成本。匯流排的長度可高達25英尺,並且能夠以10Kbps的最大傳輸速率支持40個組件。I2C匯流排的另一個優點是,它支持多主控(multimastering), 其中任何能夠進行發送和接收的設備都可以成為主匯流排。一個主控能夠控制信號的傳輸和時鍾頻率。當然,在任何時間點上只能有一個主控。
2 I2C匯流排工作原理
2.1 匯流排的構成及信號類型
I2C匯流排是由數據線SDA和時鍾SCL構成的串列匯流排,可發送和接收數據。在CPU與被控IC之間、IC與IC之間進行雙向傳送,最高傳送速率100kbps。各種被控制電路均並聯在這條匯流排上,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C匯流排上並接的每一模塊電路既是主控器(或被控器),又是發送器(或接收器),這取決於它所要完成的功能。CPU發出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調整的類別(如對比度、亮度等)及需要調整的量。這樣,各控制電路雖然掛在同一條匯流排上,卻彼此獨立,互不相關。
I2C匯流排在傳送數據過程中共有三種類型信號, 它們分別是:開始信號、結束信號和應答信號。
開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。
結束信號:SCL為低電平時,SDA由低電平向高電平跳變,結束傳送數據。
應答信號:接收數據的IC在接收到8bit數據後,向發送數據的IC發出特定的低電平脈沖,表示已收到數據。CPU向受控單元發出一個信號後,等待受控單元發出一個應答信號,CPU接收到應答信號後,根據實際情況作出是否繼續傳遞信號的判斷。若未收到應答信號,由判斷為受控單元出現故障。
目前有很多半導體集成電路上都集成了I2C介面。帶有I2C介面的單片機有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外圍器件如存儲器、監控晶元等也提供I2C介面。
3 匯流排基本操作
I2C規程運用主/從雙向通訊。器件發送數據到匯流排上,則定義為發送器,器件接收數據則定義為接收器。主器件和從器件都可以工作於接收和發送狀態。 匯流排必須由主器件(通常為微控制器)控制,主器件產生串列時鍾(SCL)控制匯流排的傳輸方向,並產生起始和停止條件。SDA線上的數據狀態僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態的改變被用來表示起始和停止條件。
3.1 控制位元組
在起始條件之後,必須是器件的控制位元組,其中高四位為器件類型識別符(不同的晶元類型有不同的定義,EEPROM一般應為1010),接著三位為片選,最後一位為讀寫位,當為1時為讀操作,為0時為寫操作
3.2 寫操作
寫操作分為位元組寫和頁面寫兩種操作,對於頁面寫根據晶元的一次裝載的位元組不同有所不同。關於頁面寫的地址、應答和數據傳送的時序
3.3 讀操作
讀操作有三種基本操作:當前地址讀、隨機讀和順序讀。圖4給出的是順序讀的時序圖。應當注意的是:最後一個讀操作的第9個時鍾周期不是「不關心」。為了結束讀操作,主機必須在第9個周期間發出停止條件或者在第9個時鍾周期內保持SDA為高電平、然後發出停止條件。
4 實例:X24C04與MCS-51單片機軟硬體的實現
X24C04是XICOR公司的CMOS 4096位串列EEPROM,內部組織成512×8位。16位元組頁面寫。與MCS-51單片機介面如圖5所示。由於SDA是漏極開路輸出,且可以與任何數目的漏極開路或集電極 開路輸出「線或」(wire-Ored)連接。上拉電阻的選擇可參考X24C04的數據手冊。下面是通過I2C介面對X24C04進行單位元組寫操作的常式。
;名稱:BSENT
;描述:寫位元組
;功能:寫一個位元組
;調用程序:無
;輸入參數:A
;輸出參數:無
BSEND: MOV R2,#08H ;1位元組8位
SENDA: CLR P3.2 ;
RLC A ;左移一位
MOV P3.3,C ;寫一位
SETB P3.2
DJNZ R2,SENDA ;寫完8個位元組?
CLR P3.2 ;應答信號
SETB P3.3
SETB P3.2
RET
在I2C匯流排的應用中應注意的事項總結為以下幾點 :
1) 嚴格按照時序圖的要求進行操作,
2) 若與口線上帶內部上拉電阻的單片機介面連接,可以不外加上拉電阻。
3) 程序中為配合相應的傳輸速率,在對口線操作的指令後可用NOP指令加一定的延時。
4) 為了減少意外的干擾信號將EEPROM內的數據改寫可用外部防寫引腳(如果有),或者在EEPROM內部沒有用的空間寫入標志字,每次上電時或復位時做一次檢測,判斷EEPROM是否被意外改寫。
9、用單片機IIC調取數據表,不能按照數據輸出,是長度沒讀合適還是沒有反復循環,還是延時問題?請大神賜
看程序估計是你的延時時間不太合適。調整延時時間吧。一般不用這么長的。一般都是微米級的。
10、STM32IIC接收到的數據都是0x40怎麼辦
建議使用示波器查看一下SCL及SDA的波形是否正常。
注意一下iic通信中的延時,這個可以結合第一點的波形來查看。
iic作為主機使用,在stm32上應用已經很廣泛了。