QCC30xx 开发板如何测试待机电流

高通的通用蓝牙开发板底CF376上,有各种各样的外围电路与芯片,组成一整套完整的开发板平台,但客户通常只关心其中蓝牙芯片的各个状态下的工作电流,本文就介绍如何在CF376底板上,通过断开其它非必要电路 ,去测量单一蓝牙芯片的工作电流, 希望对客户有所帮助。


1,  QCC30xx开发板可以测试在各种状态下的消耗电流值,比如开机,关机,听歌,打电话,待机等等。

 
2,   如测试  待机电流,请确保开发板的跳冒按下图配置,去除J22,  J17,  J18,目的是去除显示屏和音频功放芯片的消耗电流。
         然后拨出J2,目的是把电池的电先通过电流表给CF376,把电流表的黑笔接到J20上去测试VBAT的电流值。红笔接到电池的正极,
         电池的负极接到开发板的GND PIN上,比如GROUND BAR上。


 



 

3,   配置好开发板后,开始用MDE编译默认工程。




 



 

4,   烧录成功后,用两个开发板配对后,再连接手机,然后播放歌曲后暂停,保持开发板与手机的蓝牙连接。
 

5,   等待二三分多钟后,进入待机状态, 电流表的数值会下降到600uA左右。

         如果工程中关闭NTC功能,电流表的数值会下降到500uA左右。
 

 

以上只是针对QCC30xx开发板电流的一些注意事项和测量方法,要想了解更仔细可以参考:80_CG676_1_AB_Power_Consumption_on_QCC51xx_and_QCC.pdf 文档,

/****************************************************************************
Copyright (c) 2014 - 2016 Qualcomm Technologies International, Ltd.
 
FILE NAME
    sink_ba_ble_gap.c
 
DESCRIPTION
    BLE GAP functionality
*/
 
#include "sink_ba_ble_gap.h"
#include "sink_ble.h"
#include "sink_main_task.h"
#include "sink_ba_common.h"
#include "sink_gatt_db.h"
#include "sink_gatt_manager.h"
#include "sink_ba.h"
#include "sink_ble_scanning.h"
#include "sink_ba_broadcaster.h"
#include "sink_ba_receiver.h"
#include "sink_gatt_common.h"
 
#include <gatt_manager.h>
#include <vm.h>
 
#include <stdlib.h>
 
#ifdef ENABLE_BROADCAST_AUDIO
#include "config_definition.h"
#include "sink_ble_config_def.h"
#include <config_store.h>
#include <gatt_broadcast_server_uuids.h>
#include <broadcast_context.h>
 
#ifdef DEBUG_BA_BLE_GAP
#define BA_BLE_GAP_INFO(x) DEBUG(x)
#define BA_BLE_GAP_ERROR(x) DEBUG(x) TOLERATED_ERROR(x)
#else
#define BA_BLE_GAP_INFO(x)
#define BA_BLE_GAP_ERROR(x)
#endif /* DEBUG_BLE_GAP */
 
/* Length of 16 bit uuid services */
#define BA_RECEIVER_SERVICES_DATA_LENGTH (0x05)
#define BA_BROADCASTER_SERVICES_DATA_LENGTH (0x05)
 
/* Size of 16 bit variant IV */
#define SIZE_16_BIT_IV (sizeof(uint8)*2)
 
/******************************************************************************
  Utility function to set the scan filters for broadcaster to scan only for BA receivers 
*/
static void bleBaSetScanFilters(void)
{
 
    ble_ad_type ad_type = ble_ad_type_service_16bit_uuid;
    uint16 scan_interval = ADV_SCAN_INTERVAL_SLOW;
    uint16 scan_window = ADV_SCAN_WINDOW_SLOW;
    const uint8 broadcast_advert_filter[] = {UUID_BROADCAST_SERVICE & 0xFF,
                                             UUID_BROADCAST_SERVICE >> 8};
    const uint8 broadcast_2_advert_filter[] = {UUID_BROADCAST_SERVICE_2 & 0xFF,
                                     UUID_BROADCAST_SERVICE_2 >> 8};
    bool random_addr = FALSE;
#ifdef ENABLE_RANDOM_ADDR
    random_addr = TRUE;
#endif
 
    /* first clear the existing filter */
    ConnectionBleClearAdvertisingReportFilter();
 
    /* Just update the correct filter for recevier */
    if(BA_RECEIVER_MODE_ACTIVE)
    {
 
        ad_type = ble_ad_type_service_data;
        scan_interval = ADV_SCAN_INTERVAL_FAST;
        scan_window = ADV_SCAN_WINDOW_FAST;
        /* As receiver, we can also get adverts from different broadcast UUIDs */
        ConnectionBleAddAdvertisingReportFilter(ad_type, 
                                        sizeof(broadcast_2_advert_filter), 
                                        sizeof(broadcast_2_advert_filter), 
                                        broadcast_2_advert_filter);
    }
 
     /* setup advert filter, scan parameters and start scanning.
     * now waiting on a CL_DM_BLE_ADVERTISING_REPORT_IND message. */
    ConnectionBleAddAdvertisingReportFilter(ad_type, 
                                            sizeof(broadcast_advert_filter), 
                                            sizeof(broadcast_advert_filter), 
                                            broadcast_advert_filter);
 
    /* Set the Scan parameters */
    ConnectionDmBleSetScanParametersReq(TRUE, random_addr, FALSE,
                                        scan_interval,
                                        scan_window);
}
 
/********
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值