Part Number:DP83826EOther 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?
s s:
非常抱歉,信息提供错误,因为写寄存器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。
,
Kailyn Chen:
您好,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呢。
那么
,
s s:
你好,非常感谢你的回复,下面是我的疑问与理解:
①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 才能正常网络通信?)
,
Kailyn Chen:
明白您的意思。
首先对于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。
我再看下这个寄存器。
,
s s:
是的,问题如你所述一致,期待你的进一步回复。 谢谢!
,
Kailyn Chen:
您好,我看了下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配置是没问题的。
,
s s:
好的,非常感谢, 我这就确认一下。
,
s s:
我想你应该是对的,寄存器0x302 bit8 是针对enhance mode下而言的。 寄存器0x468的 bit12 也是针对enhance mode的。
如果我是basic mode,满足50Mhz时钟给XI,strap pin10(引脚18)和strap pin4(引脚28)上拉为高电平 即可 。 不再需要其他的配置。
无需理会 寄存器0x468的 bit12 是否为0(RMI CRS_DV)。