<?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>topic Ethernet Cable Status - TWR-SER2 board in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699965#M43033</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I'm trying to detect the status of the network cable (plugged, un-plugged) on a TWR-SER2 board connected with TWR-K60F120M using&amp;nbsp;&lt;SPAN&gt;MQX 4.2.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;I am using the&amp;nbsp;RTCS function - "ipcfg_get_link_active()" but it seems to always return a&amp;nbsp;'TRUE' once the Ethernet system is configured. Prior to configuring the Ethernet it reports a 'FALSE'. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Once the Ethernet system is configured and operational, plugging or un-plugging the Ethernet cable from the TWR-SER2 module seems to make no difference, the function always returns a 'TRUE'.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Code Snippet:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;#define&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;BSP_DEFAULT_ENET_DEVICE&amp;nbsp; &amp;nbsp;0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt; error = RTCS_create();&lt;BR /&gt; if(error == RTCS_OK)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Initialise Ethernet */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;error = ipcfg_init_device(BSP_DEFAULT_ENET_DEVICE, mac_address);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (error != IPCFG_OK)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("Fatal Error 0x%X: Network device initialisation failed.\n", error);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_task_block();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; while(retVal == FALSE)&lt;BR /&gt; {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;retVal = ipcfg_get_link_active(BSP_DEFAULT_ENET_DEVICE);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if(retVal == TRUE)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("\nCable Connected..!!");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("\nCable not connected..!!");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;_time_delay(100);&lt;BR /&gt; }&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;-- It comes out of while loop at once.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Also, i tried to read the data value in&amp;nbsp;&lt;SPAN style="color: #3d3d3d;"&gt;phy_dp83xxx_get_link_status() function; it always returns 0x7FFF, no matter whether the cable is connected or not connected.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;static bool phy_dp83xxx_get_link_status&lt;BR /&gt; (&lt;BR /&gt; ENET_CONTEXT_STRUCT_PTR enet_ptr&lt;BR /&gt; )&lt;BR /&gt;{ &lt;BR /&gt; uint32_t data;&lt;BR /&gt; bool res = FALSE;&lt;/P&gt;&lt;P&gt;/* Some PHY (e.g.DP8340) returns "unconnected" and than "connected" state&lt;BR /&gt; * just to show that was transition event from one state to another.&lt;BR /&gt; * As we need only curent state, read 2 times and return &lt;BR /&gt; * the current/latest state. */&lt;BR /&gt; if ((*enet_ptr-&amp;gt;PARAM_PTR-&amp;gt;ENET_IF-&amp;gt;MAC_IF-&amp;gt;PHY_READ)(enet_ptr, DP83XXX_REG_BMSR, &amp;amp;data, MII_TIMEOUT)) {&lt;BR /&gt; if ((*enet_ptr-&amp;gt;PARAM_PTR-&amp;gt;ENET_IF-&amp;gt;MAC_IF-&amp;gt;PHY_READ)(enet_ptr, DP83XXX_REG_BMSR, &amp;amp;data, MII_TIMEOUT))&lt;BR /&gt; {&lt;BR /&gt; printf("\nData: %lx", data);&lt;BR /&gt; res = ((data &amp;amp; DP83XXX_REG_BMSR_LINK_STATUS) != 0) ? TRUE : FALSE;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; return res;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Oct 2017 20:23:58 GMT</pubDate>
    <dc:creator>priyagupta</dc:creator>
    <dc:date>2017-10-05T20:23:58Z</dc:date>
    <item>
      <title>Ethernet Cable Status - TWR-SER2 board</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699965#M43033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I'm trying to detect the status of the network cable (plugged, un-plugged) on a TWR-SER2 board connected with TWR-K60F120M using&amp;nbsp;&lt;SPAN&gt;MQX 4.2.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;I am using the&amp;nbsp;RTCS function - "ipcfg_get_link_active()" but it seems to always return a&amp;nbsp;'TRUE' once the Ethernet system is configured. Prior to configuring the Ethernet it reports a 'FALSE'. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Once the Ethernet system is configured and operational, plugging or un-plugging the Ethernet cable from the TWR-SER2 module seems to make no difference, the function always returns a 'TRUE'.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Code Snippet:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;#define&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;BSP_DEFAULT_ENET_DEVICE&amp;nbsp; &amp;nbsp;0&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt; error = RTCS_create();&lt;BR /&gt; if(error == RTCS_OK)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* Initialise Ethernet */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;error = ipcfg_init_device(BSP_DEFAULT_ENET_DEVICE, mac_address);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (error != IPCFG_OK)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("Fatal Error 0x%X: Network device initialisation failed.\n", error);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_task_block();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; while(retVal == FALSE)&lt;BR /&gt; {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;retVal = ipcfg_get_link_active(BSP_DEFAULT_ENET_DEVICE);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if(retVal == TRUE)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("\nCable Connected..!!");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("\nCable not connected..!!");&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;_time_delay(100);&lt;BR /&gt; }&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;-- It comes out of while loop at once.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Also, i tried to read the data value in&amp;nbsp;&lt;SPAN style="color: #3d3d3d;"&gt;phy_dp83xxx_get_link_status() function; it always returns 0x7FFF, no matter whether the cable is connected or not connected.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;static bool phy_dp83xxx_get_link_status&lt;BR /&gt; (&lt;BR /&gt; ENET_CONTEXT_STRUCT_PTR enet_ptr&lt;BR /&gt; )&lt;BR /&gt;{ &lt;BR /&gt; uint32_t data;&lt;BR /&gt; bool res = FALSE;&lt;/P&gt;&lt;P&gt;/* Some PHY (e.g.DP8340) returns "unconnected" and than "connected" state&lt;BR /&gt; * just to show that was transition event from one state to another.&lt;BR /&gt; * As we need only curent state, read 2 times and return &lt;BR /&gt; * the current/latest state. */&lt;BR /&gt; if ((*enet_ptr-&amp;gt;PARAM_PTR-&amp;gt;ENET_IF-&amp;gt;MAC_IF-&amp;gt;PHY_READ)(enet_ptr, DP83XXX_REG_BMSR, &amp;amp;data, MII_TIMEOUT)) {&lt;BR /&gt; if ((*enet_ptr-&amp;gt;PARAM_PTR-&amp;gt;ENET_IF-&amp;gt;MAC_IF-&amp;gt;PHY_READ)(enet_ptr, DP83XXX_REG_BMSR, &amp;amp;data, MII_TIMEOUT))&lt;BR /&gt; {&lt;BR /&gt; printf("\nData: %lx", data);&lt;BR /&gt; res = ((data &amp;amp; DP83XXX_REG_BMSR_LINK_STATUS) != 0) ? TRUE : FALSE;&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; return res;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Oct 2017 20:23:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699965#M43033</guid>
      <dc:creator>priyagupta</dc:creator>
      <dc:date>2017-10-05T20:23:58Z</dc:date>
    </item>
    <item>
      <title>Re: Ethernet Cable Status - TWR-SER2 board</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699966#M43034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can anyone please provide inputs for resolving the above stated issue?&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Oct 2017 18:56:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699966#M43034</guid>
      <dc:creator>priyagupta</dc:creator>
      <dc:date>2017-10-06T18:56:52Z</dc:date>
    </item>
    <item>
      <title>Re: Ethernet Cable Status - TWR-SER2 board</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699967#M43035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It sounds as though the PHY may not be responding. Try reading its ID registers (and match with the expected values) to ensure that reads are basically operating.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Oct 2017 21:42:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Ethernet-Cable-Status-TWR-SER2-board/m-p/699967#M43035</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-10-06T21:42:57Z</dc:date>
    </item>
  </channel>
</rss>

