Example of code that returns information about the status of the Ethernet connection.
Dependencies: EthernetInterface mbed-rtos mbed
eth_status.h@1:67817eb9bb9e, 2014-01-16 (annotated)
- Committer:
- edodm85
- Date:
- Thu Jan 16 13:28:17 2014 +0000
- Revision:
- 1:67817eb9bb9e
- Parent:
- 0:9e8b3fd68f6c
Added the static keyword to the function mii_read_data()
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
edodm85 | 0:9e8b3fd68f6c | 1 | #include "lpc_phy.h" |
edodm85 | 0:9e8b3fd68f6c | 2 | |
edodm85 | 0:9e8b3fd68f6c | 3 | /** \brief DP83848 PHY status definitions */ |
edodm85 | 0:9e8b3fd68f6c | 4 | #define DP8_REMOTEFAULT (1 << 6) /**< Remote fault */ |
edodm85 | 0:9e8b3fd68f6c | 5 | #define DP8_FULLDUPLEX (1 << 2) /**< 1=full duplex */ |
edodm85 | 0:9e8b3fd68f6c | 6 | #define DP8_SPEED10MBPS (1 << 1) /**< 1=10MBps speed */ |
edodm85 | 0:9e8b3fd68f6c | 7 | #define DP8_VALID_LINK (1 << 0) /**< 1=Link active */ |
edodm85 | 0:9e8b3fd68f6c | 8 | |
edodm85 | 0:9e8b3fd68f6c | 9 | |
edodm85 | 0:9e8b3fd68f6c | 10 | // This function returns the current status of connection. |
edodm85 | 0:9e8b3fd68f6c | 11 | static bool get_link_status() |
edodm85 | 0:9e8b3fd68f6c | 12 | { |
edodm85 | 0:9e8b3fd68f6c | 13 | u32_t tmp = lpc_mii_read_data(); |
edodm85 | 0:9e8b3fd68f6c | 14 | return (tmp & DP8_VALID_LINK) ? true : false; |
edodm85 | 0:9e8b3fd68f6c | 15 | } |
edodm85 | 0:9e8b3fd68f6c | 16 | |
edodm85 | 0:9e8b3fd68f6c | 17 | // This function returns the status of transmission. |
edodm85 | 0:9e8b3fd68f6c | 18 | static char* get_transmission_status() |
edodm85 | 0:9e8b3fd68f6c | 19 | { |
edodm85 | 0:9e8b3fd68f6c | 20 | u32_t tmp = lpc_mii_read_data(); |
edodm85 | 0:9e8b3fd68f6c | 21 | if(tmp & DP8_FULLDUPLEX) |
edodm85 | 0:9e8b3fd68f6c | 22 | { |
edodm85 | 0:9e8b3fd68f6c | 23 | return "FULL DUPLEX"; |
edodm85 | 0:9e8b3fd68f6c | 24 | }else |
edodm85 | 0:9e8b3fd68f6c | 25 | { |
edodm85 | 0:9e8b3fd68f6c | 26 | return "HALF DUPLEX"; |
edodm85 | 0:9e8b3fd68f6c | 27 | } |
edodm85 | 0:9e8b3fd68f6c | 28 | } |
edodm85 | 0:9e8b3fd68f6c | 29 | |
edodm85 | 0:9e8b3fd68f6c | 30 | // This function returns the speed of the connection. |
edodm85 | 0:9e8b3fd68f6c | 31 | static int get_connection_speed() |
edodm85 | 0:9e8b3fd68f6c | 32 | { |
edodm85 | 0:9e8b3fd68f6c | 33 | u32_t tmp = lpc_mii_read_data(); |
edodm85 | 0:9e8b3fd68f6c | 34 | return (tmp & DP8_SPEED10MBPS) ? 10 : 100; |
edodm85 | 0:9e8b3fd68f6c | 35 | } |
edodm85 | 0:9e8b3fd68f6c | 36 | |
edodm85 | 0:9e8b3fd68f6c | 37 | // This function returns the current value in the MII data register. |
edodm85 | 1:67817eb9bb9e | 38 | static u32_t mii_read_data() |
edodm85 | 0:9e8b3fd68f6c | 39 | { |
edodm85 | 0:9e8b3fd68f6c | 40 | return lpc_mii_read_data(); // 16-bit MRDD - address 0x2008 4030 |
edodm85 | 0:9e8b3fd68f6c | 41 | } |