This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

睡眠模式及其他咨询

Other Parts Discussed in Thread: CC2540, CC2530

睡眠有三种模式:

PM2:在连接后无应用数据通信就进入PM2?进入PM2后,再想通信的话,要等睡眠定时器满或中断唤醒之后么??唤醒之后再通信是不是就省了连接这一步了???

PM3:无连接无应用数据通信无其他CPU操作进入PM3??

PM1:什么时候进入?

BLE中,PM2,PM3是自动进入的??在哪设置???

顺便问一下:GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);这个获取的是芯片的ID??GAPROLE_BD_ADDR=0x304,但我看数据手册上CHIPID 的地址是0x624A呀??

  • yueliangz0123,

    PM2 是在有定时器任务的时候进入的低功耗模式,包括有连接的情况下和无连接的情况下。这个时候用的是32.768KHz的外部晶振来维持运作。关于唤醒,可以是定时器到时,或者是RF的中断,或者是IO中断等等,任何事件。

    PM3 则是关闭了32.768K 和 32M 晶振,不运行任何应用,只有IO口能唤醒系统,这里就没有定时器了。

    PM1 则是系统需要快速频繁在唤醒和睡眠间切换的时候用的一种模式,这种模式在三种模式中功耗最高,但唤醒速度最快。

    PM2 和PM3 是自动进入的,你可以搜索一下这个函数:osal_pwrmgr_powerconserve(),这里面你能看到根据不同状况去进入不同睡眠模式,晶振间的切换和timer的计时等等。

    关于芯片ID:

    第一, 芯片ID 和 蓝牙芯片的BD ADDR是完全不一样的概念。。。你看一下数据手册里面的芯片ID的定义就知道了,蓝牙地址是IEEE分配的唯一识别地址。

    第二, GAPROLE_BD_ADDR=0x304, 只是个宏定义,编程应用用,跟flash地址之类的无关。。。

  • PM2模式下的任何事件都能唤醒,比如I/O端口变化(非中断),串口数据收发(非中断)都可以是吧?RF中断也能唤醒,那么在PM2模式下,主机可以随意发送数据唤醒从机是吧??BLE通信是在RF中断模式下收发的???给的例程都使能了这个中断?

    PM3只有I/O中断唤醒~~~

    我是对着CC2530的中文手册看CC2540的,感觉手册说的不清楚,也可能是我看漏了。。。

  • 蓝牙的ID能改么?

  • yueliangz0123,

    你是说蓝牙的6字节的BD ADDR?

    254x 可以改,但是合法的方式是你必须向IEEE申请属于你的地址段。

    通过flash programmer 可以修改。

  • PM2模式下的任何事件都能唤醒,比如I/O端口变化(非中断),串口数据收发(非中断)都可以是吧?RF中断也能唤醒,那么在PM2模式下,主机可以随意发送数据唤醒从机是吧??BLE通信是在RF中断模式下收发的???给的例程都使能了这个中断?

    PM3只有I/O中断唤醒~~~

    我是对着CC2530的中文手册看CC2540的,感觉手册说的不清楚,也可能是我看漏了。。。

  • yueliangz0123,

    是的PM2 模式下有很多方式可以唤醒主晶振。

    在连接的情况下,PM2 就是在connection event之间的状态。主机看似随意发送的数据,最后都是在最近的一个connection event中传递给从机的。

    BLE通信是在connection event中进行的。期间对于设备来讲,接收数据确实是有RF中断存在。RF的数据中断是有最高优先级的中断,且必须使能,不然BLE无法工作。

    PM3 确实只有IO 中断能唤醒。