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.

[参考译文] RTOS/MSP432P401R:示例文档

Guru**** 2608385 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/650192/rtos-msp432p401r-documentation-of-examples

器件型号:MSP432P401R

工具/软件:TI-RTOS

您好!

我最近购买了 MSP_EXP432P401R 板、因此我将使用 ti-RTOS 示例。 我使用 Resource Explorer 在"SimpleLink MSP432P4 SDK - v:1.60.00.12"类别中找到了它们

现在、我将要处理一个名为 adcbufContinuous_MSP_EXP432P401R_tirtos_ccs 的示例。 我的问题是:此示例中包含的驱动程序是 DriverLib 库的一部分? 因为我找不到 ADCBuf 模块等文档。 "MSP432_DriverLib_Users_Guide-MSP432P4xx-4_10_02_00.pdf"手册中的函数与 TI-RTOS 示例中使用的函数有很大不同。

非常感谢。

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

    您的观点非常有效。 没有像 DriverLib 用户指南这样的单个文档记录了每个 TI 驱动程序模型。 SimpleLink 安装下的"docs/tidrivers/doxygen/html/index.html"路径中有一个 Doxygen 页面

    您的反馈意见得到了充分采纳、我们将努力改进文档。 同时、如果在使用 ADCBuf 模块方面需要任何进一步的支持、请告知我们
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、非常感谢。 我一直在阅读 Doxygen 文档、并为其提供了很多帮助

    但有些事情对我来说并不清楚。 例如、我找不到如何设置 SHI 信号时序的源。 我看到 ADCBuf_Params_Strc 中有一个"samplplingFrequency"字段、但我不知道如何管理、使用哪个计时器。

    另一个问题是、如果我需要配置多个通道、是否需要重复该过程来初始化每个 ADC 通道的 ADCBuf 结构?

    最后一个问题是 DMA 是否用于从 ADC 外设复制到缓冲器? 如果不是、我如何配置它?

    再次感谢!

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

    在 MSP_EXP432P401R.c 文件中、有一个名为 adcTimerTriggerSource 的 adcbufMSP432HWAttrs 参数、可用于更改为 ADC 触发器选择的计时器。 您可以单击该值以查看可分配的可能值

    2.对于多个通道、您需要将 ADCBuf_Conversion continuousConversion 更改为 ADCBuf_Conversion continuousConversion[3](在本例中、我假设为3个通道)等数组。 然后、您需要初始化每个通道的连续转换数组、然后调用 ADCBuf_convert (adcBuf、连续转换、3)进行转换

    3.当前机制是使用 CPU。 但是 DMA 机制是可用的(通过 ADCBufMSP432_HWAttrs),但我需要仔细检查工作模型并创建一个示例,以更好地为您提供帮助。 CPU 机制已经过测试、运行良好、因此您可以尝试使用相同的机制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 Amit。 这就是我要搜索的所有内容。
    最后一个问题是、ADC 和 ADCBuf API 之间的唯一区别是缓冲区管理 strc?
    再次感谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、我找不到通过 ADCBufMSP432_HWAttrs 结构字段配置 DMA 机制的方法。 如何使用它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Frederico

    ADCBuf 管理特定于 MSP432P4x 器件系列的特性、例如 ADC TI 驱动程序中未提供的 DMA 的使用、通道、时钟等的配置。

    此外、我们还添加了注释、发现1.60 SDK 版本中的 ADCBuf 驱动程序存在一些问题、这些问题正在针对下一 SDK 版本进行修复。 简单总结一下

    1、允许将任何模拟通道映射到 ADCMCTLx 中
    2.电源驱动器管理
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我一直在使用 ADCBufMSP432_HWAttrs 结构、但我找不到配置 DMA 的方法。 我也找不到方法来查看"convertFxn"或"openFxn"指针等函数。 我希望输入这些函数、看看我是否可以配置 DMA 通道、但我找不到方法。
    我应该如何处理此问题?
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Frederico

    在 MSP_EXP432P401R.c 文件中、如果您搜索 ADCBufMSP432_HWAttrs、您将看到该结构有两个参数"useDMA"和"dmaIntNume"设置为 NULL。 您唯一需要做的更改是使"useDMA"成为1、并将 dmaIntNum 作为中断通道、在该中断通道上完成的 DMA 中断将被置为用于读回数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    也许我有另一个版本的 TI 库、 我正在使用 adcbufContinuous_MSP_EXP432P401R_tirtos_ccs  示例。 ADCBufMSP432_HWAttrs 如下所示:

    typedef 结构体 ADCBufMSP432_HWAttrs{
    uint32_t intPriority; /*! ADC 中断优先级*/
    ADCBufMSP432_channelSeting;/*! ADC 通道特定设置*/
    ADCBufMSP432_Timer_Reference_Source adcTimerTriggerSource;/*! ADC 定时器触发源*/
    
    }ADCBufMSP432_HWAttrs; 

    是否有办法查看 TI Lib 函数? 在这种情况下、我需要自定义一些内容。

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

    您似乎正在使用 MSP432P4 SDK 1.50。 我检查了本地副本、并在 MSP432P4 SDK 1.60中提供了新参数
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的! 这就是问题所在。
    是否有办法查看 TI Lib 函数? 在这种情况下、我需要自定义一些内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Frederico

    您可以转到 source/ti/drivers/adcbuf 来查看函数。 但是、由于文件是预编译的、因此设置断点可能并不总是有效的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amit、还有一个问题。

    我现在使用的是 SDK 1.6。

    ADCBufMSP432_HWAttrs adcbufMSP432HWAttrs[MSP_EXP432P401R_ADCBUFCOUNT]每个 ADC 通道必须有一个入口?

    定义:

    {
    .intPriority =~0、
    通道设置= adcBuf0MSP432Channels、
    .adcTimerTriggerSource = ADCBufMSP432_TIMERRA1_CAPTURECOMPARE2、
    useDMA = 0、
    .dmaIntNum = DMA_INT0、
    .adcTriggerSource = ADCBufMSP432_TIMER_TRIGGER、
    .timerDutyCycle = 50、
    时钟源= ADCBufMSP432_ADC_CLOCK
    } 

    仅用于一个通道、我对吗? 我必须为每个通道重复该过程。

    非常感谢

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

    不可以、它是一个用于多个通道的通道。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以及如何仅一个 DMA 通道将数据从 ADC 连续存储器传输到每个 ADC 通道的独立缓冲器? 它是否使用存储器散聚周期类型? (slau356f 9.2.3.4.5)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Frederico、

    目前 DMA 以基本模式运行。 因此、一次只能使用一个通道与 DMA 进行转换、它的数据存储在存储器中。 我们正在努力为具有外设散聚功能的多通道配置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,非常感谢 Amit!