微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541+I2C元件 ,怎么才能进入省电模式呢?

CC2541+I2C元件 ,怎么才能进入省电模式呢?

时间:10-02 整理:3721RD 点击:

CC2541+MPU6050 ,怎么才能进入省电模式呢??

我的做法是 #define POWER_SAVING,  调用省电函数,但无效(电流仍很大),

然后尝试屏蔽了HAL_UART, 但是这样MPU工作了3秒就停止了.

该怎么做呢? (MPU6050 使用I2C方式连接)

1、HAL_UART 如果打开的话,程序会一直在扫描串口,系统是进不了PM2模式的,所以比较耗电,如果打开串口,又想进入PM3模式,需要自己动手在底层写点代码

2、如果用的是自己带的I2C,在数据手册I2C单节,写的很明确,I2C在PM2及PM3模式下是不工作的,承接第一条,如果你关闭了串口,系统会进入PM3,而进入的PM3模式,I2C就不工作了

3、关于如何合理 的用I2C的问题,论坛以前有讨论,也有大神写过变通的函数,你可以搜索一下

4、希望可以帮到你,祝你好运!

你好,

建议你使用CC2640,CC2640自带的sensor control engine可以在你主核在sleep模式下继续工作,这样就保障了低功耗模式下IIC从设备继续运行。

@mark_xu ,你好, 感谢你的回复, 已申请加群. 但问题仍未解决;

目前打开定义 POWER_SAVING   ++ HAL_I2C=TRUE   ++ HAL_I2C_MASTER

 1. 其实我的程序中没有使用到UART功能, 只使用到I2C元件(MPU6050) .所以屏蔽了HAL_UART, 但是MPU6050工作了几秒后整个程序就死机了.应该是卡在I2C那里.

2. 如果我打开了UART宏定义, I2C_MPU6050就工作正常,按键进入Sleep_Mode万能表显示电流居高不下(10MA). 我屏蔽 HalUARTPoll(); 的话,mpu6050工作不正常.也是运行几秒就死机

 请问要在哪里 修改uart, 使得 既可以使用I2C 又可以进入Sleep Mode. (睡眠模式下,I2C怎么暂停???)

3.搜索了论坛,没有找到 合理使用I2C......能提供链接吗?

@mark_xu ,你好,感谢你的答复, 但是问题还未解决 (Q群已申请);

1. 其实程序中我没有用到UART通讯, 所以我才屏蔽HAL_UART=TRUE, 但是这样mpu6050初始化几秒后,整个程序就卡死不运作了. 

2.定义了HAL_UART,MPU6050可以正常运作, 但是进入不了低功耗PM2, 还有10ma.

3. 定义HAL_UART  后 ,修改底层代码屏蔽了 HalUARTPoll(); 电流还是差不多10ma...

@kqian0327, 你好;

电路中有I2C元件(MPU6050),我现在的问题是 进入不了Sleep Mode,  如果有办法进入Sleep Mode, I2C暂停运行也没关系的

求助!!  无人回复... 

 当屏蔽了 POWER_SAVING ,  I2C就工作正常.......

 难道没有办法使用CC2541做 MPU6050 省电的商业应用吗???

还是又自己来解决吧,

 确认了一点,  去掉HAL_UART 也是可以实现I2C运作的,并进入省电模式;

 1. #define POWER_SAVING. 

 2. 在操作MPU6050_DMP 数据读取前要调用一下 HalI2CEnable( );  //省电模式下不知道为啥 I2C被被 禁能

 3. 操作完MPU6050_DMP操作后  HalI2CDisable( );   //不然电流仍在10ma

 4. MPU6050 的INT引脚要悬空不接.

 5. 目前电流还有0.6ma , 虽然不理想 但比当初12ma好很多了.....仍在优化中

PS:  MPU6050操作函数有:   dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors,&more); 获取位置,加速度等数据

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top