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.

[参考译文] CCS/AM3358:切换 GPIO 输出波形

Guru**** 2589300 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588898/ccs-am3358-toggle-gpio-output-waveform

器件型号:AM3358

工具/软件:Code Composer Studio

我正在使用 GPIO1_30通过切换此 GPIO 来获取时钟。

配置:

   HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_GPMC_CSn (1))= CONTRAL_CONF_MUXMODE (7);

   // CLK 作为输出
   GPIODirModeSet (SOC_GPIO_1_regs、30、GPIO_DIR_OUTPUT);

然后使用以下行将*文件流写入8位端口:

   for (i = 0;i < ulFileSize;i++)
   {
      对于(j = 0;j < 8;j++)
      {
         C =(*(filestream + I)>>(7 - j))和0x01;
         GPIOPinWrite (SOC_GPIO_1_regs、j、c);
      }
      GPIOPinWrite (SOC_GPIO_1_regs、30、GPIO_PIN_LOW);
      对于(k = 0;k < 500;k++);
      GPIOPinWrite (SOC_GPIO_1_regs、30、GPIO_PIN_HIGH);
      对于(k = 0;k < 500;k++);

   }

当我在调试器运行代码的情况下探测 CLK 时、我会在第一张图片中获得输出。

当我使用 eMMC 的 A8运行代码探测 CLK 时、我会在第二张图片中获得输出。

有三角输出吗? 为什么输出形状不同? 我很困惑。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到您使用的是200MHz 示波器。 尝试使用具有更大带宽的示波器进行测量。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    GPIO 输出频率设置为仅约85KHz。 当代码由 CCS 中的调试器运行并在没有调试器的情况下从 eMMC 引导时、输出形状会有所不同。 请提供更多建议? 谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是什么电路板? 定制板或 EVM? 您的示波器没有足够的带宽来正确显示信号边沿、这里的频率无关紧要。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    查看以下代码:

    对于(k = 0;k < 500;k++);

    在调试模式下、编译器会将此代码编译为空循环。

    在非调试模式下、编译器会优化此循环、代码的运行速度更快。

    尝试将"k"定义为"volatile int"(非静态、非本地)

    或者:使用库中的 delay()函数。