2016-08-31 07:03 AM
Hi,
I have a custom board with Ethernet using the STM32F4 and the KSZ8051RNL Phy from Micrel working in RMII mode.
The firmware is based on the LWIP TCP server example from the std. periphery library using a raw communication. I have been using this design in other boards with success. Everything works perfectly.Now Im trying to port this code to the same board but with the STM32F7.
I just copied the code since I thought that the ethernet Periphery is the same.In principle it works. I got an IP from the DHCP server, the netbiosname works, I can ping the board. My problem is that when I send a data request to the controller, the answer does not leave until I send a couple of request. As if a minimum buffer size must be filled or something similar.
Does any one have any idea what could be happening here?
Is any register different in the F7? or I am missing one?Regards
dev2016-09-07 02:05 AM
Hi guys,
I just found my error. Although I didn't activate the D-Cache, I must protect the RAM where the DMA TX descriptors for the Ethernet are placed. Now it works as supposed.
I found it, after placing a data synchronization barrier _DSB() before overwriting the DMA descriptors in the ETH_Prepare_Transmit_Descriptors function.Best regards
dev