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/SIMPLELINK-MSP432-SDK:采用 TI 引脚多路复用器的 GPIO 和外设配置

Guru**** 2581345 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/613450/rtos-simplelink-msp432-sdk-gpio-and-peripheral-configuration-with-ti-pinmux

器件型号:SIMPLELINK-MSP432-SDK
主题中讨论的其他器件:MSP432P401M

工具/软件:TI-RTOS

您好!

我们将使用 MSP432 SimpleLink SDK、使用 MSP432P401M 微控制器和 TI-RTOS 设置定制板。 我们使用 PinMux 来配置引脚和外设、并需要一些建议。 我们有多个外部芯片可供我们通信、但我们将在此处以 SPI 闪存芯片为例。 引导时、我们希望将其置于低功耗模式、然后将 SPI 引脚(MOSI/CMISO/CLK 和 CS)配置为低功耗状态。 我们打开 SPI 器件、让器件进入低功耗状态、然后关闭 SPI。 这会导致 MISO/MOSI/等 引脚处于 SPI 驱动器配置的状态。 然后、我们要将这些引脚视为 GPIO、并将引脚配置为深度睡眠(具有停车功能等)。 PinMux 不允许我们配置引脚以用于外设和 GPIO、因此我们无法这样做。  

我们以前使用的是 CC26XX 器件及其 SDK、该 SDK 使用通用引脚模块、在 SPI 关闭后、引脚会自动恢复到其先前的状态。 我们可以看到 Pin.h (simplelink_msp432_sdk_1_40_01_00\source\ti\drivers\PIN.h)是 MSP432 SDK 的一部分、但它没有实现、driverlib 也不会使用它、这会降低代码可移植性。  

为我们的用例配置电路板的典型方法是什么? 具体而言、我们应该如何生成板级配置文件、以便在外设处于活动状态时将引脚用于外设、并在外设未使用时手动配置? 我觉得这应该比较直接、但找不到办法去做。

谢谢

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

    您好!

    [引用 user="Jesse Thet"] PinMux 不允许我们配置引脚以用于外设和 GPIO、因此我们无法这样做。  [/报价]

    是的、我明白您的观点、我将向我们的 PinMux 开发人员提供此反馈。

    最简单的方法可能是生成2种不同的配置。

    GPIO

    GPIO_PinConfig gpioPinConfigs[]={
    GPIOMSP432_P1_7 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_LOW、
    GPIOMSP432_P1_6 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_LOW、
    GPIOMSP432_P1_5 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_MED | GPIO_CFG_OUT_LOW、
    }; 

    作为 SPI

    /* SDSPI 配置结构*/
    const SDSPIMSP432_HWAttrsV1 sdspiMSP432HWAttrs[Board_SDSPICOUNT]={
    {
    baseAddr = EUSCI_B0_BASE、
    时钟源= EUSCI_B_SPI_CLOCKSOURCE_SMCLK、
    
    /* CLK、MOSI 和 MISO 端口和引脚*/
    sckPin = SDSPIMSP432_P1_5_UCB0CLK、
    .somiPin = SDSPIMSP432_P1_7_UCB0SOMI、
    simoPin = SDSPIMSP432_P1_6_UCB0SIMO、
    
    /*芯片选择端口和引脚*/
    csPin = SDSPIMSP432_P9_0_CS、
    },
    }; 

    然后将两个配置合并到一个文件中。

    之后、您可以使用 GPIO 驱动程序。

    void GPIO_write (uint_least8_t index、unsigned int 值);
    uint_fast8_t GPIO_read (uint_least8_t index); 

    希望这对您有所帮助。

     David