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.

[参考译文] TMDS64EVM:如何使用 GPIO 引脚作为 AM64x (TMDS64EVM) 上的输出来生成 40MHz 信号

Guru**** 2694555 points

Other Parts Discussed in Thread: AM6442, TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1596844/tmds64evm-how-to-generate-a-40-mhz-signal-using-a-gpio-pin-as-output-on-am64x-tmds64evm

器件型号: TMDS64EVM
主题中讨论的其他器件: AM6442

TI 团队大家好、

Processor SDK Linux RT 09.02.01.10 和电路板 TMDS64EVM (AM6442)。

我正在处理 AM6442 (TMDS64EVM) 我需要生成一个 40MHz 输出信号 有多个 GPIO 引脚。
已将引脚配置为 GPIO 输出 通过器件树并验证了信号切换、但 GPIO 切换速度非常低(~64Hz 范围)。

k3-am642-evm.dts 配置:-

MAIN_GPIO0_31_PINS_DEFAULT:MAIN-GPIO0-31 引脚{
      pinctrl-single、pins =<
              AM64X_IOPAD (0x007C、PIN_OUTPUT、7) /* GPIO0_31 *
      >;
  };

&MAIN_GPIO0{
  状态=“正常“;
  pinctrl-names =“default";“;
  pinctrl-0 =<&MAIN_GPIO0_31_pins_default &MAIN_GPIO0_52_pins_default>;
  GPIO 行名称=
    “",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、“",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、    /* 0-9 */
    “",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、“",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、    /* 10-19 */
    “",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、“",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、    /* 20-29 */
    “",“,"GPIO0_31"、"GPIO0_31",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、“",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、/* 30-39 */
  “",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、“",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、    /* 40-49 */
  “",“,""、"",“,""“"",、,""“"",“,""、"",“,</s>“ 、““、“",“,""、"",“,""“"",、,""“"",“,""、"";“;</s>“ 、““    /* 50-59 */
};

使用以下命令进行验证:

root@am64xx-EVM:~# gpioset gpiochip1 31=1
root@am64xx-EVM:~# gpioset gpiochip1 31=0

1) 支持的最大 GPIO 切换(高和低)频率是多少?

2) 什么是推荐的硬件模块 AM64x 生成一个 40MHz 时钟/方波

3) 提供 TM6S64EVM 电路板上的 GPIO 调制示例?

 

此致、

Ravilla Dinesh。

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

    您好的团队、

    进行任何更新。

    此致、

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

    尊敬的 Ravilla:  

    有关 GPIO 切换示例、我要查看以下常见问题解答以了解正确语法: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1494485/faq-processor-sdk-getting-started-with-gpios-in-linux-using-the-am62-and-am64-family-processors。我需要一些时间来回复您的前 2 个问题。  

    此致、

    Shriya

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

    您好 Ravilla、

    当处理器内核手动将信号切换为高电平和低电平时、我们将其称为“位拆裂“。

     由于许多不同的原因、Linux 无法以 40MHz 速率对常规 GPIO 信号进行位移运算。 但是、根据您的用例、您可以使用处理器的其他部分。

    请告诉我们有关您要驱动的该信号的更多信息。

    例如、这是重复的 PWM 信号吗? 如果是、您可以使用 PWM 外设来驱动信号。

    这是通信协议吗? 如果是、您尝试实施哪种通信协议?

    这是自定义通信协议吗? 您可以通过对 PRU 内核进行位拆裂来实现它。

    此致、

    Nick

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

    您好、Nick、

    SDK: TI-PROCESSOR-SDK-LINUX-RT-am64xx-EVM-09.02.01.10。

    电路板:TMDS64EVM (AM6442)

    如何配置 ECAP 来测量 25MHz 输入?

    我已成功配置 ePWM 生成一个 40MHz 输出 、在示波器上验证。

    &epwm4{
      pinctrl-names =“default";“;
      pinctrl-0 =<&MAIN_epwm4_pins_default>;
      状态=“正常“;
    };

    main_epwm4_pins_default:main-epwm4-pins-default{
          pinctrl-single、pins =<
            AM64X_IOPAD (0x0088、PIN_OUTPUT、3) /* EHRPWM4_A、模式 3 R18*/
          AM64X_IOPAD (0x008C、PIN_OUTPUT、3) /* EHRPWM4_A、模式 3 T21*/
           
          >;
    };


    现在我需要 使用 ECAP 如何测量 25MHz 输入信号?

     main_ecap2_pins_default:main-ecap0-pins-default{
        pinctrl-single、pins =<
          AM64X_IOPAD (0x025C、PIN_INPUT、0)/*(D17) ECAP2_IN_APWM_OUT */
        >;
      };

    &ecap2{
      pinctrl-names =“default";“;
      pinctrl-0 =<&main_ecap2_pins_default>;
      状态=“正常“;
    };

    还提供驱动程序:

    ==/sys/class/pwm/pwmchip0 ==
    ./../devices/platform/bus@f4000/2310000.pwm/pwmchip0
    of:NpwmT (null) cTI、am64-ECAP
    ==/sys/class/pwm/pwmchip1 ==
    ./../devices/platform/bus@f4000/23000000.pwm/pwmchip1
    of:NpwmT (null) cTI、am64-epwm
    ==/sys/class/pwm/pwmchip3 ==
    ./../devices/platform/bus@f4000/23040000.pwm/pwmchip3
    of:NpwmT (null) cTI、am64-epwm

    现在我需要使用 ECAP 读取~25MHz 的外部输入信号、并要求仅从 Linux 用户空间执行此操作?

    请建议使用~25MHz 的示例来读取输入引脚?  

    此致、

    Ravilla Dinesh。

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

    您好 Ravilla、

    我明天会努力回应。 如果我没有在星期五上回复、请 ping 通该线程。

    此致、

    Nick

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

    您好、Nick、

    请在晚上回复此问题。

    此致、

    Ravilla Dinesh。

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

    尊敬的团队:

    我们需要快速响应。 请回复。

    此致、

    Ravilla Dinesh。

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

    您好 Ravilla、

    很高兴听到您能够通过 PWM 外设生成适当的信号。

    您打算如何处理 25MHz 输入信号?

    例如、这是您要实现的自定义协议吗? (我假设您使用的是适用于其中一个外设接口的标准协议,则只需使用该外设接口)

    是否要在信号的上升沿或下降沿触发一些操作? 如果是这样,你想发生什么?

    此设计是否有“实时“要求? (即在检测到输入信号后的特定时间内,系统需要执行 X 操作)

    如果您尝试每 40 usec (1/25,000,000 Hz) 用一个新的时间戳中断一次 Linux 操作系统并告诉它做些什么、Linux 操作系统将无法执行几乎任何操作。 因此、如果这是一个用例、例如、您需要在每个 25MHz 输入信号的下降沿捕获 ADC 读数、这最好卸载到 PRU 内核或 R5F 内核等器件。

    为了设定期望、我将在本周剩余时间内休假。 我将在下周中回来。

    此致、

    Nick