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.

[参考译文] TMS320F280039C:CAN't 成功写入 AGPIOCTRLA 寄存器

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1520812/tms320f280039c-can-t-write-agpioctrla-register-successfully

器件型号:TMS320F280039C
主题:SysConfig 中讨论的其他器件

工具/软件:

您好 Champ、

客户使用80引脚版本的 F280039C。 希望使用 AGPIO 引脚(引脚33和 P34)作为 ADC 输入(B5和 B11)。

我们调用了以下函数来启用模拟模式、但发现我们无法 成功地将 AGPIOCTRLA 寄存器写入1。  

GPIO_setAnalogMode (21、GPIO_ANALOG_ENABLED);
GPIO_setAnalogMode (20、GPIO_ANALOG_ENABLED);

您能否就可能的原因发表意见?  不确定是否需要添加额外代码才能成功? 或者在初始化相关代码中调用该函数时是否有任何顺序要求?

BR、

Fengyu

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

    您好、Fengyu、

    使用 SysConfig、正确地为 PinMux GPIO 20至 ADC B5生成如下代码:

    // Analog PinMux for B5, GPIO20
    GPIO_setPinConfig(GPIO_20_GPIO20);
    // AGPIO -> Analog mode selected
    GPIO_setAnalogMode(20, GPIO_ANALOG_ENABLED);

    尝试添加该GPIO_setPinConfig()行、看看它是否修复了配置。 请注意、您将无法在 CCS 中正确读取寄存器。  AGPIOCTRLA 寄存器几乎全部保留、因此无法回读。 请使用 ADC 读取值来验证配置是否正确、而不是寄存器值变化。

    此致、

    Ryan

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

    您好、Ryan、

    感谢您的支持。  

    尝试添加该GPIO_setPinConfig()行并查看该行是否修复了配置。

    1.我们尝试添加这个,但它不起作用。

    请注意、您将无法正确读取 CCS 中的寄存器。  AGPIOCTRLA 寄存器几乎全部保留、因此无法回读。

    2.若要读取 AGPIOCTRLA 寄存器、我请参阅下面的链接来获取该值。 是否是获得价值的正确方法?  

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1105041/f280039-can-not-see-the-agpioctrla-register?tisearch=e2e-sitesearch&keymatch=f280039%20gpio20#

    BR、

    Fengyu

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

    Fengyu、

    2. 若要读取 AGPIOCTRLA 寄存器、我请参考下面的链接来获取该值。 这是获得价值的正确方法吗?

    感谢您发送编修。 不管出于何种原因、我之前找不到它。 进行修改后、我能够读取 AGPIOCTRLA 寄存器、并可以验证 GPIO_setAnalogMode ()函数在我的 LaunchPad 上是否按预期工作。

    如果您还没有处于新工程中、我会尝试打开一个空的 DriverLib 工程并GPIO_setAnalogMode(21, GPIO_ANALOG_ENABLED)在空闲循环之前立即运行。  如果代码在以前在工程中工作过的代码中运行、则可能会进行一些修改/运行一些代码、以阻止其正常运行。

    此外、请尝试在不同的 F280039C 上运行代码、消除您当前使用的单个器件固有此问题的可能性。

    此致、

    Ryan