I2C總線原理介紹與實例開發(fā)
控制字后就是相應的操作,讀或寫,一定不要結束,因為這個操作還沒有完成,如果結束就等于放棄操作。
先來看寫操作,寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同,AT24C02為8字節(jié),每寫一個字節(jié)后,地址自動加1。關于頁面寫的地址、應答和數(shù)據(jù)傳送的時序參見圖3,字節(jié)寫可以看成是只有一個字節(jié)的頁面寫,也就是寫一個數(shù)據(jù)后停止。注意:寫一次需要一定時間,一般為10ms,要等侍這個操作完成。時序如下圖:
說明:對于AT24C02,在控制字后還必須寫入地址,這個地址是以后讀寫的起始地址。
讀操作有三種基本操作:當前地址讀、隨機讀和順序讀。三種操作方法類似,只是讀的數(shù)據(jù)個數(shù)不同,可連續(xù)讀8個字節(jié),圖4給出的是順序讀的時序圖,圖中共讀了四個數(shù)據(jù),需要注意的是當前的地址,如果不是想要的,可以用寫操作,重新寫入地址。非常重要的是,每讀一個數(shù)據(jù)后,必須置低SDA,作為應答,否則,只能讀一個數(shù)據(jù),后面的數(shù)據(jù),因為收到不應答信號,AT24C02就會認為出錯,停止操作。特別提醒的是,當SCL為低電平時,數(shù)據(jù)是可變的,因些只有SCL為高電平時,才能讀數(shù)。(相關時序,請看例程序的,讀功能函數(shù))
四.例程序(51匯編,測試單片機為AT89C51,12M晶振)
電路連接如圖5,其中A0,A1,A2為地址線,本例中全部接地,因此全部為0。由于SCL和SDA為漏極開路輸出,所以在使用時,需加上拉電阻。
評論