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

This discussion is locked. Please start a new topic to ask your question.
3 REPLIES 3
waclawek.jan
Super User

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 ?