===================================================================================
W5200 和W7200 都有提供两种很吸引性的功能, 就好像有掉电模式和LAN叫醒功能. 但是这两种功能不可以同一个时间一齐使用. 如果已经启动掉电模式, 芯片中的PHY 会关闭和停止它的功能. 所以如果在掉电模式的情况下, 它是不可以使用LAN叫醒功能,因为这个功能是通过LAN来接收魔术数据包来叫醒的.
一般来说, 掉电模式是一个可以控制PHY 开关的功能来控制使用的电量. LAN叫醒功能是控制MCU 来转换MCU的模式是睡觉模式或正常模式. 当 W5200 接收到魔术数据包, LAN叫醒功能 就会通过W5200打断MCU的程序给MCU进入睡觉模式.
===================================================================================
1. 连接图
2. W5200E01-M3_PWDN的示例代码
if (strcmp(choice,”7″)== 0)
{
bTreat = (bool)SET;
if((IINCHIP_READ(PHY)&0×08) == 0×00){
SerialPutString(“rnEnabling…rn”);
GPIO_SetBits(GPIOB, WIZ_PWDN);
Delay_ms(500);
if((IINCHIP_READ(PHY)&0×08) == 0×08)
SerialPutString(“rnEnabled PHY Power Down!!!rn”);
} else{
SerialPutString(“rnAlready Enabled!!!rn”);
}
}
当你已经选择7号这个功能, 如果代表PHY 的寄存器是没有启动掉电模式(0×00), GPIO会启动为掉电模式. 如果已经启动,串口就会打印出掉电模式已经启动.
if (strcmp(choice,”8″)== 0)
{
bTreat = (bool)SET;
if((IINCHIP_READ(PHY)&0×08) == 0×08){
SerialPutString(“rnDisabling…rn”);
GPIO_ResetBits(GPIOB, WIZ_PWDN);
Delay_ms(3000);
if((IINCHIP_READ(PHY)&0×08) == 0×00)
SerialPutString(“rnDisabled PHY Power Down!!!rn”);
} else{
SerialPutString(“rnAlready Disabled!!!rn”);
}
}
当你已经选择8号这个功能, 如果代表PHY 的寄存器是启动掉电模式(0×00), 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 .