W5200 Power Down Mode Application Note
===================================================================================
W5200 和W7200 都有提供两有特色的功能, 休眠模式和LAN唤醒功能. W5200通过控制物理层PHY启动休眠模式节省电能消耗。W5200收到原始以太网数据包形式的magic packet时将被唤醒。
一般来说, 休眠模式是一个可以控制PHY 开关的功能来控制使用的电量. LAN唤醒功能是控制转换处于休眠模式或正常模式下的MCU. 当 W5200 接收到LAN唤醒数据包, 唤醒功能就会通过W5200打断MCU的程序,进行以太网数据传输。
===================================================================================
1. 连接图
2. W5200E01-M3_PWDN的示例代码
if (strcmp(choice,”7″)== 0)
{
bTreat = (bool)SET;
if((IINCHIP_READ(PHY)&0x08) == 0x00){
SerialPutString(“\r\nEnabling…\r\n”);
GPIO_SetBits(GPIOB, WIZ_PWDN);
Delay_ms(500);
if((IINCHIP_READ(PHY)&0x08) == 0x08)
SerialPutString(“\r\nEnabled PHY Power Down!!!\r\n”);
} else{
SerialPutString(“\r\nAlready Enabled!!!\r\n”);
}
}
当你已经选择7号这个功能, 如果代表PHY 的寄存器是没有启动休眠模式(0x00), GPIO会启动为休眠模式. 如果已经启动,串口就会指示出休眠模式已经启动.
if (strcmp(choice,”8″)== 0)
{
bTreat = (bool)SET;
if((IINCHIP_READ(PHY)&0x08) == 0x08){
SerialPutString(“\r\nDisabling…\r\n”);
GPIO_ResetBits(GPIOB, WIZ_PWDN);
Delay_ms(3000);
if((IINCHIP_READ(PHY)&0x08) == 0x00)
SerialPutString(“\r\nDisabled PHY Power Down!!!\r\n”);
} else{
SerialPutString(“\r\nAlready Disabled!!!\r\n”);
}
}
当你已经选择8号这个功能, 如果代表PHY 的寄存器是启动休眠模式(0x00), GPIO会关闭休眠模式. 如果已经关闭,串口就会指示出休眠模式已经关闭.
3. 配置
IAR Embedded Workbench
Type.h
如果你使用的是W5200E01-M3, W7200的定义就要关闭.
#define __DEF_W5200__
//#define __DEF_W7200__
如果你使用的是iMCU7200EVB, W5200的定义就要关闭.
//#define __DEF_W5200__
#define __DEF_W7200__
Flash Loader Demonstrator
启动”Flash Loader Demo software”编程程序到 iMCU7200EVB或 W5200E01-M3. 如下是编程步骤:
PC1 是需要使用静态IP
在串口终端程序
在 W5200E01-M3_PWDN 的程序中, PHY的休眠模式已经默认为关闭.
PHY 的休眠的意思是代表控制PHY. 休眠模式是代表不可以传送和接收任何数据包.
4. 设置网络设置
5. 启用PHY休眠
6. 禁用PHY休眠
7. Ping测试
PC 1 ping 到 iMCU7200EVB(192.168.11.254). 如果 PC1 使用串口终端程序去改变 W7200 到功能8. 关闭PHY 的休眠模式之后再开到 启用PHY休眠模式, PC 1 就不可以ping 到 iMCU7200EVB 和 会打印出信息 “Request timed out”.
如果 PC1 使用串口终端程序改W5200到功能7来启用PHY休眠模式之后改到关闭PHY 的休眠模式, PC 1 就可以Ping iMCU7200EVB .
Written By: Ron, HK member
W5200 Power Down Mode Application Note