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.

[参考译文] TM4C1294KCPDT:如何从 CCP 管脚生成12MHz 频率?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/593740/tm4c1294kcpdt-how-to-generate-a-12mhz-frequency-from-a-ccp-pin

器件型号:TM4C1294KCPDT
Thread 中讨论的其他器件:鳄鱼

您好!

我按照应用手册使用2个 SPI 接口(http://www.ti.com/lit/pdf/spma042)模拟 I2S、并且我需要使用 MCU 的 CCP 引脚来生成 MCLK。

当我配置一个 CCP 管脚来生成这个12MHz 频率时、管脚的振幅输出非常低(小于1V)、波形看起来像一个正弦波、而不是方波。 我的系统在3.3V 电源电压下运行。

对于这个12MHz 频率、我有什么问题吗? 从 CCP 管脚产生这个12MHz 频率的正确设置是什么?

谢谢!

此致、

陈锦华

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

    早上好、Franky、

    我刚刚为此线程发布了一段类似的代码、我们在其中讨论了频率生成与计时器和 PWM。

    e2e.ti.com/.../593475

    因此、用不同的参数重新编译它只需不到一分钟的时间。 下面的代码为12MHz 波配置一个 TCCP:

    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
    while (!(SysCtlPeripheralReady (SYSCTL_Periph_GPIOD)));
    SysCtlPeripheralDisable (SYSCTL_Periph_Timer1);
    SysCtlPeripheralReset (SYSCTL_Periph_Timer1);
    SysCtlPeripheralEnable (SYSCTL_Periph_Timer1);
    while (!(SysCtlPeripheralReady (SYSCTL_Periph_Timer1)));
    GPIOPinTypeTimer (GPIO_PORTD_base、GPIO_PIN_3);
    GPIOPinConfigure (GPIO_PD3_T1CCP1);
    TimerConfigure (Timer1_base、TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_PWM);
    TimerLoadSet (Timer1_base、timer_B、9);
    TimerMatchSet (Timer1_base、timer_B、4);
    TimerControlLevel (Timer1_base、timer_B、false);//只是一个使计时器 PWM 高电平有效的示例
    TimerEnable (Timer1_base、timer_B);
    

    这是信号在 LaunchPad 上的样子、如下所示:

    振幅看起来不错、但我对转换确实进行了一些舍入。 仍然、TTL 区域是安全的高电平/低电平。 你得到什么?

    此致

    布鲁诺

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

    [引用 user="Bruno Saraiva"]对转换进行了一些舍入处理

    不喜欢看"真实"的过冲/下冲。

    如果负载为9、匹配为4、那么它是否(仅)"舍入"为50%的平均占空比?

    保持这种设置很有用-并生成10、5、1MHz 和500、250KHz 的输出波形。

    我敢打赌、如果采用"无引线"(即通过短接"线环"进行接地连接)、示波器探头的接地引线就会导通、并且波形失真的大部分会降低。  (接线环路与接地相连-这是与 MCU 定时器引脚"直接"相连的接地线-因此接地导线断开-并且连接尽可能短/直接!)

    您(可能)注意到海报似乎已实现12MHz 输出(通过复制应用手册)、并且此 MCU 可能(可能)没有太多的输出驱动@此类频率。   (这证明了"为什么"-"一个和只有一个 MCU/供应商"证明了"不明智"、因为它限制了选择和任务满意度。   请注意、(实际) I2S MCU 在附近 lurk -远超性能-可避免此类"磅"(几乎)提交尝试。)

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

    [引用 user="CB1_mobile "]如果"load of 9"(加载9)和"match of 4"(匹配4)、是否(仅)"舍入到50%的平均占空比?

    不是真的! 此设置始终提供50%的值。 这与计数寄存器的工作方式有关... 此设置将定时器从0周期到9周期(10周期)、并在计数器匹配4之后翻转占空比(换句话说、半遍)...

    I (也是)预期10和5是正确的参数、但这些参数实际上是~11MHz! 在使用低时钟时、这些次要细节并不重要、但频率的正确参数似乎是:
    系统时钟/频率-1、而不是易于读取的系统时钟/频率。

    是的、"设计一次、经常显示"感觉很好(显然是在以后编辑过?)

    [引用 USER="CB1_MOBILE "]我敢打赌、如果采用了"无引线"(即通过短接的"线环"进行接地连接)、示波器探针的接地导线已经导通、并且波形失真的大部分会降低。  (该接线环路与接地相连-这与 MCU 定时器引脚"直接"相连-因此接地导线断开-并且连接尽可能短/直接!)[/引述]

    老实说、我不知道这意味着什么... 这可能是我的"机械工程学位"再次哭了、但我不熟悉这种无引线概念。

    至于 GPIO 的驱动能力、还有两件事可以尝试:

    -确认所选焊盘接受更高的电流并将其配置为这样的电流(8mA? 12mA?) 在使用宏调用配置引脚之后?
    尝试使用某种高阻抗运算放大器?

    值得一提的是、我测试了相同的软件、一直到60MHz 信号输出(负载1、匹配0)、在这种情况下、它看起来像是正弦波!!!

    大家好

    布鲁诺

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

    如果时间允许、我将"查找并剪切/粘贴"这样的"无接地引线"示波器技术。 所有示波器供应商都推荐这种技术-提供接地引线是为了方便起见-但它用于"拾取不需要的信号并失真非常感兴趣的信号-这两种情况都在器件以(接近)限制运行时强调。

    这里有一个非常好地说明了这一点的链接。   (图4显示了"正常"示波器接地连接、图7显示了"线回路"方法-并且改进了信号测量。)

       由于某种原因、我无法"剪切"图像...

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

    立即到达-(合理质量的照片)描述的技术(以上帖子)。   "添加的"线环接触探头的金属接地环和 PCB 接地、从而产生"更真实"的示波器图片!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    注意到这一点、CB1 -谢谢您发帖。
    这篇文章前面的已被平息的丑恶浪潮对这次特别的讨论并不重要,但我所知的短接肯定会被闪入我的知识中,以便将来进行认真的信号探测。
    它看起来就像我在12MHz 的示波器上看到的那样、而在60MHz 的示波器上看到的情况更糟。
    我的 GND 探头实际上比标准示波器引线长一些:鳄鱼夹可能连接到另一条10英寸导线、然后连接到 PCB 上的 GND 引脚!
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    欢迎您的到来、Bruno -我相信您的示波器视图/测量(尤其是高频时的视图/测量)将从此技术中受益匪浅。

    "标准"示波器接地引线施加的附加电感能够存储然后释放瞬态电压、从而降低测量性能并使测量失真。

    另请注意、"差分示波器探头"也可能起作用。   (在半桥 FET 配置的"高侧"测量 VGS 时考虑这种情况。)    采用示波器(通常)接地并将其连接到半桥的"开关输出"可能会带来(不必要)兴奋。    (不要这么做!)  

    进入差分示波器探头 -能够在2个电路点之间进行测量(不考虑接地、而是针对"彼此"进行测量。)    这是另一种证明非常有用的技术。  (有时需要!)

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

    [引用 USER="CB1_MOBILE "]“差分示波器探头”也可能起作用。  [/报价]

    我知道...

    我一直打算永远购买一套好的差分探头、但永远不记得! 下次我来这个景点,我想(生活在欧洲,你会学习从波兰购买大量的设备/部件,所以为了节省运费,你需要等待下一个真正的需求!)

    这里的另一个(以某种方式相关)目标是将为 PC 供电的 GND 与为示波器供电的 GND 完全隔离、因为我们的几个电路板在电源入口具有某种保护电感器的方法、 哪种偏移零参考位-这对于 USB 或常规 RS232将板连接到 PC 的调试情况不是很好。 交流隔离式变压器已经在这里、只是需要对其进行设置。

    此致

    布鲁诺