原创 Marvell8686 电源管理原理 (三.关于睡眠)

2012-4-4 12:12 2292 22 22 分类: 消费电子

 

作者:下家山(转载,请注明作者,请尊重原创)

三.关于睡眠

       在marvell文档里面把睡眠与省电放在一起讲的(其实睡眠就是一种省电),我这里特意把他们挑出来,有便于更清晰的去理解。

       在marvell8686(marvell其他芯片)中,我把其睡眠分成如下类:5.jpg

 

1  Host睡眠

       这里的host有点不好理解,也可以理解成卡片里面的那个CPU(ARM9核),本人认为是说我们的驱动,host driver,host睡眠就是驱动可以不管marvell8686,去做其他的事情。

① 对应的命令

CMD_802_11_HOST_SLEEP_CFG(0x43)

在marvell 驱动中属于私有命令,例:

              iwpriv ethX hscfg Condition [GPIO# [Gap]]

              (也有这种形式      iwpriv ethX hostsleepcfg Condition [GPIO# [Gap]])

              命令解析

              ●Condition必选,[]里的参数可选;

              ●如果只有Condition

                                          bit 0 = 1        -- broadcast data

                                          bit 1 = 1        -- unicast data

                                          bit 2 = 1        -- mac event

                                          bit 3 = 1        -- multicast packet

                     iwpriv eth1 hscfg 1   # broadcast data

                     iwpriv eth1 hscfg 2   # unicast data

                     iwpriv eth1 hscfg 3   # broadcast and unicast data

              ●如果带GPIO#

                     iwpriv eth1 hscfg 2 0x3               # unicast data

                                                                      # use GPIO 3

注意:GPIO# 参数也可以为0xff,此时表示使用界面(如:SDIO谁能告诉我是什么意思)

iwpriv eth1 hscfg 2 0xff        # unicast data

                                          # use Interface (e.g. SDIO)

              ●如果带Gap(睡眠间隙)

                     iwpriv eth1 hscfg 2 1 0xa0           # unicast data

                                                                      # use GPIO 1

                                                                      # gap: 160 ms

注意:Gap 参数也可以为0xff,此时表示特定的host sleep mode,谁能告诉我是什么意思)

                       iwpriv eth1 hscfg 0x2 0x3 0xff        # unicast data

                                                                             # use GPIO 3

                                                                             # special host sleep mode

      

              iwpriv eth1 hscfg 0x2 0xff 0xff           # unicast data

                                                                      # use Interface (e.g. SDIO)

                                                                      # special host sleep mode

iwpriv eth1 hscfg -1                    # cancel host sleep mode(删除host sleep配置,或者说disable host sleep)

              (也有这种形式iwpriv eth1 hscfg 0xffffff)

       本命令主义点:

  • 此命令仅在STA连上AP才有效。
  • Gap是指唤醒信号到来到唤醒事件触发的时间,如果配置成GPIO唤醒方式,则表示该引脚置低的时间。iwpriv eth1 hscfg 2 5 0xa0

6.jpg

 GPIO[5]置低160ms

  • 当host醒来时记得删除host sleep 配置参数。
  • 如果此命令被执行,firmware讲不会接受任何其他命令。

②.如何醒来

假设我们执行iwpriv eth1 hscfg 2 5 0xa0

当firmware从其他PC处接收到一个ping包,则GPIO[5]将会有一个160ms的低跳变。Host将会根据这个跳变得到唤醒。

问题:如果只有一个参数是如何唤醒iwpriv eth1 hscfg 2              **?

③.如何激活

          此命令仅仅是配置,他还需要激活。那么如何激活呢?

       Firmware在任何时候接收到CMD_802_11WAKEUP_CONFIRM或CMD_802_11_DEEP_SLEEP时将激活hostsleep 配置命令。

2.Firmware睡眠

①.Firmware连上AP状态下睡眠

            参见上面。

②.Firmware没有连上AP状态下的睡眠

       参见上面。

结束

 

转载:请注明,作者,下家山   请尊重原创!

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
22
关闭 站长推荐上一条 /2 下一条