在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【紫光同創國產FPGA教程】【第七章】I2C接口EEPROM實驗

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-05 09:42 ? 次閱讀

原創聲明:

本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(alinx.com)。

適用于板卡型號:

PGL22G/PGL12G

1. 實驗簡介

本實驗通過使用開源軟件opencores上的I2C master控制器去控制I2C接口的EEPROM讀寫,練習如何有效的使用開源代碼提升開發效率。

2. 實驗原理

2.1 硬件電路

在開發板上,FPGA芯片通過I2C總線連接EEPROM 24LC04, I2C的兩根總線各上拉一個4.7K的電阻到3.3V,所以當總線上沒有輸出時會被拉高, 24LC04的寫保護沒有使能,不然FPGA會無法寫入數據。因為在電路上A0~A2都為低,所以24LC04的設備地址為0xA0。

pIYBAGAY4jyAbtJYAAArzjqRVw0079.jpg

開發板部分電路

2.2 I2C的總線協議和時序

I2C標準速率為100kbit/s,快速模式400kbit/s,支持多機通訊, 支持多主控模塊,但同一時刻只允許有一個主控。由數據線SDA和時鐘SCL構成串行總線; 每個電路和模塊都有唯一的地址。

在這里以AT24C04為例說明I2C讀寫的基本操作和時序,I2C設備的操作可分為寫單個存儲字節,寫多個存儲字節,讀單個存儲字節和讀多個存儲字節。各個操作如下圖所示。

o4YBAGAY4jyAWYkhAAB_hx6UQ0s734.jpg

下面對I2C總線通信過程中出現的幾種信號狀態和時序進行分析。

①總線空閑狀態

I2C總線總線的SDA和SCL兩條信號線同時處于高電平時,規定為總線的空閑狀態。此時各個器件的輸出級場效應管均處在截止狀態,即釋放總線,由兩條信號線各自的上拉電阻把電平拉高。

②啟動信號(Start)

在時鐘線SCL保持高電平期間,數據線SDA上的電平被拉低(即負跳變),定義為I2C總線總線的啟動信號,它標志著一次數據傳輸的開始。啟動信號是由主控器主動建立的,在建立該信號之前I2C總線必須處于空閑狀態,如下圖所示。

pIYBAGAY4j2AM_kiAABw1zPNaUg528.jpg

③停止信號(Stop)

在時鐘線SCL保持高電平期間,數據線SDA被釋放,使得SDA返回高電平(即正跳變),稱為I2C總線的停止信號,它標志著一次數據傳輸的終止。停止信號也是由主控器主動建立的,建立該信號之后,I2C總線將返回空閑狀態。

④數據位傳送

在I2C總線上傳送的每一位數據都有一個時鐘脈沖相對應(或同步控制),即在SCL串行時鐘的配合下,在SDA上逐位地串行傳送每一位數據。進行數據傳送時,在SCL呈現高電平期間,SDA上的電平必須保持穩定,低電平為數據0,高電平為數據1。只有在SCL為低電平期間,才允許SDA上的電平改變狀態。

⑤應答信號(ACK和NACK)

I2C總線上的所有數據都是以8位字節傳送的,發送器每發送一個字節,就在時鐘脈沖9期間釋放數據線,由接收器反饋一個應答信號。應答信號為低電平時,規定為有效應答位(ACK簡稱應答位),表示接收器已經成功地接收了該字節;

應答信號為高電平時,規定為非應答位(NACK),一般表示接收器接收該字節沒有成功。對于反饋有效應答位ACK的要求是,接收器在第9個時鐘脈沖之前的低電平期間將SDA線拉低,并且確保在該時鐘的高電平期間為穩定的低電平。

如果接收器是主控器,則在它收到最后一個字節后,發送一個NACK信號,以通知被控發送器結束數據發送,并釋放SDA線,以便主控接收器發送一個停止信號。

o4YBAGAY4j6ASBL_AABF6_Zp98o380.jpg

3. 程序設計

I2C時序雖然簡單,但是寫的不好也會出現很多問題,在開源網站opencores.org/上我們可以找到很多非常好的代碼,這些代碼大部分都提供詳細的文檔和仿真。俗話說,他山之石,可以攻玉,恰當的使用開源代碼,不光能提升我們的開發效率,也能學習別人的開發思路。由于代碼大部分都是經過很長時間反復修改,反復精煉后的,所以有些代碼理解起來可能比較困難,在不能很好的理解別人代碼的時候,最好的辦法就是仿真。

pIYBAGAY4j6AUwJLAACw8mPKMHE747.jpg

從IP core文檔得知,i2c_master_byte_ctrl模塊主要完成一個字節的讀寫,我們只需要按照I2C讀寫的要求,完成設備地址、寄存器地址、數據等讀寫即可。

i2c_master_top模塊是對i2c_master_byte_ctrl模塊的再次封裝,完成一個寄存器的讀寫,由于不同的設備寄存器可能是8bit,也可能是16bit,這里i2c_addr_2byte信號來控制寄存器地址是8位還是16位。

i2c_master_top模塊狀態機,如果是寫寄存器操作,先寫一個字節設備地址(寫操作),再寫1個字節或2個字節的寄存器地址,再寫一個字節的數據;如果是讀操作,先寫一個字節的設備地址(寫操作),再寫1個字節或2字節的寄存器地址,完成地址的寫入,再次寫設備地址(讀操作),然后讀取一個字節的數據。不管怎么說,程序設計都是要滿足芯片時序要求的,所以在閱讀程序之前最好先把芯片的數據手冊仔細閱讀一遍。

o4YBAGAY4j-AYMPeAAAyMM8wJzg755.jpg

i2c_master_top狀態機

信號名稱 方向 說明
clk in 時鐘輸入
rst in 異步復位輸入,高復位
clk_div_cnt in I2C時鐘分頻因子,等于系統時鐘頻率/(5 * I2C時鐘頻率) - 1。例如50Mhz系統時鐘,100Khz的I2C,配置為99,400Khz的I2C,配置為24。
scl_pad_i in I2C時鐘數據輸入,本實驗可忽略
scl_pad_o out I2C時鐘輸出
scl_padoen_o out I2C時鐘輸出使能,低有效,I2C外部有上拉電阻,如果輸出高阻態,則會被拉到高電平,在本實驗中,高電平輸出時輸出高阻
sda_pad_i in I2C數據輸入
sda_pad_o out I2C數據輸出
sda_padoen_o out I2C數據輸出使能,低有效。在本實驗中,高電平輸出時輸出高阻。
i2c_addr_2byte in 寄存器地址是8位還是16位,1:16位,0:8位
i2c_read_req in I2C寄存器讀請求
i2c_read_req_ack out I2C寄存器讀請求應答
i2c_write_req in I2C寄存器寫請求
i2c_write_req_ack out I2C寄存器寫請求應答
i2c_slave_dev_addr in I2C設備地址,8bit,最低位忽略,有效數據位是高7位。
i2c_slave_reg_addr in 寄存器地址,8位地址時,低8位有效
i2c_write_data in 寫寄存器數據
i2c_read_data out 讀寄存器數據
error out 設備無應答錯誤

i2c_master_top模塊端口

i2c_eeprom_test模塊完成EEPROM的讀寫,EEPROM設備地址是A0,程序中將地址00的數據讀出,然后通過LED顯示,在KEY2 按下時,數字加一并再次寫入EEPROM并顯示出來。在I2C控制器中,代碼的大部分功能在備注中也有很多批注。

4. 實驗現象

下載實驗程序后,可以看到LED顯示一個二進制數字,這個數字是存儲在EEPROM中00地址的數據,數據是隨機的,這個時候按鍵KEY2按下,數字加一,并寫入了EEPROM,再次下載程序,可以看到直接顯示更新后的數據。

5. 使用在線調試Fabric Debugger觀察信號

使用Fabric Debugger可以非常直觀的看到程序在開發板上運行時各個信號的變化,在本例程中添加一個Debug Core來觀察程序運行時各數據線的變化情況。

按紅色標記,在單擊“Inserter":

o4YBAGAY4kCAE8uJAAApfPo1Z3A751.jpg

在彈出如下界面下選擇New DebugCore Unit來新建一個Debug Core:

pIYBAGAY4kGALwZxAABYWgrK6eM037.jpg

單擊U0:DebugCore:

o4YBAGAY4kGATsdaAAB1MTrlaPg201.jpg

會跳到參數設置界面,在"Trigger Parameters"欄中Sample Depth采樣深度自己根據需求選擇,這里選擇默認,其它的設置保持不變。

pIYBAGAY4kKAR27nAADaHVS3Jf4184.jpg

在"Net Connections"欄中選擇Modify Connections,進行Net修改;

o4YBAGAY4kOAPmPtAACBDH-f8ks677.jpg

彈出的界面中首先對TriggerPort欄中觀測信號關聯,在這里,選擇左側read_data,然后單擊Make Connections,可以在TriggerPort欄中看到關聯的觀測信號read_data;

pIYBAGAY4kSARs8eAACkcbG_e00375.jpg

以同樣的方式對Clock欄中時鐘信號關聯,選擇左側sys_clk_c,然后單擊Make Connections,可以在Clock欄中看到關聯的觀測信號sys_clk_c,然后單擊OK;

o4YBAGAY4kSARM_YAAClyFBzCI0926.jpg

再在如下界面中單擊保存按鈕進行保存并關閉即可。

pIYBAGAY4kWAacckAACTgiyhlYI046.jpg

接下來重新生成.sbit文件,雙擊Generate Bitstream,會生成帶有在線調試的DebugCore。

o4YBAGAY4kWAauX4AAGn6bk40JQ667.jpg

上面的工作準備好后,接下來才是正式開始調試, 單擊Debugger(確保開發板上電并連接了下載器),

pIYBAGAY4kaAUMpIAAA22_Ktv5o848.jpg

單擊JTAG 掃描按鈕,在找到后單擊OK;

o4YBAGAY4kaATttDAACF6e35YHo365.jpg

右擊DEV:0MyDevice0,在下拉菜單中單擊Configure Bitstream File

pIYBAGAY4keAHqLoAAAR6eAfc8g548.jpg

再按如下圖中進行設置,設置完成后按OK鍵;

o4YBAGAY4kiAZQVlAAC0YUTb01Q425.jpg

到此,程序已下載到FPGA 中,可以在線觀察所需要的信號,選擇 Waveform,選擇觸發模式為連續,并單擊run;

pIYBAGAY4kiAViXpAAAozdlW7DQ576.jpgo4YBAGAY4kmAHQ-hAAAJFyUSGbo803.jpg

可以看到read_data數據,每按一次KEY2鍵運行一次可以看到數據增加1。

pIYBAGAY4kqAa-mDAABcm-3IY-8798.jpg

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1631

    文章

    21808

    瀏覽量

    606801
  • EEPROM
    +關注

    關注

    9

    文章

    1033

    瀏覽量

    82090
  • 開源
    +關注

    關注

    3

    文章

    3426

    瀏覽量

    42809
  • I2C接口
    +關注

    關注

    1

    文章

    125

    瀏覽量

    25414
  • 紫光同創
    +關注

    關注

    5

    文章

    89

    瀏覽量

    27590
收藏 1人收藏
  • jf_978043441

評論

相關推薦

【米爾-紫光MYB-J7A100T國產FPGA開發板試用】米爾-紫光PG2L100H國產FPGA開發板開箱評測

ADC型號:ADS1256 參考電壓:ADR431(高精度2.5V基準)。 溫度傳感器接口 數字溫度傳感器TMP117,通過I2C接口連接FPGA
發表于 12-09 11:11

紫光同創聯合舉辦全國高校國產FPGA產學研融合研討會

隨著全球半導體市場的飛速發展,國產FPGA正逐步在各行業嶄露頭角,成為推動技術創新與產業升級的重要力量。為促進技術交流,推動國產FPGA在科研與高校中的廣泛應用,南京大學電子信息專業國
的頭像 發表于 12-06 09:29 ?473次閱讀

紫光同創助力國產FPGA高校生態建設

11月,紫光同創受邀參加西南地區“國產FPGA產學研融合研討會”和中山大學第二屆集成電路工藝與測試實驗教學研討會,與高校老師深入探討
的頭像 發表于 11-07 17:09 ?659次閱讀

【米爾-紫光PG2L100H國產FPGA開發板試用】米爾-紫光PG2L100H國產FPGA開發板開箱評測

很榮幸收到電子發燒友論壇申請的 米爾-紫光PG2L100H國產FPGA開發板,現在特地來寫篇測評報告,米爾-紫光PG
發表于 11-07 12:21

ALINX亮相2024紫光同創FPGA技術研討會

“2024 紫光同創 FPGA 技術研討會”系列活動在全國多地繼續開展,作為紫光同創官方合作伙伴,ALINX 亮相 6 月下旬深圳、廣州兩地
的頭像 發表于 08-29 14:36 ?909次閱讀

使用C2000 I2C模塊連接EEPROM

電子發燒友網站提供《使用C2000 I2C模塊連接EEPROM.pdf》資料免費下載
發表于 08-27 09:53 ?0次下載
使用<b class='flag-5'>C</b>2000 <b class='flag-5'>I2C</b>模塊連接<b class='flag-5'>EEPROM</b>

盤古200K開發板,紫光同創PG2L200H,Logos2系列,資源豐富,功能強大

器件,推出100%國產化高性能盤古系列FPGA方案和開發套件,為客戶提供專業且高效的FPGA產品和服務支持。 紫光同創Logos
發表于 06-14 16:26

國產FPGA核心板!米爾紫光同創Logos-2和Xilinx Artix-7核心板

PG2L100H的MYC-J2L100H核心板及開發板、基于Xilinx Artix-7系列的MYC-J7A100T核心板及開發板。 國產FPGA開發平臺
發表于 05-31 17:40

紫光同創盤古PGX-Nano教程】——(盤古PGX-Nano開發板/PG2L50H_MBG324第七章)序列檢測器實驗例程

適用于板卡型號:紫光同創PG2L50H_MBG324開發平臺(盤古PGX-Nano) 一:盤古盤古PGX-Nano開發板簡介PGX-Nano 是一套以紫光
發表于 05-23 14:45

紫光同創PGL22G開發板|盤古22K開發板,國產FPGA開發板,接口豐富,高性價比

盤古22K開發板是基于紫光同創Logos系列PGL22G芯片設計的一款FPGA開發板,全面實現國產化方案,板載資源豐富,高容量、高帶寬,外圍接口
發表于 05-23 10:04

精選推薦!紫光盤古系列FPGA開發板信息匯總

,開發的一套全新的國產FPGA開發套件。 MES100P開發板采用紫光同創28nm工藝的FPGA 作為主控芯片(logos
發表于 04-11 11:57

紫光同創盤古PGX-Lite 7K教程】——(盤古PGX-Lite 7K開發板/PGC7KD-6IMBG256第二)?LED 流水燈實驗例程

適用于板卡型號: 紫光同創PGC7KD-6IMBG256開發平臺(盤古PGX-Lite 7K) 僅需一根TypcC線,插上即用,輕松操作。兼容下載器的一體版,配套資料豐富, 快速掌握國產FPG
發表于 03-20 15:07

i2c接口由哪幾根線組成 i2c接口可以接哪些器件

I2C接口的線路可以適應不同的系統需求和器件規格,因此具體的線路配置可能會有所不同。但通常來說,時鐘線(SCL)和數據線(SDA)是I2C接口的核心線路。
的頭像 發表于 03-05 16:55 ?4031次閱讀
<b class='flag-5'>i2c</b><b class='flag-5'>接口</b>由哪幾根線組成 <b class='flag-5'>i2c</b><b class='flag-5'>接口</b>可以接哪些器件

紫光同創新品開發板,盤古PGX系列PGX-MINI 4K開發板,板卡集成下載器~

迎來迅猛發展。國產FPGA由于擁有高性價比、完整自主可控知識產權產業鏈,越來越成為行業熱門選擇。 作為國產FPGA專業廠商紫光
發表于 03-01 19:02

紫光同創新品開發板,盤古PGX系列PGX-MINI 4K開發板,板卡集成下載器

FPGA迎來迅猛發展。 國產FPGA由于擁有高性價比、完整自主可控知識產權產業鏈,越來越成為行業熱門選擇。 作為國產FPGA專業廠商
發表于 03-01 15:16
主站蜘蛛池模板: 免费视频一区 | 奇米色吧 | 亚洲一区二区三区免费视频 | 88av影院| 婷婷激情五月综合 | 一区卡二区卡三区卡视频 | 日本69sex护士wwxx| 色婷婷社区 | 手机在线看片你懂得 | 奇米7777 | 免费视频精品 | 免费无遮挡很爽很污很黄 | 色播图片 | 伊人啪啪网 | 亚洲人成在线精品不卡网 | 国产成人精品1024在线 | 四虎在线最新永久免费播放 | 国产亚洲精品仙踪林在线播放 | 性夜影院爽黄a爽免费视频 性瘾高h姚蕊全文免费阅读 | 天天干天天干 | 丁香花五月婷婷 | 亚洲第一视频在线观看 | 2021国产成人午夜精品 | 天天色综合1 | 黄色的视频在线免费观看 | 五月激情五月婷婷 | 操干干| 网友自拍区一区二区三区 | 欧洲精品码一区二区三区免费看 | 人人乳乳香蕉大免费 | 免费看国产黄色片 | 精品国产乱码久久久久久浪潮 | 4480yy私人午夜a级国产 | 色窝视频 | 女人张开腿让男人桶免费网站 | 欧美精品一区视频 | 波多野结衣在线网站 | 男女爱爱福利 | 九九re | 久久www成人看片 | 手机看片99 |

電子發燒友

中國電子工程師最喜歡的網站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品