日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

 

輕松學ARM系列之I2C總線

作者:熊老師,華清遠見教育科技集團講師。

今天我們來一起學習,arm裸機中對I2C設(shè)備學習。包括GPIO,IIC控制器學習。

一、總體架構(gòu)圖

二、I2C操作的一般步驟

2.1  查看s5pv210開發(fā)板的I2C相關(guān)的硬件原理圖

開發(fā)板上IIC實際連接電路,AT24C02為EEPROM,大小為2k位,256字節(jié)

核心板對應(yīng)的原理圖

2.2  設(shè)置GPIO寄存器為I2C功能

配置GPD1CON[0] 和 GPD1CON[1] 為I2C 功能:

GPDCON.GPD1CON = (GPDCON.GPD1CON & (~0xff))| 0x22

2.3 查看I2C控制器相應(yīng)的章節(jié),對相關(guān)的寄存器進行配置

選擇設(shè)備的發(fā)送方式,主發(fā)射,從接收模式(這個是由從設(shè)備自動決定的)

向寄存器中寫入。每個IIC獨有的設(shè)備地址

數(shù)據(jù)移位寄存器

2.3.1 查看AT24C02相關(guān)的芯片手冊,查看操作的順序

操作的設(shè)備的地址為0xa0 , 對應(yīng)的是寫操作, 0xa1 對應(yīng)的是讀操作

2.3.2 對AT24C02按照字節(jié)的寫操作

對EEPROM 按字節(jié)寫的操作順序,先由主設(shè)備發(fā)送一個start起始信號,發(fā)一個字節(jié)的設(shè)備地址(7 + 1 位 ,寫),第9位為ACK應(yīng)答位,發(fā)一字節(jié)的地址(表示要往哪個地址空間寫數(shù)據(jù),一共256個字節(jié)地址),接著傳送一字節(jié)的數(shù)據(jù)。發(fā)一個ACK信號,發(fā)送停止信號stop。多存放256字節(jié)的數(shù)據(jù)

對s5pv210上相關(guān)的IIC控制器,進行相應(yīng)的配置。

2.3.3  對于主設(shè)備發(fā)送,從設(shè)備接收。寫操作,往EEPROM中寫數(shù)據(jù)

① 寫設(shè)備地址
        I2C0.I2CCON0 = 0xe0 ,512分頻,使能ACK信號,使能中斷
        I2C0.I2CDS0 = 0xa0;//寫從機設(shè)備地址
        I2C0.I2CSTAT0 = 0xf0;主設(shè)備發(fā)送,產(chǎn)生start信號
        while (!((I2C0.I2CCON0)& (1 <<4)));如果發(fā)送完畢第5位,中斷標志位 值為1,表示寫設(shè)備地址成功。否側(cè),相當于具有延時的功能。

②寫數(shù)據(jù)的地址,表示要對那一個字節(jié)的地址,要對他進行存放數(shù)據(jù)
        I2C0.I2CCON0 = I2C0.I2CCON0 &( ~(0x1 << 4));表示清除pend狀態(tài)位,復位操 作寫;
        I2C0.I2CDS0 = addr; 從機的地址,0 ~ 255 之間,一個256個字節(jié),因為該芯 片的大小就是2k位,256個字節(jié)
        while (!((I2C0.I2CCON0)& (1 <<4)));如果發(fā)送完畢第5位,中斷標志位 值為1,表示寫數(shù)據(jù)地址成功。否側(cè),相當于具有延時的功能。

③ 在相應(yīng)的地址上寫上相應(yīng)的數(shù)據(jù)
        I2C0.I2CCON0 = I2C0.I2CCON0 &( ~(0x1 << 4));表示清除pend狀態(tài)位,復位 操作寫;
        I2C0.I2CDS = data;
        while (!((I2C0.I2CCON0)& (1 << 4)));如果發(fā)送完畢第5位,中斷標志位 值為1,表示寫數(shù)據(jù)地址成功。否側(cè),相當于具有延時的功能。

④發(fā)送一個stop信號
        I2C0.I2CSTAT0 &= ~(1<<5); /*STOP signal generation,free bus */
        I2C0.I2CCON0 &= ~(1<<4); /*clean interrup pending bit */

⑤ 至此一次寫操作順利完成,按字節(jié)寫數(shù)據(jù)的

2.3.4 對于讀數(shù)據(jù),主機發(fā)送模式,后接收模式,選取的是隨機讀的相應(yīng)地址中的數(shù)據(jù)的方式

① 寫設(shè)備地址,開啟start啟動信號
        I2C0.I2CCON0 = 0xe0 ,512分頻,使能ACK信號,使能中斷
        I2C0.I2CDS0 = 0xa0;//寫從機設(shè)備地址
        I2C0.I2CSTAT0 = 0xf0;主設(shè)備發(fā)送,產(chǎn)生start信號
        while (!((I2C0.I2CCON0)& (1 <<4)));如果發(fā)送完畢第5位,中斷標志位 值為1,表示寫設(shè)備地址成功。否側(cè),相當于具有延時的功能。

② 寫存放的數(shù)據(jù)的地址
        I2C0.I2CCON0 = I2C0.I2CCON0 &( ~(0x1 <<4));表示清除pend狀態(tài)位,復位操 作寫;
        I2C0.I2CDS0 = addr & 0xff; 從機的地址,0 ~ 255 之間,一個256個字節(jié),因 為該芯片的大小就是2k位,256個字節(jié)
        while (!((I2C0.I2CCON0)& (1 <<4)));如果發(fā)送完畢第5位,中斷標志位 值為1,表示寫數(shù)據(jù)地址成功。否側(cè),相當于具有延時的功能。

③ 讀設(shè)備地址,清pend寄存器,發(fā)送一個start信號, 此時主機接收
        I2C0.I2CCON0 = I2C0.I2CCON0 &( ~(0x1 <<4));表示清除pend狀態(tài)位,復位操作寫;
        I2C0.I2CDS0 = 0xa0 | 0x01; //寫設(shè)備地址,讀操作
        I2C0.I2CSTAT = 0xb0; //1011 0000
        while(!(I2C0.I2CCON0&(1<<4))); /*The end of the waiting to be sent */

④讀取數(shù)據(jù),讀數(shù)據(jù)時不產(chǎn)生ACK信號
        I2C0.I2CCON0 &= ~((1 << 7)| (1 << 4)); 清中斷標志位,關(guān)閉ACK應(yīng)答信號
        while (!(I2C0.I2CCON0 & (1 <<4))); 每次操作成功都會產(chǎn)生一個中斷標志位
        data = I2C.I2CDS0;

⑤ 發(fā)送stop信號
        I2C0.I2CSTAT0 &= ~(1<<5); /*STOP signal generation,free bus */
        I2C0.I2CCON0 &= ~(1<<4); /*clean interrup pending bit */

⑥ 至此完成了一次 隨機的讀操作

主站蜘蛛池模板: 故乡,别来无恙演员表| 碟仙诡谭| 老阿姨电影电视剧免费| 女人香韩国电影| wall.e| 唐街十三妹| doors2怪物图鉴| 樊城电影| 贾宏| 宁波电视台| 开国大典ppt课件| 男女电视剧| 2025女人最走运头像| 明日花绮罗| 日本电车系列| 《牵牛花》阅读答案| 新年大吉祁隆| 皮皮虾影视| 魔1983| 预备党员季度思想汇报| 美女网站视频免费黄| lanarhoades在线av| 红岩下的追捕电视剧| 美娜个人资料简介| ()目()身的词语| 无影侦察队电影完整版免费| 邪教档案| 翡翠台高清直播| 小组介绍| 韩国三级大全中文字幕999| 布莱克·莱弗利身高体重| 狗狗交配视频全过程| 性裸体视频| 血色浪漫电视剧演员表| 《假期》电影| 数字记忆法编码100| 特级做a爰片毛片免费看108| 中央6套| 高锰酸盐指数和cod的关系| 古天乐电影全部作品最新| 中女|