private_data = /* 初始化AP3216C */ ap3216c_write_reg( /* 復(fù)位AP3216C */ mdelay( 50 ); /* AP3216C復(fù)位最少10m" />
0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C spec規(guī)定和詳細(xì)解析

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-22 15:55 ? 次閱讀

I2C

I2C spec 規(guī)定如下

圖片

詳細(xì)解析如下

圖片

對(duì)從機(jī)進(jìn)行寫操作時(shí),主設(shè)備發(fā)出開始標(biāo)志 (S) 和寫地址 (從機(jī)地址加一個(gè) R/W 位,1 為讀,0 為寫)。從機(jī)產(chǎn)生應(yīng)答信號(hào)。然后主設(shè)備開始傳送寄存器地址 (RA),接到應(yīng)答后,開始傳送寄存器數(shù)據(jù),然后仍然要有應(yīng)答信號(hào),連續(xù)寫入多字節(jié)時(shí)依次推。

舉例(例子進(jìn)行了兩次封裝)

static int ap3216c_open(struct inode *inode, struct file *filp)
{
 filp- >private_data = &ap3216cdev;

 /* 初始化AP3216C */
 ap3216c_write_reg(&ap3216cdev, AP3216C_SYSTEMCONG, 0x04);  /* 復(fù)位AP3216C    */
 mdelay(50);              /* AP3216C復(fù)位最少10ms  */
 ap3216c_write_reg(&ap3216cdev, AP3216C_SYSTEMCONG, 0X03);  /* 開啟ALS、PS+IR   */
 return 0;
}

static void ap3216c_write_reg(struct ap3216c_dev *dev, u8 reg, u8 data)
{
 u8 buf = 0;
 buf = data;
 ap3216c_write_regs(dev, reg, &buf, 1);
}

static s32 ap3216c_write_regs(struct ap3216c_dev *dev, u8 reg, u8 *buf, u8 len)
{
 u8 b[256];
 struct i2c_msg msg;
 struct i2c_client *client = (struct i2c_client *)dev- >private_data;
 
 b[0] = reg;     /* 寄存器首地址 */
 memcpy(&b[1],buf,len);  /* 將要寫入的數(shù)據(jù)拷貝到數(shù)組b里面 */
  
 msg.addr = client- >addr; /* ap3216c地址 */
 msg.flags = 0;    /* 標(biāo)記為寫數(shù)據(jù) */
 msg.buf = b;    /* 要寫入的數(shù)據(jù)緩沖區(qū) */
 msg.len = len + 1;   /* 要寫入的數(shù)據(jù)長(zhǎng)度 */

 return i2c_transfer(client- >adapter, &msg, 1);
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6719

    瀏覽量

    88325
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1453

    瀏覽量

    122283
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    I2C通信設(shè)計(jì)深度解析

    I2C通信設(shè)計(jì)深度解析
    發(fā)表于 08-12 21:31

    i2c總線ppt(I2C總線器件應(yīng)用)

    I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理I2C總線系統(tǒng)結(jié)構(gòu)I2C總線系統(tǒng)結(jié)構(gòu)如圖7-1所示。其中,SCL是時(shí)鐘線,
    發(fā)表于 08-13 17:34 ?0次下載

    i2c總線技術(shù) (非常詳細(xì))

    i2c總線技術(shù):2 I2C 總線使設(shè)計(jì)人員和廠商都得益.. 32.1 設(shè)計(jì)人員的得益.. 42.2 廠商的得益. 53 介紹I2C 總線規(guī)范 64
    發(fā)表于 03-25 08:58 ?62次下載

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發(fā)表于 04-23 13:55 ?36次下載

    什么是i2c總線

    什么是i2c總線  下載請(qǐng)點(diǎn)擊: i2c總線協(xié)議中文版 
    發(fā)表于 11-05 09:26 ?2877次閱讀

    I2C最新協(xié)議標(biāo)準(zhǔn)

    I2C最新協(xié)議標(biāo)準(zhǔn),詳細(xì)介紹了IIC信號(hào)要求,供大家參考,
    發(fā)表于 12-22 17:59 ?13次下載

    i2c

    單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;單片機(jī)i2c總線操作;
    發(fā)表于 05-17 11:09 ?35次下載

    I2C資料總結(jié)

    I2C資料總結(jié)及實(shí)際問題解析
    發(fā)表于 08-16 10:35 ?2次下載

    詳細(xì)說明了I2C庫文件的使用,對(duì)于理解I2C有幫助

    詳細(xì)說明了I2C庫文件的使用,對(duì)于理解I2C有幫助
    發(fā)表于 10-13 10:02 ?28次下載

    I2C總線的規(guī)范詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是I2C總線的規(guī)范詳細(xì)說明
    發(fā)表于 09-30 17:29 ?18次下載
    <b class='flag-5'>I2C</b>總線的規(guī)范<b class='flag-5'>詳細(xì)</b>說明

    硬件I2C與模擬I2C

    硬件I2C對(duì)應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動(dòng)電路,其所使用的I2C管腳也是專用的,因而效率要遠(yuǎn)高于軟件模擬的I2C;一般也較為穩(wěn)定,但
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    一文詳解I2C總結(jié)的基礎(chǔ)知識(shí)

    博主將 I2C spec 文章總結(jié)為一篇,目錄如下
    的頭像 發(fā)表于 06-27 15:25 ?5961次閱讀

    I2C總線能掛多少設(shè)備?I2C spec知識(shí)總結(jié)

    I2C 是 Philips 公司在 1982 年為主機(jī)板、嵌入式系統(tǒng)(短距)設(shè)計(jì)的一種簡(jiǎn)單、雙向二線制同步串行總線。
    的頭像 發(fā)表于 03-27 09:19 ?5587次閱讀

    I2C先寫后讀是什么

    I2CI2C 先寫后讀 其實(shí)所謂的 I2C 讀,都是先寫后讀。 I2C spec 規(guī)定如下
    的頭像 發(fā)表于 07-22 15:58 ?2159次閱讀
    <b class='flag-5'>I2C</b>先寫后讀是什么

    i2c采樣是上升沿嗎?

    數(shù)據(jù)。在本文中,我們將詳細(xì)討論I2C采樣的工作原理,采樣時(shí)機(jī)以及如何進(jìn)行I2C采樣。 I2C采樣的原理 I2C采樣是基于
    的頭像 發(fā)表于 09-19 17:16 ?2099次閱讀