我正在为这个PIC32 MZ2048 EFG064移植一个特定的TCP/IP协议栈。现在,我正在尝试通过描述描述符的功能,通过尝试传输一个描述符链,并在逻辑分析仪上从TXEN、TXD0和TXD1引脚中看到活动。这看起来应该很简单,但我遇到了一个问题,我已经没有任何想法可以尝试了。在附加的代码中,我有三个以太网TX描述符,并且每个都有一个缓冲区。如果我用MESET将每个缓冲器的内容设置为任意的值(0x14),则我的逻辑分析器显示第一帧包含数据,但是第二和第三在每个帧的开始和结束时不只是一个或两个。EthFrMTxOK=3,这是我所期望的。但是,如果我不初始化缓冲区,MAC不会传输任何东西。MAC引脚没有活动,EthFrMTxOK保持在零。如果我在每个缓冲区填充一个合成的SA、DA和长度,它仍然不传输。我已经阅读了以太网数据表6000,1155D,我找不到任何解释。它似乎是足够简单的,它应该简单地传输缓冲区中的内容,但有些东西挂起。如果我改变0xC400 0180值,所以缓冲区长度不同,例如to0xc2000 180,该帧是其他长度的一半,所以我知道这是有效的。我使用了和声EX。足够让事情更接近。以前基本上没有任何事情发生,现在有一些东西从RMII接口出来,并不是预期的。有人在PIC32 MZ上使用了MAC吗?我相信它与PIC32 MX上的相同,但是MX移植到MZ的例子甚至不起作用。我现在想要的是成功传输以太网帧,并在每一帧上看到数据。
以上来自于百度翻译
以下为原文
I'm working on por
ting a specific TCP/IP stack to this PIC32MZ2048EFG064. Right now I'm experimenting with it by learning how the descriptors function by trying to transmit a chain of descriptors and watch for activity out of the TXEN, TXD0, and TXD1 pins on a logic analyzer. This seems like it should be simple enough but I'm running into a problem I no longer have any ideas to try.
In the attached code I have three ethernet Tx descriptors, and each has a buffer. If I set the contents of each buffer to some arbitrary value (0x14) with memset, my logic analyzer shows the first frame contains data, but the 2nd and 3rd do not other than a bit or two at the start and end of each frame. ETHFRMTXOK = 3, which is what I'd expect.
However if I don't initialize the buffers, the MAC won't transmit anything. There's no activity out of the MAC pins, and ETHFRMTXOK remains at zero. If I populate a made-up SA, DA, and length in each buffer, it still doesn't transmit. I've read through the Ethernet datasheet 60001155D, and I can't find anything to explain this. It seems straightforward enough that it should simply transmit what's in the buffer, but something is hanging up.
If I change the 0xc4000180 value so the buffer length is different, for example to 0xc2000180, that frame is half the length of the others so I know that's working.
I have used a H
ARMony example to get things closer. Previously essentially nothing was happening, now something is coming out of the RMII interface, just not what's expected.
Has anyone used the MAC on the PIC32MZ? I believe it's the same as what's on the PIC32MX, but examples for MX ported to MZ don't even work. All I want right now is to successfully transmit ethernet frames and see data on each one.
Attachment(s)
main.c (7.62 KB) - downloaded 34 times
0