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

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

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

STM32入門學(xué)習(xí)筆記之EEPROM存儲(chǔ)實(shí)驗(yàn)3

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術(shù)園地 ? 2023-02-16 14:22 ? 次閱讀

16.3.5 自身地址寄存器1:I2Cx_OAR1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADDMODE - ADD[9:8] ADD[7:1] ADD0

Bit 15:尋址模式(從模式)

0:7位從地址(不響應(yīng)10位地址)

1:10位從地址(不響應(yīng)7位地址)

Bit 9~Bit 8:接口地址

7位地址模式時(shí)不用關(guān)心

10位地址模式時(shí)為地址的9~8位

Bit 7Bit 1:接口地址,地址的71位

Bit 0:接口地址

7位地址模式時(shí)不用關(guān)心

10位地址模式時(shí)為地址第0位

16.3.6 自身地址寄存器2:I2Cx_OAR2

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- ADD2[7:1] ENDUAL

Bit 7Bit 1:接口地址,在雙地址模式下地址的71位

Bit 0:雙地址模式使能位

0:在7位地址模式下,只有OAR1被識(shí)別

1:在7位地址模式下,OAR1和OAR2都被識(shí)別

16.3.7 狀態(tài)寄存器1:I2Cx_SR1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SMBALERT TIMEOUT - PECERR OVR AF ARL0 BERR TXE RXNE - STOPF ADD10 BTF ADDR SB

Bit 15: SMBus提醒

在SMBus主機(jī)模式下:

0:無SMBus提醒

1:在引腳上產(chǎn)生SMBAlert提醒事件

在SMBus從機(jī)模式下:

0:沒有SMBAlert響應(yīng)地址頭序列

1:收到SMBAlert響應(yīng)地址頭序列至SMBAlert變低

Bit 14:超時(shí)或Tlow錯(cuò)誤

0:無超時(shí)錯(cuò)誤

1:SCL低電平達(dá)到25ms;或主機(jī)低電平累積時(shí)間超過10ms;或從設(shè)備低電平累積時(shí)間超過25ms

Bit 12:在接收時(shí)發(fā)生PEC錯(cuò)誤

0:無PEC錯(cuò)誤:接收到PEC后接收器返回ACK(如果ACK=1)

1:有PEC錯(cuò)誤:接收到PEC后接收器返回NACK(不管ACK是什么值)

Bit 11:過載/欠載

0:無過載/欠載

1:出現(xiàn)過載/欠載

Bit 10:應(yīng)答失敗

0:沒有應(yīng)答失敗

1:應(yīng)答失敗

Bit 9:仲裁丟失(主模式)

0:沒有檢測到仲裁丟失

1:檢測到仲裁丟失

Bit 8:總線出錯(cuò)

0:無起始或停止條件出錯(cuò)

1:起始或停止條件出錯(cuò)

Bit 7:數(shù)據(jù)寄存器為空(發(fā)送時(shí))

0:數(shù)據(jù)寄存器非空

1:數(shù)據(jù)寄存器空

Bit 6:數(shù)據(jù)寄存器非空(接收時(shí))

0:數(shù)據(jù)寄存器為空

1:數(shù)據(jù)寄存器非空

Bit 4:停止條件檢測位(從模式)

0:沒有檢測到停止條件

1:檢測到停止條件

Bit 3:10位頭序列已發(fā)送(主模式)

0:沒有ADD10事件發(fā)生

1:主設(shè)備已經(jīng)將第一個(gè)地址字節(jié)發(fā)送出去

Bit 2:字節(jié)發(fā)送結(jié)束

0:字節(jié)發(fā)送未完成

1:字節(jié)發(fā)送結(jié)束

Bit 1:地址已被發(fā)送(主模式)/地址匹配(從模式)

地址匹配(從模式)

0:地址不匹配或沒有收到地址

1:收到的地址匹配Bit 1:

地址發(fā)送標(biāo)志(主模式)

0:地址發(fā)送沒有結(jié)束

1:地址發(fā)送結(jié)束

10位地址模式時(shí),當(dāng)收到地址的第二個(gè)字節(jié)的ACK后該位被置1

7位地址模式時(shí),當(dāng)收到地址的ACK后該位被置1

Bit 0:起始位(主模式)

0:未發(fā)送起始條件

1:起始條件已發(fā)送

16.3.8 狀態(tài)寄存器2:I2Cx_SR2

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PEC[7:0] DUALF SMBHOST SMBDEFAULT GENCALL - TRA BUSY MSL

Bit 15~Bit 8:數(shù)據(jù)包出錯(cuò)檢測,當(dāng)ENPEC=1時(shí),PEC[7:0]存放內(nèi)部的PEC的值

Bit 7:雙標(biāo)志(從模式)

0:接收到的地址與OAR1內(nèi)的內(nèi)容相匹配

1:接收到的地址與OAR2內(nèi)的內(nèi)容相匹配

Bit 6:SMBus主機(jī)頭系列(從模式)

0:未收到SMBus主機(jī)的地址

1:當(dāng)SMBTYPE=1且ENARP=1時(shí),收到SMBus主機(jī)地址

Bit 5:SMBus設(shè)備默認(rèn)地址(從模式)

0:未收到SMBus設(shè)備的默認(rèn)地址

1:當(dāng)ENARP=1時(shí),收到SMBus設(shè)備的默認(rèn)地址

Bit 4:廣播呼叫地址(從模式)

0:未收到廣播呼叫地址

1:當(dāng)ENGC=1時(shí),收到廣播呼叫的地址

Bit 2:發(fā)送/接收

0:接收到數(shù)據(jù)

1:數(shù)據(jù)已發(fā)送

Bit 1:總線忙,在檢測到SDA或SCl為低電平時(shí),硬件將該位1

0:在總線上無數(shù)據(jù)通訊

1:在總線上正在進(jìn)行數(shù)據(jù)通訊

Bit 0:主從模式

0:從模式

1:主模式

16.3.9 數(shù)據(jù)寄存器:I2Cx_DR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- DR[7:0]

Bit 7~Bit 0:8位數(shù)據(jù)寄存器,用于存放接收到的數(shù)據(jù)或放置用于發(fā)送到總線的數(shù)據(jù)

發(fā)送器模式:當(dāng)寫一個(gè)字節(jié)至DR寄存器時(shí),自動(dòng)啟動(dòng)數(shù)據(jù)傳輸。一旦傳輸開始,如果能及時(shí)把下一個(gè)需傳輸?shù)臄?shù)據(jù)寫入DR寄存器,I2C模塊將保持連續(xù)的數(shù)據(jù)流

接收器模式:接收到的字節(jié)被拷貝到DR寄存器。在接收到下一個(gè)字節(jié)之前讀出數(shù)據(jù)寄存器,即可實(shí)現(xiàn)連續(xù)的數(shù)據(jù)傳送

注1:在從模式下,地址不會(huì)被拷貝進(jìn)數(shù)據(jù)寄存器DR

注2:硬件不管理寫沖突(如果TxE=0,仍能寫入數(shù)據(jù)寄存器)

注3:如果在處理ACK脈沖時(shí)發(fā)生ARLO事件,接收到的字節(jié)不會(huì)被拷貝到數(shù)據(jù)寄存器里,因此不能讀到它

16.4 實(shí)驗(yàn)例程

16.4.1 軟件模擬IIC控制

(1)創(chuàng)建at24cxx.h文件,并輸入以下代碼。

/*********************************************************************************************************
                EEPROM    驅(qū)    動(dòng)    文    件
*********************************************************************************************************/
#ifndef _AT24Cxx_H_
#define _AT24Cxx_H_


#include "sys.h"
/*********************************************************************************************************
                硬    件    端    口    定    義
*********************************************************************************************************/
#define IIC_SCL      PBout( 6 )
#define IIC_SDA      PBout( 7 )
#define IIC_SDA_READ  PBin( 7 )
/*********************************************************************************************************
                    函    數(shù)    列    表
*********************************************************************************************************/
void AT24Cxx_Init( void ) ;                                        //AT24C初始化
void AT24Cxx_Write_Data( u16 Address, u8 Data ) ;                            //寫入1個(gè)數(shù)據(jù)
void AT24Cxx_Write_nData( u16 Address, u8 *Buffer, u16 Len ) ;                      //寫入n個(gè)數(shù)據(jù)
void AT24Cxx_Read_Data( u16 Address, u8 *Data ) ;                            //讀取1個(gè)數(shù)據(jù)
void AT24Cxx_Read_nData( u16 Address, u8 *Buffer, u16 Len ) ;                      //讀取n個(gè)數(shù)據(jù)


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

    關(guān)注

    38

    文章

    7516

    瀏覽量

    164065
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1026

    瀏覽量

    81755
  • 存儲(chǔ)芯片
    +關(guān)注

    關(guān)注

    11

    文章

    900

    瀏覽量

    43201
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    小白高手都適用,STM32學(xué)習(xí)教程(入門合集、自學(xué)筆記和例程)

    一個(gè)綜合實(shí)例講述一個(gè)STM32完整應(yīng)用方案的實(shí)現(xiàn)過程。本書條理清楚,通俗易懂,貼近讀者,主要面向STM32的初學(xué)者,以及所有對(duì)ARM Cortex—M3系列微控制器感興趣的朋友們。STM32
    發(fā)表于 04-10 14:56

    CubeMX入門STM32 HAL庫的學(xué)習(xí)筆記

    STM32CubeMX是ST官方開發(fā)的一款很好用的軟件,主要用于STM32系列單片機(jī)的硬件驅(qū)動(dòng)層的配置。網(wǎng)上也有一些關(guān)于STM32CubeMX的相關(guān)教程,對(duì)它的相關(guān)操作進(jìn)行說明。從今天起,小柯希望能將自己從CubeMX
    發(fā)表于 08-17 06:55

    STM32入門學(xué)習(xí)筆記 精選資料分享

    STM32入門學(xué)習(xí)筆記本文為筆者入門學(xué)習(xí)過程的記錄,只是零散的記錄了一些個(gè)人不太懂得,覺得需要經(jīng)
    發(fā)表于 08-24 07:56

    EEPROM開機(jī)記憶存儲(chǔ)實(shí)驗(yàn)

    EEPROM開機(jī)記憶存儲(chǔ)實(shí)驗(yàn)
    發(fā)表于 07-13 18:10 ?25次下載

    STM32各模塊學(xué)習(xí)筆記

    STM32個(gè)模塊學(xué)習(xí)筆記 目錄 STM32筆記之一 中斷優(yōu)先級(jí).......................................
    發(fā)表于 11-30 03:32 ?3170次閱讀

    單片機(jī)學(xué)習(xí)EEPROM-IIC實(shí)驗(yàn)的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)學(xué)習(xí)EEPROM-IIC實(shí)驗(yàn)的資料合集免費(fèi)下載。
    發(fā)表于 07-21 08:00 ?1次下載
    單片機(jī)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>之</b><b class='flag-5'>EEPROM</b>-IIC<b class='flag-5'>實(shí)驗(yàn)</b>的資料合集免費(fèi)下載

    cortex_m3_stm32嵌入式學(xué)習(xí)筆記16ADC資料下載

    電子發(fā)燒友網(wǎng)為你提供cortex_m3_stm32嵌入式學(xué)習(xí)筆記16ADC資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決
    發(fā)表于 04-28 08:44 ?45次下載
    cortex_m<b class='flag-5'>3_stm32</b>嵌入式<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>16<b class='flag-5'>之</b>ADC資料下載

    STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)keil5編程與GPIO開發(fā)

    STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)keil5編程與GPIO開發(fā)
    發(fā)表于 11-30 12:36 ?4次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>1——軟硬件基礎(chǔ)<b class='flag-5'>之</b>keil5編程與GPIO開發(fā)

    STM32學(xué)習(xí)I2C協(xié)議(讀寫EEPROM

    關(guān)于STM32學(xué)習(xí)分享第七章 I2C協(xié)議(讀寫EEPROM)文章目錄關(guān)于STM32學(xué)習(xí)分享前言二、代碼1.i2c.c2.i2c.h
    發(fā)表于 11-30 15:21 ?32次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>之</b>I2C協(xié)議(讀寫<b class='flag-5'>EEPROM</b>)

    UM1766_STM32CubeF3入門STM32F3系列

    UM1766_STM32CubeF3入門STM32F3系列
    發(fā)表于 11-22 08:22 ?6次下載
    UM1766_<b class='flag-5'>STM32CubeF3</b><b class='flag-5'>入門</b><b class='flag-5'>之</b><b class='flag-5'>STM32F3</b>系列

    STM32入門學(xué)習(xí)筆記EEPROM存儲(chǔ)實(shí)驗(yàn)1

    EEPROM(Electrically Erasable Programmable read only memory),稱為帶電可擦除可編程只讀存儲(chǔ)器,是一種可以斷電保存數(shù)據(jù)的存儲(chǔ)芯片,EEP
    的頭像 發(fā)表于 02-16 14:22 ?2417次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>入門</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>EEPROM</b><b class='flag-5'>存儲(chǔ)</b><b class='flag-5'>實(shí)驗(yàn)</b>1

    STM32入門學(xué)習(xí)筆記EEPROM存儲(chǔ)實(shí)驗(yàn)2

    EEPROM(Electrically Erasable Programmable read only memory),稱為帶電可擦除可編程只讀存儲(chǔ)器,是一種可以斷電保存數(shù)據(jù)的存儲(chǔ)芯片,EEP
    的頭像 發(fā)表于 02-16 14:22 ?968次閱讀

    STM32入門學(xué)習(xí)筆記EEPROM存儲(chǔ)實(shí)驗(yàn)4

    EEPROM(Electrically Erasable Programmable read only memory),稱為帶電可擦除可編程只讀存儲(chǔ)器,是一種可以斷電保存數(shù)據(jù)的存儲(chǔ)芯片,EEP
    的頭像 發(fā)表于 02-16 14:22 ?1552次閱讀

    STM32入門學(xué)習(xí)筆記EEPROM存儲(chǔ)實(shí)驗(yàn)5

    EEPROM(Electrically Erasable Programmable read only memory),稱為帶電可擦除可編程只讀存儲(chǔ)器,是一種可以斷電保存數(shù)據(jù)的存儲(chǔ)芯片,EEP
    的頭像 發(fā)表于 02-16 14:23 ?634次閱讀

    EEPROM存儲(chǔ)實(shí)驗(yàn)

    可以在電腦上或?qū)S迷O(shè)備上擦除已有信息,重新編程,一般用在即插即用設(shè)備中,這種存儲(chǔ)芯片可以通過高于普通電壓的作用來擦除或重寫,EEPROM芯片一般用在需要頻繁存儲(chǔ)數(shù)據(jù),但是數(shù)據(jù)量不大的場合,本實(shí)
    的頭像 發(fā)表于 03-01 14:54 ?9600次閱讀
    <b class='flag-5'>EEPROM</b><b class='flag-5'>存儲(chǔ)</b><b class='flag-5'>實(shí)驗(yàn)</b>