Olimex Support Forum

Microcontrollers => PIC => Topic started by: GuilhermeGil on April 01, 2021, 07:37:30 pm

Title: PIC32-EMZ64 Ethernet and Harmony 3
Post by: GuilhermeGil on April 01, 2021, 07:37:30 pm
Hello,

I'm trying to implement the Ethernet protocol on the PIC32-EMZ64 using MPLAB Harmony 3, but I'm having some difficulties. From the tutorials that I have seen:
https://github.com/Microchip-MPLAB-Harmony/net/wiki/H2-to-H3-Migration;
https://github.com/Microchip-MPLAB-Harmony/net/wiki/Create-your-first-tcpip-application

none of them talk about two specific ports of the LAN8710A Ethernet transceiver, more specifically, ETH_INT(INT4) and EPHY-RST#, ports 15 and 24 on the PIC32MZ2048EFH064, respectively.


Can anyone help me with this specification? Furthermore, is there any example that uses the PIC32-EMZ64 and Harmony 3?
Title: Re: PIC32-EMZ64 Ethernet and Harmony 3
Post by: kyrk.5 on August 19, 2021, 11:18:07 am
Firist try to just ignore that this is missing, maybe it will work without it. But lets be honest, without Interrupt and a Reset... I do not think so.

So if it is not working, then lets start with a reset. I guess if some kind of an ethernet phy have a reset line, first it must be asserted (low) then when you init your ethernet stuffs it will be released. Goes high. Do you see here any change while running your program? If not then you have to open the source code and try to find the place where the ethernet phy init is done. Maybe you have luck and there is a line to release the reset. From this you can work you back and figure out why this line is not executed, what you have to configure and how. It might also be that the whole stack just do not address the reset line and assume it is always gets released. Maybe it is even connected to the uC reset line. You have to figure this out.

Then the interrupt. Normally if there is some data I guess the interrupt line will tell you this. Often there are two or more ways to handle this. The first way is to completly ignore the interrupt line, and poll over whatever interface you have for data. The second way is to still poll, but before any access is made to read any data or event, the interrutp line is check (as a normal gpio). The last method is to configure an interrupt that gets fired when the line changes and then handle the datas or events or whatever. So you have to check the source code and try to find a place where such stuffs is happening. Maybe there will be a config option to enable polling or interrupt. And then you have to most possibly configure the interrupt or pin or gpio or whatever.

Good Luck!