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
    评论
qcc51xx代码流程是指Qualcomm公司推出的一款芯片的软件编程流程,主要用于嵌入式系统的开发。以下是对qcc51xx代码流程的300字回答: qcc51xx芯片的代码流程主要包括硬件初始化、操作系统启动、应用程序加载和执行等几个关键步骤。 首先是硬件初始化,该步骤主要包括对qcc51xx芯片内部外设的初始化,例如GPIO、UART、SPI等外设的配置和初始化,以及时钟和电源管理等设置。这些初始化操作主要是为了保证后续的软件运行能够正常和稳定地使用硬件资源。 接下来是操作系统启动,qcc51xx芯片支持多种操作系统,如Linux、Android等。在操作系统启动过程中,会进行内存的分配和初始化、中断和定时器的初始化、设备驱动程序的注册等操作。这样才能够正常启动操作系统,并为后续的应用程序执行提供必要的基础设施。 然后是应用程序加载和执行,qcc51xx芯片上的应用程序主要由用户程序和驱动程序组成。用户程序是运行在操作系统上的具体功能实现,而驱动程序则是为硬件设备提供控制和数据传输等功能。操作系统会根据用户程序的调度和请求,加载相应的应用程序,并执行相应的操作。应用程序的执行过程中,还需要处理系统调用、中断处理、任务切换等操作。 总的来说,qcc51xx代码流程主要包括硬件初始化、操作系统启动和应用程序加载和执行几个关键步骤。通过这些步骤,qcc51xx芯片的软件能够正常地运行和提供所需的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值