ch32v307芯片的收多播帧,只能收到一次

ch32v307芯片的收Profinet协议多播帧,只能收到一次,必须重启芯片才能重新收一帧。

设置用的是标准设置,没有改动过。接收长度不够的数据开关应该是开的。

    ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Enable;


这是DEBUG口的数据,第二帧就没有反应了。接收其它类型帧正常。

MAC RAW Test

SystemClk:96000000

ChipID:30700528

mac addr:22 0 5 20 0 ab 

rec data:64 bytes

data:1


这是Profinet工具发送的数据。

0000   01 0e cf 00 00 00 d8 c4 97 2b d5 6b 81 00 00 00

0010   88 92 fe fe 05 00 00 00 00 01 00 01 00 04 ff ff

0020   00 00


换西门子PLC也是一样的效果,只响应第一帧,这是PLC的数据。

0000   01 0e cf 00 00 00 e0 dc a0 83 6a 57 81 00 00 00

0010   88 92 fe fe 05 00 01 02 00 c8 00 01 00 08 02 02

0020   00 03 70 6e 31 00 00 00 00 00 00 00 00 00 00 00

0030   00 00 00 00 00 00 00 00 00 00 00 00


将eth_driver_10M.c中的ReInitMACReg和ETH_Configuration函数中 下图配置改为ETH_MulticastFramesFilter_None

image.png如若后续还有问题可以邮件沟通下(邮箱:lq@wch.cn)



只有登录才能回复,可以选择微信账号登录