This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

4 通道 600Mbps 至 3.75Gbps 多速率收发器调试问题

Other Parts Discussed in Thread: TLK3134

我的设计是dsp出来的rgmii信号经过tlk3134芯片转换为serdes信号,然后给到交换,交换收到serdes信号再给到88e1111,到rj45网口。我根据手册中3.2 Gigabit Ethernet Mode (RGMII) 节对3134进行了配置,现在已经link上了,查看3.2节中所需read的寄存器状态也对,但是就是link不通,是为什么呢?

  • 您好,我认为要排查下问题是否出在TLK3134这端。排查TLK3134的问题的话,可以先对TLK3134 做个loopback的自环测试,如果自环测试通过,再检查和88e1111连接是否有问题。 这样逐步排查问题出现在哪里。
  • 我检查了我的硬件电路设计,发现我没有把txd_4,txd_12,txd_20,txd_38和rxd_4,rxd_12,rxd_20,rxd_38引出来,手册上说rgmii模式下tx_en/er,rx_en/er与这些信号有关,请问我们还有什么补救方式吗?可不可以通过软件更改某些寄存器设置tx_en/er,rx_en/er,或者您那边有办法将rgmii接口转换为rebi接口吗?我让dsp那边的工程师操作一下

    CH0: TX_EN/TX_ER = TXD_[4]
    CH1: TX_EN/TX_ER = TXD_[12]
    CH2: TX_EN/TX_ER = TXD_[20]
    CH3: TX_EN/TX_ER = TXD_[28]
    CH0: RX_DV/RX_ER = RXD_[4]
    CH1: RX_DV/RX_ER = RXD_[12]
    CH2: RX_DV/RX_ER = RXD_[20]
    CH3: RX_DV/RX_ER = RXD_[28]
    RGMII, RTBI -or-
    TXDATA = TXD_ [20:16]
    TXCLK = TXCLK_ [2]
    -or-
    TXDATA = TXD_ [28:24]
    TXCLK = TXCLK_ [3]
    -or
    RXDATA = RXD_ [20:16]
    RXCLK = RXCLK_ [2]
    -or
    RXDATA = RXD_ [28:24]
    RXCLK = RXCLK_ [3]




  • 另外我引出来了TX_CTL0-3,可不可以配置为让rgmii的TX_EN/TX_ER=TX_CTL呢?
  • 再或者,tx_en/er,rx_en/er信号是高有效还是低有效呢?我看看能不能重新贴片
  • 您好,TX-EN和RX_EN为高电平时,应该是正常发送或者接收数据。
  • 那针对我现在这样没有把txd_4,txd_12,txd_20,txd_38和rxd_4,rxd_12,rxd_20,rxd_38引出来的情况,可不可以软件配置TX-EN和RX_EN为高电平呢?
  • 如果可以软件配置TX-EN和RX_EN为高电平, 请问是改哪个寄存器呢?如果不可以的话是否可以将rgmii转换为rebi,怎么操作呢?或者您那边有什么操作方法可以配置TX-EN和RX_EN为高电平吗?
  • 您好,您试下寄存器 SERDES_TX0_CONFIG(1)的ENTX=1 enable transmitter和寄存器. SERDES_TEST_CONFIG_TX(1) 的ENRX=1, enable receiver。
  • 我试着将TXC_0接到了TXD_4(M17)上,RXC_0接到RXD_4(A10)上,然后rxd_0:3,rxclk,rxc有数据,但是txd_0:3,txc端没有数据,txclk为125mhz,请问这是为什么呢?需要怎么处理才能使tx端有数据输出呢?现在phy已经link了,0x01寄存器是105,0x12寄存器,0xe000,0x13是0000,0x1c是8000,0x901B是11。
  • 你好,非常感谢你的回答。目前我的tlk3134有3个通道已经通了,还有一个通道与dsp不link,检查到0x1c的状态是9000,正常能通的port寄存器0x1c的值是8000,

    When high, indicates that the 1000Base-X decoder received an invalid code word,请问这个问题是什么原因导致的呢?