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.

[参考译文] CC1310:μ Pın 分配问题

Guru**** 2481465 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1292135/cc1310-p-n-allocation-problem

器件型号:CC1310

您好!
我需要引脚驱动程序、所以我在源文件和头文件中包含引脚 ID 和引脚配置表。 我需要在驱动程序文件中配置引脚。 我将 board.c 文件中的 BoardGpioInitTable 复制到我的驱动程序文件中、并在该表中分配引脚。 但是、 由于映射的外设引脚如 SPI、我无法初始化某些外设。 每当我注释掉驱动程序文件表中的引脚时、我就可以成功初始化外设。 为了解决这个问题、我尝试在   BoardGpioInitTable 中注释掉外设引脚、或者使用  CC1310_LAUNCHXL_initGeneral 内 PIN_init 函数内驱动程序文件中 的表、但它不起作用。 对于 GPIO 引脚、我没有问题、但是需要映射引脚的外设会产生问题。 我应该如何解决这个问题?
下面是我用于配置引脚的代码片段;

static PIN_Handle g_pinHandle;
static PIN_State g_pinState;

PIN_Config pinConfigTable[] =
{
    LED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,

    UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,
    UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,

    SPI_CAN_INT | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,
    SPI_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,
    SPI_MISO | PIN_INPUT_EN | PIN_PULLDOWN,
    SPI_CLK  | PIN_INPUT_EN | PIN_PULLDOWN,

    AGD4612_PIN_INPUT_1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    AGD4612_PIN_INPUT_2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    AGD4612_PIN_INPUT_3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    AGD4612_PIN_INPUT_4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,

    TMP_SENSOR_PIN_1 | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,
    TMP_SENSOR_PIN_2 | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,

    FIVE_VOLT_ENABLE | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MAX,

    LOAD_RESISTOR | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MIN,

    SPI_CAN_CSN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,

    VBAT_SIGNAL | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,

    BAT_ID_SIGNAL | PIN_INPUT_EN | PIN_NOPULL | PIN_HYSTERESIS,

    CHARGER_SHDN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,

    PIN_TERMINATE
};

void Pin_init(void)
{
    g_pinHandle = PIN_open(&g_pinState, pinConfigTable);

    if (g_pinHandle == NULL)
    {
        while (1)
            ;
    }
}


这是  BoardGpioInitTable 的确切副本, 具有不同的名称和位置。 只有当我从 my 表"pinConfigTable"中注释掉外设引脚时、该程序才起作用

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

    请提供有关您使用的 SDK 和运行的硬件的信息。 我不是很清楚你要做什么,为什么。

    Siri

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

    我将基于 CC1310的专有硬件与 SDK 4.20.02.07配合使用。 我要做的是使代码具有统一性。 我希望我的代码能够  以连贯的方式进行组织和编写。 因此,我希望在我的专用驱动程序文件中定义和配置这些引脚,而不是 在  CC1310_LAUNCHXL.c 内的 BoardGpioInitTable 中配置它们。 但是、当我将表 BoardGpioInitTable 复制 到驱动程序文件中并初始化那里的引脚时、

    SPI 引脚等外设引脚会导致问题。 例如、我无法成功初始化 SPI。 当我从我的驱动程序文件中注释掉外设引脚并仅在 CC1310_LAUNCHXL.c 文件中使用它们时、一切都按预期工作。 那么,我的问题是,我应该在我的私有驱动程序文件中配置这些引脚?

    此致、

    Kenan Onat Kaplan

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

    我不知道我能帮助你。  

    SDK 及其驱动程序和板级配置文件旨在让您不必编写自己的驱动程序等。

    如果您的电路板看起来与我们的电路板不同、您只需更新您的电路板文件、而不是驱动程序等。

    请参阅 定制硬件—SimpleLink CC13x0 SDK 专有射频用户指南2.60.00文档

    如果您选择不使用我们在 SDK 中使用的驱动程序和文件结构等、当然可以这样做、但我们没有资源来支持您完成此任务。

    Siri

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

    您好!
    我再问一个问题。 当我要将引脚映射到外设时、我定义 DIO 编号、并将其放入 CC1310_LAUNCHXL.c 文件中的相关配置阵列中;

    #define SPI_CSn IOID_8
    #define SPI_MISO IOID_9
    #define SPI_MOSI IOID_10
    #define SPI_CLK IOID_11

    CONST SPICC26XXDMA_HWAttrsV1 spiCC26XXDMAHWAttrs [CC1310_LAUNCHXL_SPICOUNT]={
    {
    baseAddr = SSI0_BASE、
    .intNum = INT_SSI0_COMB
    .intPriority =~0、
    .swiPriority = 0、
    .powerMngrId = PowerCC26XX_Periph_SSI0、
    .defaultTxBufValue = 0xFF、
    .rxChannelBitMask = 1<<UDMA_CHAN_SSI0_RX、
    .txChannelBitMask = 1<<UDMA_CHAN_SSI0_TX、
    .mosipin = SPI_MOSI、
    .misoPin = SPI_MISO、
    .clkPin = SPI_CLK、
    .csnPin = PIN_未 分配、
    .minDmaTransferSize = 10
    }、

    如果不在  BoardGpioInitTable 内定义和配置引脚、SPI 就可以成功运行。 您是否建议我配置用于 BoardGpioInitTable 内部外设的引脚 ?这样做有什么优势?

    此致、

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

    正如我之前所说的、我们建议使用我们提供的驱动程序和文件结构。

    这样、引脚将被正确配置、您将确保例如、SPI 驱动程序使用一个已经被一些其他驱动程序使用的引脚、等等。

    这是可能的重组事情,但这不是我们可以提供的帮助。

    在我们的示例中,BoardGpioInitTable  用作 PIN_INIT()的输入。 必须在启动序列的早期调用 PIN_INIT 以确保 I/O 引脚具有安全配置。 此初始化会将引脚设置为 GPIO、如同数组(可能由用户生成)中定义的那样、该数组通常位于板级配置文件中。 aPinCfg[]中未提及的所有引脚都配置为禁用输入/输出/拉取。

    PIN.h 文件参考(TI.com)

    Siri