Skip to main content
khaaal
Associate II
September 13, 2019
Question

Is there a way to make HAL_ETH_GetReceivedFrame wait for a frame to be received ? Also can the frame be filtered by ethertype ?

  • September 13, 2019
  • 3 replies
  • 1036 views

I am trying to receive raw ethernet frames on my STM32F746G and i want to wait for their arrival and filter them by etherType.

In the reference manual only filtering by Source or Destination address is possible and i don't seem to understand where to put the address to filter.

Thanks

This topic has been closed for replies.

3 replies

waclawek.jan
Super User
September 13, 2019

Yes, there's no ethertype filtering in hardware, you must do it in software.

Have you read the MAC filtering subchapter in the ETH chapter, and description of the related ETH_MACFFR, ETH_MACHTxR and ETH_MACAyxR registers?

JW

Piranha
Principal III
September 14, 2019

So you want your code to be stuck forever waiting for a frame which could never come? Now that's a "nice" device...

Learn asynchronous processing! Interrupt sets some flag, semaphore or something similar, which in turn triggers processing of new received frames in main code.

khaaal
khaaalAuthor
Associate II
September 16, 2019

I implemented the HAL_ETH_GetReceivedFrame_IT, however it ony receives only the first frame and igonres the others. What seems to be the problem ?