µTasker Forum
µTasker Forum => NXPTM M522XX, KINETIS and i.MX RT => Topic started by: Ray on May 30, 2023, 08:08:57 PM
-
Hi Mark,
As you know I have had moderate success interfacing a DP83848 phy into a uTasker ethernet based application despite the MDIO being inoperative.
As I debug this in the simulator, I can see when kinetis_ENET.h is called to initialize code, but I actually can't find where #include "../../Hardware/Kinetis/kinetis_ENET.h" is added, so no preprocessor appear to be invoked from the settings in app_hw_kinetis.h, and all variables are flagged as error by the MSVC intellicode.
If I add like this in the app_hw_kinetis.h
#include "../../Hardware/Kinetis/kinetis.h" // include the Kinetis processor header at this location
#include "../../Hardware/Kinetis/kinetis_ENET.h" // include the Kinetis processor header at this location
My preprocessor defines correctly highlight with intellicode, but I get hundreds of compiler errors.
Can you tell me where the kinetis_ENET.h is supposed to be #included?
Thanks
Ray
-
Hi Ray
In kinetis.c
#if (defined ETH_INTERFACE && defined ETHERNET_AVAILABLE && !defined NO_INTERNAL_ETHERNET)
/* =================================================================== */
/* Ethernet Controller */
/* =================================================================== */
#include "kinetis_ENET.h" // include Ethernet controller hardware driver code
#endif
It is not possible to include it from a header file since it contains code and then the code would be included in multiple locations.
VS normally handles highlighting well. Try a clean/rebuild which may sort it out.
Regards
Mark
-
Thanks Mark
It's strange how intellisense is spotty in my VS2022 for this file - but if I double click the kinetis_ENET.h in kinetis.c the kinetis_ENET.h see's preprocessor info highlighted again.
Unfortunately, I'm still not getting anything but 0xffff when I query the phy registers on the command line. I know my MDIO lines are placed properly this time with a 1.5k p/u I think I need to very carefully attach some skywires to my previous MQX based design to see if MDIO is actually working on MQX code.
-
Hi Ray
don't forget that the PHY has an address that is set via straps. Make sure that its address matches PHY_ADDRESS.
Or you can try SCAN_PHY_ADD which will scan all possible addresses to see whether the ID can be read on one of them.
Good luck
Regards
Mark
-
Hi Mark
I absolutely did not check that :) As I was reading thru the pdf manual it was mentioning the default phy address was 00001 4 weak pull downs, one weak pull up. Yes, my PHY_ADDRESS was defined to 0. setting to 1 and now I can read phy registers!!
I've been waiting months to check that one off my list!
Thanks for the help!!
ray
-
Hi Ray
I am please that you managed to catch the issue.
Regards
Mark