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.

[参考译文] AM6442:R5F 内核:GPIO 外设时钟频率查询

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1410235/am6442-r5f-core-gpio-peripheral-clock-frequency-query

器件型号:AM6442

工具与软件:

您好!

我使用mcu_plus_sdk_am64x_09_01_00_41并编写了代码来测量 GPIO 写入和读取次数。

R5F 内核时钟设置为800 MHz、GPIO 外设时钟(GPIO0_VBUS_FICLK) 设置为125 MHz。

以下是刷写到 R5F 内核的代码。 在示波器上观察到波形:

    gpioBaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(GPIO_LED_BASE_ADDR);
    pinNum       = GPIO_LED_PIN;
    GPIO_setDirMode(gpioBaseAddr, pinNum, GPIO_LED_DIR);

    gpioBaseAddr1 = (uint32_t) AddrTranslateP_getLocalAddr(OUTPUT_GPIO_BASE_ADDR);
    pinNum1       = OUTPUT_GPIO_PIN;
    GPIO_setDirMode(gpioBaseAddr1, pinNum1, OUTPUT_GPIO_DIR);

    uint32_t                regIndex1, regVal1;
    volatile CSL_GpioRegs*  hGpio = (volatile CSL_GpioRegs*)((uintptr_t) gpioBaseAddr1);
    regIndex1 = GPIO_GET_REG_INDEX(pinNum1);
    regVal1 = GPIO_GET_BIT_MASK(pinNum1);

    uint32_t                regIndex, regVal;
    volatile CSL_GpioRegs*  hGpio1 = (volatile CSL_GpioRegs*)((uintptr_t) gpioBaseAddr);
    regIndex = GPIO_GET_REG_INDEX(pinNum);
    regVal = GPIO_GET_BIT_MASK(pinNum);

    while(1)
    {
        CSL_REG32_WR(&hGpio->BANK_REGISTERS[regIndex1].SET_DATA, regVal1);
        CSL_REG32_WR(&hGpio->BANK_REGISTERS[regIndex1].CLR_DATA, regVal1);
        CSL_FEXTR(hGpio1->BANK_REGISTERS[regIndex].IN_DATA, regVal, regVal);
        CSL_REG32_WR(&hGpio->BANK_REGISTERS[regIndex1].SET_DATA, regVal1);
        CSL_REG32_WR(&hGpio->BANK_REGISTERS[regIndex1].CLR_DATA, regVal1);

    }

从波形中、我们观察到了以下时序:

  • GPIO 高电平时间:~210ns
  • GPIO 低电平时间:~210ns
  • GPIO 读取时间:~210ns

您能否确认这些时间是否正确?

此外、我想知道是否可以将 GPIO 外设时钟频率增加到超过125 MHz 以实现低于210ns 的时间。 如果可以提高外设时钟频率、更改该频率的步骤是什么?

我们是否能够将 PLL0_hsdiv0值增加至超过500MHz 的值? 允许的 PLL0_hsdiv0的最大值是多少?

谢谢!

Pratibha

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

    Pratibha、您好!

    感谢您的提问。

    请留出一些时间来 检查上述详细信息并恢复。

    此致、

    Tushar

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

    Pratibha、您好!

    感谢您的耐心。

    [报价 USERID="588950" URL"~/support/processors-group/processors/f/processors-forum/1410235/am6442-r5f-core-gpio-peripheral-clock-frequency-query "GPIO 外设时钟频率超出125 MHz 可实现低于210ns 的时间。

    我在内部检查了详细信息、无法 提高 GPIO 频率。

    您在上面看到的时钟连接不正确。 GPIO 仅在31.25 MHz 上运行。  

    与在 TRM 中一样、您可以看到 GPIO0_VBUS_CLK 连接到 MAIN_SYSCLK0。

    请参阅下图。

    此致、

    Tushar