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.

DP83826E: 引脚18如何切换回 RMII_CRS_DV?

Part Number: DP83826E
Other Parts Discussed in Thread: AM6442

因为需要将83826E配置为RMII SLAVE MDOE, 我需要在外围电路中,将strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平。   结果通过读取扩展寄存器0x468的bit 12,发现引脚18也被配置为RMII_RX_DV了。

我需要将引脚18切换回RMII_CRS_DV:我通过写扩展寄存器0x302的bit8为0(写过程:先读取0x302,得到值0x0100,然后将bit8置0,即写0x0000到0x302),        然后重新读取0x302,,发现0x302值为0xcd80,与我写的值不匹配。  如果我不曾写0x302,发现读取0x302一直为0x100;      请问我该如何才能将引脚18切换回RMII_CRS_DV?

  • 非常抱歉,信息提供错误,因为写寄存器302时不小心写错了。现更正一下:

    ①因为需要将83826E配置为RMII SLAVE MDOE, 我需要在外围电路中,将strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平。   结果通过读取扩展寄存器0x468的bit 12,发现引脚18也被配置为RMII_RX_DV了。

    ②我将引脚18切换回RMII_CRS_DV的方式:我通过写扩展寄存器0x302的bit8为0(写过程:先读取0x302,得到值0x0100,然后将bit8置0,即写0x0000到0x302),  然后重新读取0x302,,已经确定写0成功。  然后再读取扩展寄存器0x468的bit 12,发现bit 12 仍然为1,即引脚18仍为RMII_RX_DV。

  • 您好,strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平的话即为RMII slave mode。

    因为0x302的bit8 默认也是strap pin的值,所以默认也为1,即为Pin18 为RMII_RX_DV。

    那么您想通过改变寄存器去覆盖strap pin的值是可以的,即去写0x302的bit8 为0.但是如果为0的话,即引脚18 为0,不就改成RMII master mode了吗?您实际需要的是RMII slave mode呢。

    那么

  • 你好,非常感谢你的回复,下面是我的疑问与理解:

    ①trap pin10(引脚18)和strap pin4(引脚28)上拉为高电平的话即为RMII slave mode, 该部分不是仅在上电或硬件复位后生效?    我的理解是:后续修改寄存器0x302的bit8,应该不会改动端口模式,也不会改动strap值,因为上电瞬间已经将 strap锁存了。

    ②我并不是想要覆盖strap pin的值,也不想更改RMII模式,我仅想修改引脚18的引脚复用。  

    ③如下图为 83826E RMII slave 信号引脚图,和我MCU(AM6442)使用的CPSW PORT 引脚图:(这样子的连接关系,不是需要将引脚18配置为RMII_CRS_DV 才能正常网络通信?)

  • 明白您的意思。

    首先对于RMII slave mode的配置,第一,50Mhz时钟给XI。第二,strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平。

    根据Pin18的定义,其实我们可以看到RMII mode下,这个引脚即为CRS_DV功能,所以我想既然我们已经成功配置为RMII slave mode,pin18也就是CRX_DV的功能。理论上是不需要再进行其他配置了。

    只是目前遇到的问题是寄存器0x302的bit8读取这个多路复用引脚为1。而在RMII mode中,应该为CRS_DV。

    我再看下这个寄存器。

     

  • 是的,问题如你所述一致,期待你的进一步回复。  谢谢!

  • 您好,我看了下9.4.1.1部分关于enhanced mode下的flow chart,理解的是在enhance mode下PIN18的时分复用功能。也就是说在enhanced mode下可以通过寄存器0x302h的bit8 去配置这个引脚。

    并且,在DP83867 datasheet中有描述0x1F以上的寄存器都为extended registers,同样这也适用于DP83826,即0x302 为extended register,对于extended register的配置数据手册中有描述如何去读写。

    综上得到的推论为,对于basic mode下RMII slave mode下的配置,仍是之前我们讨论的理解,即两个条件,第一,50Mhz时钟给XI。第二,strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平。不再需要其他的配置。并且您也通过读取寄存器468h确实为RMII salve  mode。

    您也可以再读取下寄存器3h这里是否为basic mode,如果确实为1,我想RMII slave mode配置是没问题的。

     

  • 好的,非常感谢, 我这就确认一下。

  • 我想你应该是对的,寄存器0x302 bit8 是针对enhance mode下而言的。   寄存器0x468的 bit12 也是针对enhance mode的。

       如果我是basic mode,满足50Mhz时钟给XI,strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平 即可 。 不再需要其他的配置。

    无需理会 寄存器0x468的 bit12 是否为0(RMI CRS_DV)。

  • 是的,是这样理解的。

    后续有任何问题,我们再讨论。