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.

[参考译文] CC2540:使用 CC2540时的一些问题。

Guru**** 648580 points
Other Parts Discussed in Thread: CC2540, CC2640R2F
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1210092/cc2540-some-issues-when-using-cc2540

器件型号:CC2540
主题中讨论的其他器件: CC2640R2F

大家好、

以下是客户的请求:

  1. 当在 CC2540 SDK 的 SimpleBLEPeripheral 中使用 BLE 和计时器时、BLE 会影响计时器的中断吗?
  2. CC2540使用 Timer3或 Timer4、定时50-500微秒中断、示波器捕获的波形测试、时间不稳定、有什么问题?   当他在没有 BLE 的情况下进行测试时、计时器的时间是稳定的、但进行 BLE 测试的计时器的时间是不稳定的。 测试时间为200微秒、测试时间为200-760微秒。 客户正在 使用降压模式、其他模式的输出异常。
    #pragma vector = T3_VECTOR
    __interrupt void t3_isr(void)
    {
        // Clears the module interrupt flag.
        T3OVFIF = 0;
        switch(outch)
        {
            case 0:
                DIO16(1);
                outch = 1;
                T3CTL |= 0x10;  //开启
            break;
            case 1:
                outch = 2;
                T3CTL |= 0x10;  //开启
            break;
            case 2:
                DIO16(0);
                DIO17(1);
                outch = 3;
                T3CTL |= 0x10;  //开启
            break;
            case 3:
    			outch = 4;
                T3CTL |= 0x10;  //开启
            break;
            case 4:
                DIO17(0);
                T3CTL &= ~0x10;  //关闭
            break;
        }
        
        // Clears the CPU interrupt flag.
        T3IF = 0;
    }
    
    
    void timus_init(void)
    {
        CLKCONCMD = (CLKCONCMD & ~(0x07 << 3)); //Timer Hz = 32MHZ
        
        T3CTL = 0x08;
        T3IE = 1;  
        T3CTL |= 0xA0;  //32分频
        T3CTL |= 0x01;
        T3CC0 = us / 2;
        EA = 1;
    }
    
    void timerus_setstatus(uint8 flag)
    {
        if(flag)
        {
            outch = 0;
            T3CTL |= 1 << 4;
        }
        else
        {
            T3CTL &= (1 << 4);
        }
    }
  3. CC2540 SDK 的函数是否与 CC2640R2F SDK 中的 int_fast16_t Power_setDependency (uint_fast16_t resourceId)相似?
  4. CC2540需要保持系统的主频率不变,但以下参数除外: 取消项目宏定义 power_saving 和 HCI_EXT_ClkDivOnHaltCmd  (HCI_EXT_ENABLE_CLK_Division_on_halt);更改到禁用。  需要配置其他参数?  
  5.  HCI_EXT_HaltDuringRfCmd ()和  HCI_EXT_ClkDivOnHaltCmd ()函数有何区别?

您能帮助检查这个问题吗? 谢谢。

此致、                                                         

Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    该主题混合了几个不相关的问题。 请在下面查看我的答案。

    1. BLE 堆栈以最高优先级运行。 因此、它可能会影响中断处理的时序。

    2、该行为可能与之前的点相关(即中断处理的延迟)

    3.我不知道 CC2540上有这样的功能。

    4.我不确定我是否明白这个问题。 请提供更多详细信息。

    5. HCI_EXT_ClkDivOnHaltCmd 决定在射频操作期间 CPU 停止时是否应分频系统时钟。  HCI_EXT_HaltDuringRfCmd 命令控制是否应停止 CPU。 HALT 被用来降低  RF 运行期间的峰值流耗。 如果您禁用它、它应该不会影响广播。

    如果需要更多详细信息、请为每个问题打开专用主题帖。 此处不提供额外支持。

    感谢您的理解。

    此致、