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.

[参考译文] DP83826I:100M 模式、从不获取 RX_D[x]信号、RX_ER 始终像 RX_DV 一样出现

Guru**** 2551110 points
Other Parts Discussed in Thread: DP83826EVM, TMS320F28388D, C2000WARE, DP83826E, TMDSCNCD28388D, MSP430F5529

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1111017/dp83826i-100m-mode-never-get-rx_d-x-signal-and-rx_er-always-comes-just-like-rx_dv

器件型号:DP83826I
主题中讨论的其他器件:DP83826EVMTMS320F28388DC2000WARETMDSCNCD28388DTMDSHSECDOCKDP83826EMSP430F5529

大家好、  

我们使用 DP83826与 F28388D 搭配使用。 我想就像这里的许多客户一样、因为 DP83822太不可用了。 但是、到目前为止、DP83826的经验非常奇怪。

 DP83826在配置 为10M (禁用自动协商、并设置为10M)时工作。 然而、无论我们如何更改配置、100Mhz 都不会工作、并且我们从不会在示波器上获得 RX_D[x]。

硬件的原理图和硬件搭接如所示。

在100M 的外部回送测试期间、RX_Dx 永远不会获得任何信号(10M 设置正常工作)、RX_ER 仅用作 RX_DV。

只有在100M 模式下进行 MII 反馈时、我们才能获得 RX_Dx 信号(在示波器上)、并且 CCS 调试器接收到的软件包是正确的。 但是、PCA 和数字反馈无法获取任何 RX 封装、甚至从 CCS 调试器的角度来看也没有收到错误的 RX 封装。  

我们完美地检查了25M 到 XI 的时钟。 还连接了来自 RJ45的100M 信号(眼图)。  看起来应该起作用。 还附加了 RD_P 和 RD_N 上的信号。 请帮助进行双重检查。 我认为这些信号足以获得100M 信号。  

我尝试了很多可以在 CCS 中找到的寄存器设置、但都失败了。

有什么建议吗? 是否有任何硬件/寄存器配置、我应该尝试检查100M 接收情况? 或者我可以尝试使用任何 CCS 代码吗?

欢迎提出任何建议。 提前感谢大家。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Xuan:

    我想确保我正确理解这个问题:

    • 到目前为止、对于上行链路以及发送和接收的封装、所有器件都可以在10Mbps 下正常工作。
    • 您是否能够看到支持100Mbps 的链路?
    • 您能否检查寄存器中的0x0001、0x0004和0x0005

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 到目前为止、对于上行链路以及发送和接收的封装、所有器件都可以在10Mbps 下正常工作。 是的、完全正常。lwip 示例工作正常。 Ping 工作正常、简单的 Web 服务器工作正常。  
    • 您是否能够看到支持100Mbps 的链路?  我想问一下如何在这种情况下定义链路。  我在示波器上看到100M/3级信号,但无法通过 RJ45电缆环回测试。 不用说、它无法使用 Lwip 示例获得 Ping。   
    • 您能否检查寄存器的0x0001、0x0004和0x0005。 将很快执行此操作 并发布结果。  

    非常感谢!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Xuan:

    寄存器0x0001将提供有关上行链路的信息。 我将等待您的回复。

    --
    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hillman、您好!  

    我从我的 CCS 代码中读取了数据。 这是寄存器的值。 已建立有效链路。 期待您的帮助。 谢谢  

    0x0000 = 0010000100000000b

    0x0001 = 0111100001001101b

    0x0004 = 0000000111100001b

    0x0005 = 00000000000000000000000000000000b

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Xuan:

    在读取寄存器时、您是否有链接伙伴? 我在连接方侧没有看到任何广告?

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hillman、  

    我正在执行外部回送测试。  

    我使用的是路由器、但没有发生任何事情、因此我回退去执行 RJ45电缆环回。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以连接到路由器并获取 0x0005,如果您认为这有助于调试的话。同样,当前最奇怪的是,当我执行外部回送时 PHY 从不将数据放在 RX[3:0]上。  但 RD_p/n 上的物理信号已经很好了。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Xuan:

    为了进一步调试、您能否为我提供如何执行外部回送的步骤?

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、根据 C2000 MII_PHY_环 回示例、总的来说、我对10M 和100M 使用相同的代码、但摆脱了 MII 环回设置。 通过使用相同的代码、 10M 始终会通过 、但一旦启用、100M 就永远不会将任何 RX[3:0]信号返回到 DSP 的 MAC、当然根本没有 RX 封装。  

    1) 1)加载 f28388D CPU1的 RAM

    2) 2)加载 CM 内核的 RAM

    3) 3)运行 CPU1进行 GPIO 初始化、并运行 CM 内核进行寄存器写入。  

    4) 4)已尝试保留回送电缆插件、并在 DSP 运行后插入电缆。  

    5) 5) 通过示波器监测短路点上的 CAT5电缆(1至3、2至6)。 我每次都能看到100M 链路特性模式。  

    6) 6)我一直在发送 TX 封装、但在 CCS 调试器中从未获取任何 RX 封装。  

    7) 7)使用 示波器进行物理测试。 PHY 的 RX_D[3:0]引脚上无信号、PHY 的 RX_ER 始终表现为 RX_DV、这意味着 PHY 正在抛出错误。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Xuan:

    由于它从100mpbs 开始建立链路、因此问题很可能出在 MAC 接口上。 我有几个问题需要您进一步调试:

    • 您使用的是什么 MAC 接口?
    • 您是如何配置为100Mbps 的? 您是否根据自动协商配置它? 还是强制它进入100Mbps 模式?
    • 您能否还提供0x0468的信息

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1) 1)我们使用 MII

    2) 2)我们尝试了这两种方法、一旦强制为100或自动 为100、当我们执行外部 回送时没有收到任何封装。  

    3) 0468、我们的板显示0087、而 DP83826EVM 板显示02A2。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请参阅 EVM 与我们的电路板之间的总体比较。其他所有比较都相同。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hillman、  

    此外、如果您有任何建议、请查看我对 DP83826的电测试。  

    e2e.ti.com/.../4125222

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Xuan:

    您是否能够在电路板中执行 MII 回送? MII 回送可通过寄存器0000中的位[14]和寄存器0016中的位[12]启用。 我想知道的是内部电路板问题或 MAC 接口问题。 请告诉我、您是否能够在运行 MII 回送时接收数据? 有关更多详细信息、请参阅数据表中的第9.3.14节。

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我是 Hai Xuan 的队友。 我们可以确认、当 DP83826EVM 的分线板连接到  TMS320F28388D controlCARD 的 GPIO 引脚时、我们在使用 DP83826EVM 执行 MII 回路时没有问题(修订版 a)。 实际上、我们甚至可以 从 C2000Ware 中几乎按原样运行 MII 环回示例 CCS 工程 Ethernet_ex2_phy_loopback (我们仅略微增加了数据包传输后的等待时间)。 在该小型固件程序中、我们仅设置 BMCR (寄存器0x0000)的位14、与 数据表和本论坛上给出的说明相反、没有设置寄存器0x0016中的位12。

    我们还设法  通过板上的 PHY 执行 MII 环回、但需要没有分配 MCU GPIO 引脚作为 以太网 RX_ERR 引脚。 如果我们分配了一个引脚用作 RX_ERR、则会收到错误、并且我们不会收到返回的数据包数据。 如果未分配引脚、则 我们不会收到接收错误、并且我们能够获取返回的数据包数据。

    显然、我们应该分配一个引脚、以便在正常运行期间获取 RX_ERR 信号。  但是、无论是否分配了 RX_ERR 引脚、 我们的电路板仍无法在  正常运行期间建立100Mbps 的链路速度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    因为您无法在连接 RX_ER 的情况下执行 MII 回送。 我认为您的问题可能是 MAC 接口上的时序问题。 对于进一步的调试、您是否可以对 MAC 接口确定时序要求并确保它满足以下要求?

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     我们要重申的是  、连接到 TMDSHSECCK 底板 的 TMS320F28388D controlCARD (如果重要、它是修订版 A controlCARD、而不是更新版本 B controlCARD)设法利用 DP83826EVM 上的 DP83826E 发送和接收以太网数据包。 而 MDIO 和 MDC 仍由  DP83826EVM 上的 MSP430F5529、CRS、COL、RXCLK、RXDV、 RXER、RXD[0:3]、TXCLK、TXEN、TXD[0:3]引脚均由   我们 TMDSCNCD28388D controlCARD 上的 TMS320F28388D 微控制器控制。

    为了执行 MII 回送、我们使用 USB2MDIO 桌面程序来设置基本模式控制寄存器(PHY 寄存器地址0x0)的位14。 然后、我们成功运行了 C2000Ware 示例固件程序  ethernet_ex2_phy_loopback、几乎没有进行任何修改 (原始示例代码和修改后的代码之间的唯一区别是  与 PHY 寄存器管理相关的行被注释掉、因为 MSP430F5529微控制器负责设置 PHY 寄存器、并使输出数据包后的等待时间稍微长一点)。

    //#############################################################################
    //
    // FILE:   ethernet_ex2_phy_loopback.c
    //
    // TITLE:  Ethernet Basic Transmit and Receive External (PHY) Loopback Example
    //
    //! \addtogroup driver_example_cm_list
    //! <h1> Ethernet Basic Transmit and Receive PHY Loopback </h1>
    //!
    //! This example demonstrates the steps to be followed in using the
    //! Ethernet of the Communication Manager Subsystem to initialize
    //! the Ethernet module and Configure the module in External Loop back mode
    //! the packet is looped back at external PHY.
    //! Prepares a packet to be sent, Sends the packet and reads the staticstics
    //! to check if the packet is received by the module
    //! Before running this Communication Manager code the C28x cpu1 code has to be run
    //! to configure the clocks to Communication manager
    //! and required IO pads for Ethernet module
    //!
    //! \b External \b Connections \n
    //!  This example programs the Ethernet module in External Loop back mode (at PHY)
    //! and hence needs external connection to the PHY on the MII interface and
    //! also the MDIO Pins connected to the PHY. This example assumes DP83822 PHY
    //! for the PHY configurations if a different PHY is used the sequences might change
    //! Refer to the C28x CPU1 code of ethernet_config_c28x project
    //! for which GPIOs are used for connecting to the PHY
    //!
    //! \b Watch \b Variables \n
    //!  - phyRegContent variable can be checked to know if PHY register
    //! read,write is working correctly
    //!   - stats to know if the packet is received correctly after loopback
    //! at PHY side
    //
    //#############################################################################
    // $TI Release: F2838x Support Library v3.04.00.00 $
    // $Release Date: Fri Feb 12 19:08:49 IST 2021 $
    // $Copyright:
    // Copyright (C) 2021 Texas Instruments Incorporated - http://www.ti.com/
    //
    // Redistribution and use in source and binary forms, with or without 
    // modification, are permitted provided that the following conditions 
    // are met:
    // 
    //   Redistributions of source code must retain the above copyright 
    //   notice, this list of conditions and the following disclaimer.
    // 
    //   Redistributions in binary form must reproduce the above copyright
    //   notice, this list of conditions and the following disclaimer in the 
    //   documentation and/or other materials provided with the   
    //   distribution.
    // 
    //   Neither the name of Texas Instruments Incorporated nor the names of
    //   its contributors may be used to endorse or promote products derived
    //   from this software without specific prior written permission.
    // 
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
    // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
    // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
    // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
    // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
    // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    // $
    //#############################################################################
    
    //
    // Included Files
    //
    #include "driverlib_cm.h"
    #include "cm.h"
    
    //
    // Defines
    //
    #define PACKET_LENGTH 132
    
    #define ETHERNET_NO_OF_RX_PACKETS   1U
    //
    //Change this define for changing Packet buffer length
    //
    #define ETHERNET_MAX_PACKET_LENGTH 1538U
    
    
    //
    // Globals
    //
    uint8_t Ethernet_rxBuffer[ETHERNET_NO_OF_RX_PACKETS *
                              ETHERNET_MAX_PACKET_LENGTH];
    
    uint8_t pData[PACKET_LENGTH];
    
    
    //
    // Main
    //
    void main(void)
    {
    
       Ethernet_InitInterfaceConfig initInterfaceConfig;
       Ethernet_InitConfig *pInitCfg;
       Ethernet_Pkt_Desc pktDesc;
       uint32_t i;
       Ethernet_Statistics stats;
       Ethernet_Handle emac_handle;
       uint16_t phyRegContent=0;
    
        //
        // Initialize device clock and peripherals
        //
        CM_init();
    
       //
       //Form the unicast Packet in Memory
       //
       for(i=0;i<PACKET_LENGTH/4;i++)
       {
            //
            //First 6 bytes of the packet are the MAC Destination Address
            //Bytes, the Destination and CRC shall be inserted by the hardware
            //
           if(i == 0)
               *((uint32_t *)pData + i) = 0x01020304;
           else if(i == 1)
               *((uint32_t *)pData + i)  = 0xFFFF0506;
           else
               HWREG((uint32_t *)pData +i) = 0xFFFFFFFF;
       }
    
       //
       //Select the MII interface of the module
       //
       initInterfaceConfig.ssbase = EMAC_SS_BASE;
       initInterfaceConfig.enet_base = EMAC_BASE;
       initInterfaceConfig.phyMode = ETHERNET_SS_PHY_INTF_SEL_MII;
        //
        //Assign SoC specific functions for Enabling,Disabling interrupts
        //and for enabling the Peripheral at system level
        //
        initInterfaceConfig.ptrPlatformInterruptDisable = &Platform_disableInterrupt;
        initInterfaceConfig.ptrPlatformInterruptEnable = &Platform_enableInterrupt;
        initInterfaceConfig.ptrPlatformPeripheralEnable = &Platform_enablePeripheral;
        initInterfaceConfig.ptrPlatformPeripheralReset = &Platform_resetPeripheral;
        //
        //Assign the peripheral number at the SoC
        //
        initInterfaceConfig.peripheralNum = SYSCTL_PERIPH_CLK_ENET;
        //
        //Assign the default SoC specific interrupt numbers of Ethernet interrupts
        //
        initInterfaceConfig.interruptNum[0] = INT_EMAC;
        initInterfaceConfig.interruptNum[1] = INT_EMAC_TX0;
        initInterfaceConfig.interruptNum[2] = INT_EMAC_TX1;
        initInterfaceConfig.interruptNum[3] = INT_EMAC_RX0;
        initInterfaceConfig.interruptNum[4] = INT_EMAC_RX1;
    
        pInitCfg = Ethernet_initInterface(initInterfaceConfig);
    
        //
        // Get an initial configuration of known good parameters
        //
        Ethernet_getInitConfig(pInitCfg);
        //
        //Assign the callbacks for Getting packet buffer when needed
        //Releasing the TxPacketBuffer on Transmit interrupt callbacks
        //Receive packet callback on Receive packet completion interrupt
        //
        pInitCfg->pfcbGetPacket = &Ethernet_getPacketBuffer;
        pInitCfg->pfcbFreePacket = &Ethernet_releaseTxPacketBuffer;
        pInitCfg->pfcbRxPacket = &Ethernet_receivePacketCallback;
        //
        //Assign the Buffer to be used by the Low level driver for receiving
        //Packets. This should be accessible by the Ethernet DMA
        //
        pInitCfg->rxBuffer = Ethernet_rxBuffer;
    
        //
        //The Application handle is not used by this application
        //Hence using a dummy value of 1
        //
        Ethernet_getHandle((Ethernet_Handle) 1,pInitCfg , &emac_handle);
    
        //
        //Do global Interrupt Enable
        //
        (void)Interrupt_enableInProcessor();
        //
        //Assign default ISRs
        //
        Interrupt_registerHandler(INT_EMAC_TX0, Ethernet_transmitISR);
        Interrupt_registerHandler(INT_EMAC_RX0, Ethernet_receiveISR);
        //
        //Enable the default interrupt handlers
        //
        Interrupt_enable(INT_EMAC_TX0);
        Interrupt_enable(INT_EMAC_RX0);
    
        /** PHY register management is not applicable when interfacing with the DP83826EVM **/
    //    //
    //    //Low Frequency
    //    //value of 5 for selecting the slowest possible MDIO Clock
    //    //Clause 22 mode
    //    //
    //    Ethernet_configureMDIO(EMAC_BASE,0,5,0);
    //
    //    //
    //    //The DP83822 External PHY in Control Card
    //    //takes a PHY address of 1 by default
    //    //Configure the MDIO module to use PHY address of 0x1
    //    //
    //    Ethernet_configurePHYAddress(EMAC_BASE,1);
    //
    //    //
    //    //Address 0 of PHY corresponds to Basic Mode Control Register(BMCR)
    //    //Read the register to know the state
    //    //
    //    phyRegContent= Ethernet_readPHYRegister(EMAC_BASE,0);
    //
    //    //
    //    //Bit 14 of BMCR configures the MII Loopback
    //    //
    //    phyRegContent |= 0x4000;
    //
    //    Ethernet_writePHYRegister(EMAC_BASE,0,phyRegContent);
    //
    //    //
    //    //Read back the BMCR register to confirm that the MII Loopback
    //    //is configured properly
    //    //
    //    phyRegContent= Ethernet_readPHYRegister(EMAC_BASE,0);
    
        //
        //Prepare a Packet Descriptor structure to send a packet
        //This contains a single buffer single packet
        //The Source address shall be inserted by the MAC
        //Packet CRC is auto computed by the module and appended in the packet
        //
        pktDesc.bufferLength = PACKET_LENGTH;
        pktDesc.dataOffset = 0;
        pktDesc.dataBuffer = pData;
        pktDesc.nextPacketDesc = 0;
        pktDesc.flags = ETHERNET_PKT_FLAG_SOP |ETHERNET_PKT_FLAG_EOP|ETHERNET_PKT_FLAG_SA_INS;
        pktDesc.pktChannel = ETHERNET_DMA_CHANNEL_NUM_0;
        pktDesc.pktLength = PACKET_LENGTH;
        pktDesc.validLength = PACKET_LENGTH;
        pktDesc.numPktFrags = 1;
    
        //
        //Send the packet prepared
        //
        Ethernet_sendPacket(emac_handle,&pktDesc);
    
    
        //
        //Delay for the MAC to send the packet on the wire and receive it
        //
        SysCtl_delay(3000*3); /** We need to wait just little bit longer than 3000 cycles **/
    
        //
        //Read the statistics of the Module
        //
        Ethernet_getStatistics(emac_handle, &stats);
    
        //
        //Check if a packet has been received
        //
        if(!stats.rxUnicastPacketsGood)
            __asm("   bkpt #0");
    
    }
    
    
    

    此外、使用 controlCARD 和 DP83826EVM 进行的这种设置甚至可以成功运行更复杂的 enet_lwip 示例项目(该固件程序将 controlCARD 转变为一个简单的 Web 服务器、为简单的交互式 HTML 页面提供服务) 无需对固件代码进行任何修改即可实现10Mbps 和100Mbps 链路速度。

    因此、这不可能是 MAC 时序问题    、因为如果 TMS320F28388D 微控制器存在 MAC 时序问题、我们 controlCARD 上的 TMS320F28388D 微控制器应该与我们专有板上的 TMS320F28388D 微控制器一样发生故障; 但它没有成功地运行了我们提供的上述测试程序。 此外、固件无法更改 MAC 接收和发送时序; 此类时序行为内置于微控制器的器件中。

    最后、下面是  直接来自 TMS320F28388D 数据表的 MAC RX 和 TX 时序表和图 、供您参考:

    附录1:

    根据 相关数据表、DP83826和 DP83822 (TMDSCNCD28388D controlCARD 上的以太网 PHY)的10Mbps 和100Mbps MII 时序完全相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我会提供更多有关时序的信息。  

    Howard 向 DP83826解释了 f28388D 不应出现任何时序问题。 在这里、我的点是 PCB 中的所有 RX、TX 迹线都是匹配的。 由于迹线、我没有看到出现时序问题的可能性。 25MHz 是如此之小的蛋糕。 即使我们在2英寸区域内不进行任何布线匹配、也不会出现问题。  

    请帮助确认

    1) 1)如果 DP83826的 RD 和 TD 输出应具有相同的偏移电压电平。  

    2) DP83826对"功率斜坡之前 VDDA3V3、VDDIO 上的基座电压"非常敏感。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Howard 和 Xuan、大家好、

    感谢您的耐心等待。 我确实认为我与您一起讨论的是 MII 时序要求 、这可能不是问题的根本代价。  如果 您遇到时序要求问题、当您从 MDI 侧发送信号时、仍然可以从 RX_D[x]接收一些信号。 我确实认为问题可能在加电限制中。  我是否可以提出一些问题并提供一些进一步调试的过程:

    • 每次为 PHY 上电时、您是否写入任何额外的寄存器?
    • 您能够以100 mpbs 的速度获取链接、对吧? 如果是、您可以尝试以下操作:
    •  您是否尝试在 MDI 侧进行数据传输时进行硬复位、以查看是否从 RX_D[x]获得任何信号?
    • 您是否还可以将001F 写入8000以便在 MDI 侧传输数据时看到 RX_D[x]发出的一些信号。
    • 您能否提供电源电压的快照以查看电源电压上升情况?
    • 您是否还可以在示波器中对振荡器进行快照?

    "实际上、我们甚至可以从  C2000Ware 中几乎按原样运行 MII 环回示例 CCS 项目 ethernet_ex2_phy_loopback (我们只是略微增加了数据包传输后的等待时间)。"

    您是否使用了与原始电路板设计分离的电路板来实现 MII 回路?

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="511468" URL"~/support/interface-group/interface/f/interface-forum/1111017/dp83826i-100M-mode-neve-rx_d-signal-and-rx_er-ale-wy-exe-like rx_dv/4129360#4129360]引用您使用的电路板是否与原始设计分离?

    对于 controlCARD 上的 PHY (即 DP83822以太网 PHY)和 DP83826EVM 上的 PHY (即 DP83826 以太网 PHY)、该示例项目在我们的 TMDSCNCD28388D controlCARD (德州仪器(TI)产品)上毫无错误地工作。 我们的专有电路板还使用 TMS320F2888D 微控制器和 DP83826 PHY 、但无法无误地执行相同的示例项目。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    感谢您的澄清。 我将等待您的进一步更新。

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于我们的专有电路板、当我们尝试以100Mbps 链接运行 Web 服务器示例固件工程(即 enet_lwip)时、PHYSTS 寄存器(寄存器地址0x10)中的位10和位9不会置位。 对于通过 controlCARD  基板和 DP83826EVM  分线板之间的导线连接到 DP83826EVM 的 controlCARD、当我们使用100Mbps 链路运行同一示例固件项目时 、PHYSTS 寄存器中的相同位确实会置位。

    位9 与 "PMD"中的100Base-TX 解扰器锁定指示有关、位10与"PMD"中的100Base-TX 无条件信号检测指示有关。

    EDIT1:我找到了一些有关以太网合规性测试的文档。

    如何配置 DP838xx 以符合以太网标准

    如何通过 IEEE 以太网合规性测试

    除了合规性测试寄存 器、我想知道我需要配置哪些其他 PHY 寄存器、以便为 PHY 进行此类测试做好准备。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    我们将 在今天的实验室中测试 DP83826EVM 的合规性、并在本周晚些时候向您提供响应。

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。

    在进行合规性测试时、您还能注意 RD 和 TD 模拟信号的直流失调电压吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    我今天在实验室中仔细检查 Dp83826 PHY 上的100Base-TX。  我没有看到 RD 和 TD 模拟信号的任何直流失调电压。  对于100Base-TX 标准 MDI 测试、请使用以下脚本:

    • 寄存器0x001F = 0x8000 //复位 PHY  
    • 寄存 器0x0000 = 0x2100 //将 DUT 编程为100Base-TX 模式  
    • 寄存 器0x0010 = 0x5008 //将 DUT 编程为强制 MDI 模式

    --

    此致、

    林山民

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="511468" URL"~//support/interface-group/interface/f/interface-forum/1111017/dp83826i-100M-mode-neve-rx-signal-and-rx_er-always use-we-like -rx_dv/4133777#4133777#tdrd 和 rdrd 没有看到任何模拟偏移量数据[和引用的 drdrd 和 rd 数据]

    您好、Hillman、

    很抱歉、您的回答较晚、但当您说没有直流偏移时、RD 和 TD 信号之间的相对偏移是不是? 我们 使用自己的设备测量 DP83826EVM 的 RD 和 TD 信号、实际上它们之间没有任何明显的偏移。 但是、RD 和 TD 信号接地的绝对偏移又如何呢?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    我是否可以提出几个问题:

    • 为什么要在合规性测试中测量直流失调电压?
    • 由于 MDI 是一个交流耦合系统、 因此直流失调电压对于 RD 和 TD 信号接地无关紧要。

    --

    此致、

    林山民