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.

[参考译文] TM4C129ENCPDT:当从内部振荡器切换到25MHz 晶体时、定制板无法调试。

Guru**** 2448780 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/633748/tm4c129encpdt-custom-board-fails-to-debug-when-switch-from-internal-oscillator-to-25-mhz-crystal

器件型号:TM4C129ENCPDT

大家好、

我将使用具有 CCS6.1.0的 TivaWare_C_Series-2.1.0.12573。 我的代码只是我为定制板编写的一个简单的闪烁代码:

#include 
#include 
#include "sc/tm4c1294ncppdt.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/syscret.000"
#include "#driverlib_trl.ipt.inc"#idt_freq.ipt_free.t_free.t_free.t_free.t_freq.ipt_free.t_free.h


/../../UnitestLibraries/unitest_tm4c1294ncpdt_peripherals.h














#include "#include "#include "#include "#driver.ipt_trintrintrin_un.ipt.inc"#include "#include "#id.ipt.ipt.ipt.ipt.ipt.inc.inc.ipt.ipt.ipt.ipt.inc.ipt.inc.inc.inc.inc.inc.inc.ipt.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc.inc./../../UnitestLibraries/unitest_tm4c1294ncpdt_timer_func.h /../../UnitestLibraries/unitest_tm4c1294ncpdt_timer_init.h /../../UnitestLibraries/unitest_tm4c1294ncpdt_gpio_init.h
//ui32SysClkFreq = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
//SYSCTL_OSC_INT

GPIOKOutput (GPIO_initT0_GPIO_PIN_0)、0xTITYP0_GPIO_PIN_PINT_TIV0_PIN_PIN_PIN_TIMET0
TIMER0_BASE、time2TimerLoadbySysClk (ui32SysClkFreq、0.5、0));// 2ms interruptInitTIMER
(INT_TIMER0A、 TIMER0_BASE、TIMER_A、TIMER_TINA_TIMEOUT、Timer0IntHandler);

IntMasterEnable ();
MAP_TimerEnable (TIMER0_BASE、TIMER_A);

while (1);
}

void Timer0IntHandler (void)
{
//清除计时器中断
TimerIntClear (TIMER0_BASE、TIMER_TIMA_TIMEOUT);

//读取 GPIO 引脚的当前状态,//
将相反状态写回
if (GPIORTK)





(GPIORP0_BASE)、GPIO_PIN_GPIO0_BASE (GPIO_PIN_GPIO_PIN_GPIO0_BASE);}


问题是、当我使用内部振荡器时、我可以嵌入代码、而不会出现任何问题。 但是、当我将代码从内部振荡器切换到25MHz 晶体时、我可以嵌入代码、但 MCU 会锁定。 我必须执行擦除过程才能接触到芯片。 我正在使用推荐的晶体(与 Tiva 连接板中使用的晶体完全相同。) 我还连接了 RBIAS 电阻器。

我一直无法找到错误的来源、如果有人能帮忙、我会很高兴。  

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

    您可能遇到称为 SYSCTL_22的问题。 勘误文档 www.ti.com/lit/spmz850中对此进行了介绍。 解决方案是更新到最新 的 TivaWare 驱动程序。 以下是勘误表的快照:

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

    我错过了这个。 我将检查并通知您它是否正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob、您好!

    我已将 TivaWare 更新为最新版本、但没有这样做。 我有5个相同板的副本、都有相同的问题。 发生的情况如下:

    代码在内部振荡器中工作正常、因此我将代码切换为25MHz 晶体、  

      

    加载代码时没有问题。

    2.当我按"恢复"按钮查看闪烁时:

    我得到:"can't run Target CPU: debug port error occurred (无法运行目标 CPU:发生调试端口错误)"。  

    我认为 JTAG 端口没有问题、否则它不会加载之前的代码。 内部振荡器的一切工作正常、但当我切换到晶体时、它会熔断。

    此外、当我执行 调试端口解锁过程时、会发生怪异的情况。 当我到达最后一步时、即重新为器件供电、然后加载工作代码、我再次得到相同的误差。 但是、如果我没有断开 电源线(这意味着我没有完成下电上电周期)、并且编译代码会向我发出无法连接设备的警告、那么我断开并连接设备 ANR RETRY COMPILEE、它会正常工作。

    我有点迷路了,也很愿意接受建议...

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

    [引用 user="Murat Bilgic">我不认为 JTAG 端口有问题、否则它不会加载之前的代码。 内部振荡器工作正常、但当我切换到晶体时、它会熔断。[/quot]切换到25MHz 晶体的代码看起来正确。

    您是否能够尝试在 LaunchPad 上运行代码?

    如果代码在 Launchpad 上正常运行、则会指出25MHz 晶体电路的定制板上可能存在故障。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    切斯特提出了一个很好的观点[如]。 您是否看过具有示波器的25MHz 晶体、以发现它正在正常振荡?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除了探测之外-事实证明、以多个方式构建电路板是明智的。 这样可以指示您是否遇到了"单板异常"(所有诊断均不可用)。

    25MHz 时-您的示波器探头质量可能会妨碍您的测量。 我建议使用频率远低于 MCU 可接受的"最低频率"的晶体。 晶体旁路电容器也起着关键作用-错误标记的电容器(值太高)或缺失电容器肯定会导致您的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Murat Bilgic">加载代码时没有问题。

    2.当我按下"继续"按钮以查看闪烁:

    Murat Bilgic 说:
    我得到:"can't run Target CPU: debug port error occurred (无法运行目标 CPU:发生调试端口错误)"。  [/报价]

    如果错误、请纠正我的错误、但 这并不表示 MOSC 正在计时闪存和 AHB 总线。 其次 、即使 选中 ICDI 设置以复位 目标、在 程序加载 (CCS5.4和7)后运行到 main 通常也必须单击 复位目标并在单击"恢复 "之前重新启动、否则 DAC 会抛出 CCS 连接错误的异常。