Part Number: MSP432E401Y
Hello support team!
I use MSP432E401Y. I write an assembly code in the Code Composer Studio.
I want to use standard MSP432E401Y abilities for MAC filtering. First of all I have tried to enable Destination MAC filtering. I write the MAC into EMACADDR0L and EMACADDR0H. Destination MAC filtering acts perfectly.
For Source MAC filtering I take next steps:
- I write the MAC address into EMACADDR1L and EMACADDR1H;
- I set bit 31 (AE) (The address filter module uses the second address for perfect filtering) and bit 30 (SA) (MAC Address1[47:0] is used to compare with the SA fields of the received frame) in the register EMACADDR1H;
- I set bit 9 (SAF) in the register EMACFRAMEFLTR (Source address filter enabled). All other bits of the EMACFRAMEFLTR are zeros.
You will ask how I check the filtering. I send to the MCU an Ethernet frames with following parameters:
- Destination MAC address of the frame does not match the address in EMACADDR0x
- Source MAC address of the frame matches the address in EMACADDR1x.
But DMA drops the frames. I think the frames shall be received, because bit 31 of EMACFRAMEFLTR is cleared (MAC RX module only passes frames that pass the SA or DA address filter).
Moreover I clear and bit 30 (SA) in EMACADDR1H (MAC Address1[47:0] is used to compare with the DA fields of the received frame) and send frames with Destination MAC address, that matches the address in EMACADDR1x. But DMA drops the packets again. The EMAC receives a frame, only if the Destination MAC field of the frame matches EMACADDR0x.
I do not find my mistake. It seems like EMACADDR1x is always disabled. The EMAC “does not see” the address placed in EMACADDR1x. But bit 31 (AE) = 1. I checked it in Registers window during debug session.
Please, help me. I feel the mistake is small.
Best regards.