TI E2E Community
Hercules™ Safety Microcontrollers
Hercules™ Safety Microcontrollers Forum
EMAC and PHY
I'm using Hercules TMS570 kit. I would like to send few bits of information from one board to another just using EMAC, MDIO and PHY and without using any standard ethernet protocol. I took the PHYdp83640 file from the lwIP example software, to use for my work. But, i don't understand how are the EMAC or the MDIO and PHY connected. Is there any PHY register where i need to copy the data in order to put that into the bus ? Is there any document where i could get detailed information on Ethernet functionality on this device ?
For transmitting data over ethernet you will have to use EMAC, MDIO & PHY modules. This is required because of the way Ethernet operates. We do not have a sample that demonstrates ethernet transfers using just the EMAC, MDIO & PHY HAL.
HDK specific interface to lwIP is implemented in the hdkif.c file. You can use this as a reference for you implementation. For more information on the Hercules EMAC peripheral you can refer to TRM @ this link.
Pramod, Thanks for your reply and the TRM. I'm working on that and now i'm able to get the RX count registers updated with the broadcast frames recieved, but still i'm not able to broadcast my frames. Guess, I'm stuck with memory allocation to the TX buffer. I'm having a look on that. Meantime if you could suggest me anything on this, it would be really useful.
For TX sequence refer to the lwIP port. For TX specifics refer to hdkif_transmit function in hdkif.c.
If you can share your code, I can review it for any obvious omissions.
Hey Pramod, I used the hdkif.c of lwIP port, but omiited all other functions except hdkif_transmit. Upon runnnig i see the RX Registers getting updated with the recieved frames. But the frame which i'm trying to send doesn't seem to work. Neither in TX registers nor in wireshark i see this packet. I'm not sure where i've gone wrong.
Could you please suggest something on this. Regards
I'm guessing that the RX packets are broadcasts. Are you connected via a switch? If yes then it's possible that the switch is discarding the packet due to invalid data. Can you try the following:
1. Connect via a Hub
2. Use the broadcast address as destination in your data packet.
Pramod,Yes, the RX packets are broadcasts.
1. I would try doing that.
2. I think i have the broadcast address as destination in my data packet. I have specified destination as FF:FF:FF:FF:FF:FF.
Actually i tried connecting the board, using a crossover cable directly to my PC. But still, i didn't get anything transmitted.
Were you able to work through your issues? If so, please let us know so we may close the thread.
Thanks and Regards,
If this response answers your question, please indicate it by verifying the suggested answer when provided.
I am working on similar lines where i need to transfer data through ethernet but using only EMAC, PHY and MDIO. can u pls help me as u seemed to b implemented the same thing. Can u share ur code and give me some more details about what u have done? It will b really helpful. I am new to Ethenet as well as ARM.
Thanks in advance.
Given the length of time since there has been any activity on this thread I am going to close the thread. If the issue still persists or if there are additional questions, please make a new post to start a new thread. Thanks you.
As stated, above, this thread will be closed due to the long period of inactiviy from the original poster. As such, I would recommend that you also make a new post starting a new thread with specific questions for your application. I believe that this will provide the quickest resolution for your question from the forum moderators.
I have posted several questions on different posts but haven't received relevant answer from any of those (few r not even answered ). Peter has worked on the same problem as that of mine and might b he can help me. If i start wid a new post, how can i relate my problem with this thread?? pls help before closing this thread.
I apologize for the difficulty in getting an answer. I will forward your post to our EMAC experts to see if they could be of assistance.
I really appreciate ur instant reply and look forward for ur help. I just want to transfer a couple of bytes over Ethernet using simple data transfer and not like HTTP or so. The code which i have, initializes the TMS570 for HHTP. I am nt familiar with Ethernet or socket programming. I received only a CD with one code from TI when I ordered HDK kit.
Pls let me know if u will reply on the same post or i have to create a new thread. But pls help me with this issue. I am struggling for a long time.
Unfortunately, EMAC/PHY is not my particular area of expertise either so I have forwarded your post to our experts within the organization. If there are any issues in response to your posts/support, let me know and I will try and push to get you more help/support.
I am attaching two projects one which enables ethernet packet transmission(without using LWIP) and other is the ethernet recieve project.These projects are based on Halcogen 3.02 version.Can you refer to these projects.
The projects for the TMS570LS31 HDK.Let me know if this is useful.
I also want to use the CAN port. I need to receive ordinary data (and not in HTML format or so ) through CAN port of this board . I am looking for sample programes for both Ethernet and CAN operations. That is a bidirectional data transfer through Ethernet between PC and HDK kit and bidirectional data transfer through CAN between HDK board and other outside network.
Thanks for ur help. I will look into those files and get back to u.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.