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.

[参考译文] CCS/CC2640:CC2640 ADC 示例

Guru**** 2562990 points
Other Parts Discussed in Thread: BLE-STACK, CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/586989/ccs-cc2640-cc2640-adc-example

器件型号:CC2640
Thread 中讨论的其他器件:BLE-STACK

工具/软件:Code Composer Studio

大家好、

我正在尝试使用 ADC 外设(我曾尝试参考此示例: https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/404426/1433112#pi239031350=1 )

我的目标非常简单:启用 ADC 并在再次禁用 ADC 之前执行一次值读取...  

我正在使用与示例相同的引脚(DIO_23)、但是在手动触发 ADC 之后(使用 AUXADCGenManualTrigger ()函 数;)、代码残留在 AUXADCReadFifo ()函数中。 我已经尝试在中断中使用此函数(从未提出中断)、并且还直接调用 readFifo 函数... 结果相同:指令上的执行残桩:

while (HWREG (AUX_ANAIF_BASE + AUX_ANAIF_O_ADCFIFOSTAT)和 AUX_ANAIF_ADCFIFSTAT_EMPT_M);

功能中的一个示例  

转换似乎从未完成。 您能帮助我了解我的代码中是否有错误吗?

这是我的代码的提取:(中断未启用、因为在本例中、我尝试直接读取 FIFO)

----------------------------------------------------

该引脚初始化为:"ioID_23| PIN_INPUT_DIS | PIN_GPIO_OUTPUT_DIS"

----------------------------------------------------

//为 ADC 启用中断
// Hwi_Params hwiParams;
// Hwi_Params_init (&hwiParams);
// hwiParams.enableInt = true;
// Hwi_construction (&hwi、INT_AUX_ADC、adcIsr、&hwiParams、NULL);

POWER_setConstraint (Power_SB_Disallow); //使用 ADC 时禁用待机模式

//为 ADC 数字和模拟接口启用时钟(当前未在驱动程序中启用)
AUXVCClockEnable (AUX_WuC_MODCLKEN0_ANAIF_M | AUX_WuC_MODCLKEN0_AUX_ADI4_M);

AUXADCselectInput (ADC_COMPB_IN_AUXIO7); //将 AUX IO7 (DIO_23)连接为模拟输入。

AUXADCEnableSync (AUXADC_REF_FIXED、AUXADC_SAMPLE_TIME_2P7_US、AUXADC_TRIGGER_MANUAL); //设置 ADC

AUXADCGenManualTrigger (); //触发读数

AdcSample = AUXADCReadFifo ();//从 FIFO 读取值

AUXADCDisable ();//禁用 ADC

POWER_releaseConstraint (POWER_SB_disallow); //再次允许待机模式

----------------------------------------------------

提前感谢!

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

    您好!

    代码是在我们的 ADC 驱动程序就位之前生成的。 现在、在我们的全新 TI-RTOS 中、有可用的 ADC 驱动程序示例。 我建议您先看看它 、然后从那里开始。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用 TI 驱动程序的 IOID_7引脚的示例:

    const ADCCC26XX_HWAttrs adcCC26xxHWAttrs[1]={

    .adcDIO = IOID_7、
    .adcCompBInput = ADC_COMPB_IN_AUXIO7、
    .refSource = ADCCC26XX_VDDS_reference、
    .samplingDuration = ADCCC26XX_SAMPLING_DURAY_2P7_US、
    .inputScalingEnabled = true、
    triggerSource = ADCCC26XX_TRIGGER_MANUAL
    }、
    };

    const ADC_Config ADC_CONFIG[]={
    {&ADCCC26XX_fxnTable、&adcCC26xxObjects[0]、&adcCC26xxHWAttrs[0]}、
    {NULL、NULL、NULL}、
    };

    int main()

    (笑声)
    PIN_init (BoardGpioInitTable);
    adc_init();
    (笑声)


    uint16_t measADC (void)

    ADC_Params 参数;
    ADC_Handle h;
    uint16_t adcValue;

    ADC_PARAMS_INIT (params);
    h = ADC_open (0、params);

    ADC_convert (h、&adcValue);

    返回 adcValue;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、感谢您的回答。

    很遗憾、我正在处理一个基于 BLE-Stack v2.1.0的现有项目、并使用 TI-ROTS v.2.13…… 此驱动程序不可用的应用程序。
    项目非常庞大、因此无法在新堆栈上移植整个工作... 我想我必须通过这种老式的方式。

    是这样吗?

    那么、您可以通过这种方式帮助我吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从我的角度来看、我不能说我是 BLE-Stack 和 TI-RTOS 的新手。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我不确定我是否遵循了您的帖子。 使用 ADC 示例是否有问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的意思是、即使您使用帖子中的确切代码、它仍然不起作用吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    否、我没有使用过该示例、但直接在我的项目中派生了代码(几乎相同)... 我必须在使用 BLE-Stack v2.1.0和 TI-ROTS v.2.13的现有项目中插入单个 ADC 读取。
    我使用的代码是我发布的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Christin、我对 ADC 没有任何问题、我只是为 Matteo 发布了一个示例、但他要求使用"老式"的代码、我不知道这是因为我相对较新地使用 CC2640。

    此致、