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.
因为需要将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)。