cancel
Showing results for 
Search instead for 
Did you mean: 

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

khaaal
Associate II

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

3 REPLIES 3

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
Chief II

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.

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 ?