RM新时代网站-首页

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

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

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

通過SerDes遠端I2C接口訪問16位I2C外設寄存器地址

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-02-09 14:34 ? 次閱讀

本應用筆記介紹如何通過吉比特多媒體串行鏈路(GMSL) SerDes的遠端I2C接口訪問16位寄存器地址。

引言

Maxim吉比特多媒體串行鏈路(GMSL)串行器/解串器(SerDes)系列包括MAX9249、MAX9259、MAX9260、MAX9263和MAX9264,具有UART/I2C轉(zhuǎn)換器,用于遠端控制I2C接口外設。這些外設包括相機傳感器、I/O端口擴展器、音頻模/數(shù)轉(zhuǎn)換器(ADC)和數(shù)/模轉(zhuǎn)換器(DAC),以及LED照明。

在GMSL數(shù)據(jù)資料和相關技術(shù)文件中,通過UART端口直接連接至電子控制單元(ECU)的一端被稱為“本地端”,另一端被稱為“遠端”。

I2C外設接口是控制通道基本模式中的默認設置。GMSL系列SerDes只轉(zhuǎn)換器件地址不同于GMSL串行器或解串器地址的UART數(shù)據(jù)包。UART/I2C轉(zhuǎn)換器接收(比如)汽車ECU發(fā)出的UART讀或?qū)憯?shù)據(jù)包,并將其轉(zhuǎn)換為I2C主控制器協(xié)議。

I2C接口支持外設使用的多種不同格式,有或沒有變址寄存器以及8為或16位變址寄存器地址均可,通過遠端寄存器位I2CMETHOD (寄存器0x05位7)設置實現(xiàn)。

對于沒有變址寄存器的外設:

設置I2CMETHOD = 1,按照標準GMSL UART協(xié)議發(fā)送讀/寫數(shù)據(jù)包。UART/I2C轉(zhuǎn)換器將去掉讀/寫數(shù)據(jù)包中的8位寄存器地址,如圖1所示。

pYYBAGPkk9qAEztQAABB5Kd0zNg748.gif?imgver=1


圖1. 命令模式(I2CMETHOD = 1)下UART和I2C之間的格式轉(zhuǎn)換

對于采用8位變址寄存器的外設:

設置I2CMETHOD = 0,按照標準GMSL UART協(xié)議發(fā)送讀/寫數(shù)據(jù)包,如圖2所示。

poYBAGPkk9yAR0ZmAABHK6b0zXg258.gif?imgver=1


圖2. 帶有寄存器地址(I2CMETHOD = 0)時,UART和I2C之間的格式轉(zhuǎn)換

對于采用16位變址寄存器的外設:

3.1. 寫操作。設置I2CMETHOD = 1,按照標準GMSL UART協(xié)議產(chǎn)生寫數(shù)據(jù)包。將16為變址寄存器地址置于數(shù)據(jù)的前2個字節(jié),使字節(jié)的數(shù)量等于發(fā)送數(shù)據(jù)的原始數(shù)量加2。UART/I2C轉(zhuǎn)換器將去掉標準寫數(shù)據(jù)包中的8位寄存器地址,如圖1所示。

例如,如果外設需要16位變址寄存器和8位數(shù)據(jù),類似于:

poYBAGPkk96AfWxgAAAQGcbro1Y462.gif?imgver=1

假設device_address = 0x22,index_register_address = 0x3344,及data = 0x55。主控ECU需要將數(shù)據(jù)包0x79 + 0x22 + 0x00 + 0x03 + 0x33 + 0x44 + 0x55寫入UART端口,然后讀取來自UART端口的ACK字節(jié),檢查寫操作是否成功。

0x79為同步字節(jié),
0x22為帶有寫操作指示的器件地址,
0x00為虛擬字節(jié),可為任意值;UART/I2C轉(zhuǎn)換器在轉(zhuǎn)換時將其刪除,
0x03為字節(jié)數(shù)量,
0x33為16位變址寄存器地址的高位字節(jié),
0x44為16為變址寄存器地址的低位字節(jié),
0x55為8位數(shù)據(jù)。

UART/I2C轉(zhuǎn)換器之后,數(shù)據(jù)包將變?yōu)椋?/p>

pYYBAGPkk9-AP8lzAAAOLs3SJzg798.gif?imgver=1

3.2. 讀操作。完成寫操作需要2個UART數(shù)據(jù)包,1個寫數(shù)據(jù)包后跟1個讀數(shù)據(jù)包。寫數(shù)據(jù)包設置變址寄存器地址,讀數(shù)據(jù)包讀取數(shù)據(jù)。

假設外設的器件地址和變址寄存器地址相同,需要讀取1個數(shù)據(jù)字節(jié),需按以下步驟進行:

設置I2CMETHOD = 1,
ECU發(fā)送寫數(shù)據(jù)包0x79 + 0x22 + 0x00 + 0x02 + 0x33 + 0x44至UART端口,
ECU從UART端口讀取ACK字節(jié),
ECU發(fā)送讀數(shù)據(jù)包0x79 + 0x23 + 0x00 + 0x01至UART端口,
ECU從UART端口讀取ACK字節(jié),
然后ECU從UART端口讀取數(shù)據(jù)。

對于寫數(shù)據(jù)包:
0x79為同步字節(jié),
0x22為帶有寫操作指示的器件地址,
0x00為虛擬字節(jié),可為任意值;UART/I2C轉(zhuǎn)換器在轉(zhuǎn)換時將其刪除,
0x02為字節(jié)數(shù)量,
0x33為16位變址寄存器地址的高位字節(jié),
0x44為16位變址寄存器地址的低位字節(jié)。

對于讀數(shù)據(jù)包:
0x79為同步字節(jié),
0x23為帶有讀操作指示的器件地址,
0x00為虛擬字節(jié),可為任意值;UART/I2C轉(zhuǎn)換器在轉(zhuǎn)換時將其刪除,
0x01為字節(jié)數(shù)量。

審核編輯:郭婷

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

    關注

    242

    文章

    23252

    瀏覽量

    660557
  • 寄存器
    +關注

    關注

    31

    文章

    5336

    瀏覽量

    120230
  • dac
    dac
    +關注

    關注

    43

    文章

    2291

    瀏覽量

    190974
收藏 人收藏

    評論

    相關推薦

    MM32F013x上實現(xiàn)I2C地址的功能應用

    I2C地址的功能應用。 1.配置方式 MM32F013X的多地址功能是通過配置I2C\_SLAVMASK
    發(fā)表于 01-05 11:43 ?2098次閱讀

    MIMXRT685-EVK如何訪問8字節(jié)地址I3C設備寄存器?

    我有一個 I3C 設備,它的寄存器地址有 8 個字節(jié)。查看通過I3C接口讀取數(shù)據(jù)的SDK示例后,
    發(fā)表于 04-14 09:04

    存儲I/O空間

    存儲I/O空間:C240X芯片有16地址線,可以訪問
    發(fā)表于 09-20 18:06 ?40次下載

    ARM I2C 總線接口寄存器設置

    ARM I2C 總線接口寄存器設置 控制ARM 12C總線接口需要配置總線控制寄存器(rII
    發(fā)表于 03-14 18:00 ?1721次閱讀

    通過SerDes遠端I2C接口訪問16I2C外設寄存器地址

    Maxim吉比特多媒體串行鏈路(GMSL)串行/解串(SerDes)系列包括MAX9249、MAX9259、MAX9260、MAX9263和MAX9264,具有UART/I2
    發(fā)表于 03-02 14:53 ?3985次閱讀
    <b class='flag-5'>通過</b><b class='flag-5'>SerDes</b><b class='flag-5'>遠端</b><b class='flag-5'>I2C</b><b class='flag-5'>接口</b><b class='flag-5'>訪問</b><b class='flag-5'>16</b><b class='flag-5'>位</b><b class='flag-5'>I2C</b><b class='flag-5'>外設</b><b class='flag-5'>寄存器</b><b class='flag-5'>地址</b>

    I2C LCD 器件通過驅(qū)動帶有 I2C 接口的 2 線式 16 字符 LCD

    I2C LCD 器件通過驅(qū)動帶有 I2C 接口的 2 線式 16 字符 LCD
    發(fā)表于 10-10 08:22 ?13次下載
    <b class='flag-5'>I2C</b> LCD 器件<b class='flag-5'>通過</b>驅(qū)動帶有 <b class='flag-5'>I2C</b> <b class='flag-5'>接口</b>的 2 線式 <b class='flag-5'>16</b> 字符 LCD

    Atmel SAMC21的I2C驅(qū)動寄存器操作和寄存器代碼免費下載

    本文檔的主要內(nèi)容詳細介紹的是Atmel SAMC21的I2C驅(qū)動寄存器操作和寄存器代碼免費下載。
    發(fā)表于 06-20 08:00 ?19次下載

    AVR中I/O端口寄存器介紹

    ATmega16的4個8的端口都有各自對應的3個I/O端口寄存器,它們占用了I/O空間的12個地址
    的頭像 發(fā)表于 02-16 11:28 ?2974次閱讀
    AVR中<b class='flag-5'>I</b>/O端口<b class='flag-5'>寄存器</b>介紹

    C語言訪問MCU寄存器

    C語言訪問MCU寄存器問題由來://下面這行代碼的意思是直接操作0X020C4068這個寄存器//具體
    發(fā)表于 10-25 13:21 ?3次下載
    <b class='flag-5'>C</b>語言<b class='flag-5'>訪問</b>MCU<b class='flag-5'>寄存器</b>

    通過 GMSL SerDes 遠程端 I2C 接口訪問 16 I2C 外設寄存器地址

    發(fā)表于 11-17 12:41 ?0次下載
    <b class='flag-5'>通過</b> GMSL <b class='flag-5'>SerDes</b> 遠程端 <b class='flag-5'>I</b>2<b class='flag-5'>C</b> <b class='flag-5'>接口</b><b class='flag-5'>訪問</b> <b class='flag-5'>16</b> <b class='flag-5'>位</b> <b class='flag-5'>I</b>2<b class='flag-5'>C</b> <b class='flag-5'>外設</b><b class='flag-5'>寄存器</b><b class='flag-5'>地址</b>

    具有中斷輸出和配置寄存器的低壓 16 I2C 和 SMBus I/O 擴展-NCA9555

    具有中斷輸出和配置寄存器的低壓 16 I2C 和 SMBus I/O 擴展
    發(fā)表于 02-07 20:12 ?3次下載
    具有中斷輸出和配置<b class='flag-5'>寄存器</b>的低壓 <b class='flag-5'>16</b> <b class='flag-5'>位</b> <b class='flag-5'>I</b>2<b class='flag-5'>C</b> 和 SMBus <b class='flag-5'>I</b>/O 擴展<b class='flag-5'>器</b>-NCA9555

    具有中斷輸出和配置寄存器的 PCA9535 遠程 16I2C和SMBus I/O擴展數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有中斷輸出和配置寄存器的 PCA9535 遠程 16I2C和SMBus I/O擴展
    發(fā)表于 06-25 11:20 ?0次下載
    具有中斷輸出和配置<b class='flag-5'>寄存器</b>的 PCA9535 遠程 <b class='flag-5'>16</b><b class='flag-5'>位</b><b class='flag-5'>I2C</b>和SMBus <b class='flag-5'>I</b>/O擴展<b class='flag-5'>器</b>數(shù)據(jù)表

    具有中斷輸出、復位和配置寄存器的PCA9539遠程16I2C 和SMBus 低功耗 I/O 擴展數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有中斷輸出、復位和配置寄存器的PCA9539遠程16I2C 和SMBus 低功耗 I/O 擴展
    發(fā)表于 06-25 11:21 ?0次下載
    具有中斷輸出、復位和配置<b class='flag-5'>寄存器</b>的PCA9539遠程<b class='flag-5'>16</b><b class='flag-5'>位</b><b class='flag-5'>I2C</b> 和SMBus 低功耗 <b class='flag-5'>I</b>/O 擴展<b class='flag-5'>器</b>數(shù)據(jù)表

    具有中斷輸出和配置寄存器的PCA9555遠程16I2C和 SMBus I/O擴展數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有中斷輸出和配置寄存器的PCA9555遠程16I2C和 SMBus I/O擴展
    發(fā)表于 06-25 09:31 ?0次下載
    具有中斷輸出和配置<b class='flag-5'>寄存器</b>的PCA9555遠程<b class='flag-5'>16</b><b class='flag-5'>位</b><b class='flag-5'>I2C</b>和 SMBus <b class='flag-5'>I</b>/O擴展<b class='flag-5'>器</b>數(shù)據(jù)表

    PCA9554A具有中斷輸出和配置寄存器的遠程8I2C和SMBus I/O擴展數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《PCA9554A具有中斷輸出和配置寄存器的遠程8I2C和SMBus I/O擴展數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-28 11:03 ?0次下載
    PCA9554A具有中斷輸出和配置<b class='flag-5'>寄存器</b>的遠程8<b class='flag-5'>位</b><b class='flag-5'>I2C</b>和SMBus <b class='flag-5'>I</b>/O擴展<b class='flag-5'>器</b>數(shù)據(jù)表
    RM新时代网站-首页