新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 通過SerDes遠端I2C接口訪問16位I2C外設寄存器地址

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

        作者: 時間:2012-03-05 來源:網絡 收藏

        摘要:本應用筆記介紹如何吉比特多媒體串行鏈路(GMSL)

        本文引用地址:http://www.104case.com/article/155208.htm

        引言

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

        在GMSL數據資料和相關技術文件中,UART端口直接連接至電子控制單元(ECU)的一端被稱為本地端,另一端被稱為.

        I2C是控制通道基本模式中的默認設置。GMSL系列只轉換器件不同于GMSL串行器或解串器的UART數據包。UART/I2C轉換器接收(比如)汽車ECU發出的UART讀或寫數據包,并將其轉換為I2C主控制器協議。

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

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

        設置I2CMETHOD = 1,按照標準GMSL UART協議發送讀/寫數據包。UART/I2C轉換器將去掉讀/寫數據包中的8位寄存器地址,如圖1所示。

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

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

        設置I2CMETHOD = 0,按照標準GMSL UART協議發送讀/寫數據包,如圖2所示。

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

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

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

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

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

          0x79為同步字節,

          0x22為帶有寫操作指示的器件地址,

          0x00為虛擬字節,可為任意值;UART/I2C轉換器在轉換時將其刪除,

          0x03為字節數量,

          0x33為16位變址寄存器地址的高位字節,

          0x44為16為變址寄存器地址的低位字節,

          0x55為8位數據。

          UART/I2C轉換器之后,數據包將變為:

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

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

          設置I2CMETHOD = 1,

          ECU發送寫數據包0x79 + 0x22 + 0x00 + 0x02 + 0x33 + 0x44至UART端口,

          ECU從UART端口讀取ACK字節,

          ECU發送讀數據包0x79 + 0x23 + 0x00 + 0x01至UART端口,

          ECU從UART端口讀取ACK字節,

          然后ECU從UART端口讀取數據。

          對于寫數據包:

          0x79為同步字節,

          0x22為帶有寫操作指示的器件地址,

          0x00為虛擬字節,可為任意值;UART/I2C轉換器在轉換時將其刪除,

          0x02為字節數量,

          0x33為16位變址寄存器地址的高位字節,

          0x44為16位變址寄存器地址的低位字節。

          對于讀數據包:

          0x79為同步字節,

          0x23為帶有讀操作指示的器件地址,

          0x00為虛擬字節,可為任意值;UART/I2C轉換器在轉換時將其刪除,

          0x01為字節數量。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 集贤县| 龙江县| 临朐县| 中宁县| 乌鲁木齐县| 明光市| 延安市| 丹巴县| 辽宁省| 绍兴县| 衡东县| 东兴市| 勐海县| 天津市| 正阳县| 日照市| 娄底市| 广水市| 罗田县| 益阳市| 邵阳市| 廉江市| 微山县| 阿拉善盟| 宁化县| 巨野县| 正蓝旗| 奎屯市| 鹤庆县| 诸暨市| 剑川县| 彭泽县| 马关县| 丽水市| 中宁县| 交口县| 常宁市| 凤山市| 武邑县| 通州市| 封丘县|