[En-Nut-Discussion] Detecting link state
Philipp Burch
phip at hb9etc.ch
Tue Jul 24 07:47:33 CEST 2018
Hi Ole,
thanks, that should well serve my needs. I had hoped that such
functionality would already be included in the Ethernut tree, but it
doesn't matter that much right now.
Bye,
Philipp
On 22.07.2018 15:53, Ole Reinhardt wrote:
> Hi Philipp,
>
> here is my link detection code, this should run at least with any common
> PHY that uses the NutOS PHY driver.
>
> #include <dev/phy.h>
>
> /*!
> * \brief test if the physical network link is present
> *
> * \param retry number of retry cycles. Should be one for only a
> short test
> * \param retry_wait time to wait between retries. in ms
> *
> * \return 0: link established, -1: no network link
> */
> int CheckPhysicalNetworkLink(int retry, int retry_wait)
> {
> uint32_t phyval = 0;
>
> int link_ok = 0;
>
> while (!link_ok && (retry > 0)) {
> if (NutPhyCtl(PHY_GET_STATUS, &phyval) != 0) {
> link_ok = 0;
> } else {
> if (! ((phyval & PHY_STATUS_HAS_LINK) && (phyval &
> PHY_STATUS_AUTONEG_OK))) {
> link_ok = 0;
> } else {
> link_ok = 1;
> }
> }
> if (retry > 0) {
> retry --;
> if ((retry > 0) && (retry_wait > 0)) NutSleep(retry_wait);
> }
> }
>
> return link_ok ? 0 : -1;
> }
>
>
> Best regards,
>
> Ole
>
>
> Am 21.07.2018 um 20:08 schrieb Philipp Burch:
>> Hi Ole,
>>
>> it's for the TIVA microcontrollers, which have an integrated PHY. But as
>> far as I remember, it is used the same way as an external standard PHY.
>>
>> Thanks!
>>
>> Best regards,
>> Philipp
>>
>> On 21.07.2018 13:41, Ole Reinhardt wrote:
>>> Hi Philipp,
>>>
>>> which platform are you using? I implemented a link state detection in
>>> several projects running on the LPC plattform.
>>>
>>> But as the code mainly uses PHY communication it should run with any
>>> plattform with external PHY.
>>>
>>> Later today I'll have access to the code and can send you an example.
>>>
>>> Best regards,
>>>
>>> Ole Reinhardt
>>>
>>> Am 10.07.2018 um 10:43 schrieb Philipp Burch:
>>>> Hi everyone,
>>>>
>>>> is there a good way to detect if an Ethernet link has been established
>>>> when using Ethernut? I see that this has been discussed in the past, but
>>>> could not find any outcome:
>>>>
>>>> http://microcontrollers.2385.n7.nabble.com/detecting-an-unplugged-network-cable-td160042.html
>>>>
>>>> Thanks.
>>>>
>>>> Best regards,
>>>> Philipp
>>>> _______________________________________________
>>>> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>>>>
>>>
>> _______________________________________________
>> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>>
>
More information about the En-Nut-Discussion
mailing list