<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC MicrocontrollersのトピックRe: LPC Ethernet with DP83848 PHY</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/1154324#M42261</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Unfortunately, we do not have any implementation that you could use as reference for this PHY which is different from the one we use un our evaluation boards. I checked your pins and clocks and they seem correct.&lt;/P&gt;
&lt;P&gt;I found this old thread from a customer that implemented drivers for this PHY and LPC1788 that you may find useful.&lt;/P&gt;
&lt;P&gt;&lt;A title="Change PHY to DP83848 in LWIP_lpc-v08.0" href="https://community.nxp.com/t5/LPC-Microcontrollers/Change-PHY-to-DP83848-in-LWIP-lpc-v08-0/m-p/518982" target="_self"&gt;Change PHY to DP83848 in LWIP_lpc-v08.0 - NXP Community&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Also, as far as I know the PHY you are using requires external reference clock so I don’t know if this could the because of the issue as well.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Felipe&lt;/P&gt;</description>
    <pubDate>Wed, 16 Sep 2020 18:26:18 GMT</pubDate>
    <dc:creator>FelipeGarcia</dc:creator>
    <dc:date>2020-09-16T18:26:18Z</dc:date>
    <item>
      <title>LPC Ethernet with DP83848 PHY</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/1152421#M42206</link>
      <description>&lt;P&gt;I'm new to LPC and I'm trying to get a DP83848 PHY working with ENET.&amp;nbsp; With some help, I've written a PHY layer to use with the LwIP example but I'm having some trouble reading the registers.&amp;nbsp; Any time I read any of the registers on the PHY it's returning 0xFFFF.&amp;nbsp; I think I've missed something in setting up the pins or perhaps the clocks.&lt;/P&gt;&lt;P&gt;Pictures of Pin's and Clocks attached.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Any guidance is appreciated!&lt;/P&gt;&lt;P&gt;PHY code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;const phy_operations_t phyd8opts = {.phyInit = phyDpInit,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;.phyWrite = phyDpWrite,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;.phyRead = phyDpRead,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;.getLinkStatus = phyDpGetLinkStatus,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;.getLinkSpeedDuplex = phyDpGetLinkSpeedDuplex,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;.enableLoopback = NULL};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;#define PHY_WRITE(x,y)MDIO_Write(handle-&amp;gt;mdioHandle, handle-&amp;gt;phyAddr, x, y)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;#define PHY_READ(x,y)MDIO_Read(handle-&amp;gt;mdioHandle, handle-&amp;gt;phyAddr, x, y)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;void phyDelay(uint32_t mills)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;int i = 0;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;while(i++ &amp;lt; (mills * 128000))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;__asm__("nop");&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;status_t phyDpInit(phy_handle_t *handle, const phy_config_t *config)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;uint32_t read;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;int i;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;MDIO_Init(handle-&amp;gt;mdioHandle);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;handle-&amp;gt;phyAddr = config-&amp;gt;phyAddr;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;// Reset the phy&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;if(PHY_WRITE(DP8_BMCR_REG,DP8_RESET) == kStatus_Fail)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Fail;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;i = 500;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;while(i--)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;phyDelay(1);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;if(PHY_READ(DP8_BMCR_REG, &amp;amp;read) == kStatus_Fail)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Fail;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;if(!(read &amp;amp; (DP8_RESET | DP8_POWER_DOWN)))&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;break;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;if( i == -1 )&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Timeout;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;// Set the configuration&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;if(PHY_WRITE(DP8_BMCR_REG, DP8_AUTONEG) == kStatus_Fail)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Fail;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;phyDelay(1);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;PHY_READ(DP8_BMSR_REG, &amp;amp;read);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;} while(!(read &amp;amp; DP8_AUTONEG_COMP));&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Success;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;status_t phyDpWrite(phy_handle_t *handle, uint32_t phyReg, uint32_t data)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return MDIO_Write(handle-&amp;gt;mdioHandle, handle-&amp;gt;phyAddr, phyReg, data);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;status_t phyDpRead(phy_handle_t *handle, uint32_t phyReg, uint32_t *dataPtr)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return MDIO_Read(handle-&amp;gt;mdioHandle, handle-&amp;gt;phyAddr, phyReg, dataPtr);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;status_t phyDpGetLinkStatus(phy_handle_t *handle, bool *status)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;uint32_t read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;if(PHY_READ(DP8_BMSR_REG, &amp;amp;read) == kStatus_Success)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*status = (read &amp;amp; DP8_LINK_STATUS);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Success;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;return kStatus_Fail;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;status_t phyDpGetLinkSpeedDuplex(phy_handle_t *handle, phy_speed_t *speed, phy_duplex_t *duplex)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;uint32_t read;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;status_t ret;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;ret = kStatus_Fail;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;if(PHY_READ(DP8_BMSR_REG, &amp;amp;read) == kStatus_Success)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;ret = kStatus_Success;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;if(read &amp;amp; DP8_100BASE_TX_FD)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*speed = kPHY_Speed100M;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*duplex = kPHY_FullDuplex;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;else if(read &amp;amp; DP8_100BASE_TX_HD)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*speed = kPHY_Speed100M;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*duplex = kPHY_HalfDuplex;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;else if(read &amp;amp; DP8_10BASE_T_FD)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*speed = kPHY_Speed10M;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*duplex = kPHY_FullDuplex;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;else if(read &amp;amp; DP8_10BASE_T_HD)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*speed = kPHY_Speed10M;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;*duplex = kPHY_FullDuplex;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;ret = kStatus_Fail;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;return ret;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="terminal,monaco"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Sep 2020 22:34:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/1152421#M42206</guid>
      <dc:creator>LPChicago</dc:creator>
      <dc:date>2020-09-12T22:34:48Z</dc:date>
    </item>
    <item>
      <title>Re: LPC Ethernet with DP83848 PHY</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/1154324#M42261</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Unfortunately, we do not have any implementation that you could use as reference for this PHY which is different from the one we use un our evaluation boards. I checked your pins and clocks and they seem correct.&lt;/P&gt;
&lt;P&gt;I found this old thread from a customer that implemented drivers for this PHY and LPC1788 that you may find useful.&lt;/P&gt;
&lt;P&gt;&lt;A title="Change PHY to DP83848 in LWIP_lpc-v08.0" href="https://community.nxp.com/t5/LPC-Microcontrollers/Change-PHY-to-DP83848-in-LWIP-lpc-v08-0/m-p/518982" target="_self"&gt;Change PHY to DP83848 in LWIP_lpc-v08.0 - NXP Community&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Also, as far as I know the PHY you are using requires external reference clock so I don’t know if this could the because of the issue as well.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Felipe&lt;/P&gt;</description>
      <pubDate>Wed, 16 Sep 2020 18:26:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/1154324#M42261</guid>
      <dc:creator>FelipeGarcia</dc:creator>
      <dc:date>2020-09-16T18:26:18Z</dc:date>
    </item>
    <item>
      <title>Re: LPC Ethernet with DP83848 PHY</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/2114659#M58363</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;BR /&gt;I'm working on GMAC ethernet working with PHY83848C need to send packets nxp32k344 board to orange pi and to see in the wireshark.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;please help me out&lt;/P&gt;</description>
      <pubDate>Wed, 11 Jun 2025 17:52:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC-Ethernet-with-DP83848-PHY/m-p/2114659#M58363</guid>
      <dc:creator>suman143_</dc:creator>
      <dc:date>2025-06-11T17:52:06Z</dc:date>
    </item>
  </channel>
</rss>

