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/TMS320F28035:TM320F28035以独立模式引导至闪存

Guru**** 2607975 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/669517/ccs-tms320f28035-tm320f28035-boot-to-flash-in-standalone-mode

器件型号:TMS320F28035

工具/软件:Code Composer Studio

您好!

我关注的是 pdf:SPRA958K。 将 piccolo 作为独立应用运行。

我有疑问:控制卡的步骤与在 PCB 上使用控制卡的步骤是否不同?

第34页说明如下:

"F28035实验板套件或 controlSTICK:当仿真器被连接时、调试器被用来选择引导模式。 检查 CCS v5中的 Scripts 菜单以了解引导模式选择选项。 当仿真器被断开时,如果 OTP 内的 OTP_KEY 和 OTP_BMODE 位置还未进行其它设定,电路板将在跳转至闪存模式中启动,并且只在实验板套件上:DIP SW2:1 = ON 2 = ON。'

我无法成功刷写它、想知道是否有用于独立应用的示例代码? 如果我不使用 ISO 卡并 直接在定制板上使用、是否需要进行任何更改?

谢谢

Sagar

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

    您好 Sagar、

    controlCARD 与其他任何电路板都没有什么不同。  但是、它确实将引导模式引脚连接到 DIP SW2、因此需要注意将它们设置为跳转至闪存引导模式。

    SPRA958附带的代码应独立于您自己的电路板运行。  如果没有、那么其他东西将会发生。  检查您的引导模式引脚作为起点。

    您的意思是 "无法成功刷写它"?

    此致、

    David

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

    我已共享我的代码。 很好的评论
    我是说我能够刷写代码、但当我关闭代码时、它不会再次启动、因为我的定制板上没有仿真器。

    但是、我能够作为独立应用程序在 ISO 卡上运行。



    谢谢

    Sagar

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

    您好像在使用在线 TI 技术讲座 lab10中提供的代码。 此代码没有问题。 听起来、当您使用仿真器时、代码在 controlCARD 上或您的电路板上独立运行。 在没有仿真器的情况下、它无法在您的电路板上运行。 这表明存在板级问题。 检查原理图上的引导模式引脚以及 JTAG 引脚连接、尤其是 TRSTn 引脚。 是否已下拉 TRSTn (或至少未上拉)?

    戴维
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我处于获取模式。 即 GPIO 37和 GPIO 34为高电平、TRSTN 引脚未将其上拉!

    是的、我所附的代码是示例代码。 我想、在执行代码时、我很难按照指令运行 F11。 因此、我不确定错误是什么。 如果我尝试使用 F11、它将再次调试并刷写代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SPRA958L 编写的 PDF 中还有一个问题(这是一个很好的指南)。

    我收到错误“Pie Vector Table Init is Undefined”(未定义饼图矢量表初始化)。 我收到此错误、但我在 const 结构中定义了该函数 PI_VECT_TABLE PieVectTableInit。 因此、如果可能、您可以指导我了解代码中缺少的内容。

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

    萨加尔

    [引用 user="sagar shah54">您 SPRA958L 编写的 PDF 中还有一个问题(这是一本很棒的指南)。

    我收到错误“Pie Vector Table Init is Undefined”(未定义饼图矢量表初始化)。 我收到此错误、但我在 const 结构中定义了该函数 PI_VECT_TABLE PieVectTableInit。 因此、如果可能、您可以指导我了解代码中缺少的内容。
     [/报价]

    项目中是否包含文件 PieVect_nonBIOS.c?

    我无法从这里得知正在发生什么。  您是否尝试过 SPRA958附带的代码?

    戴维

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尚未尝试 SPA958中包含的代码。 是否有任何链接?
    是的、我在项目中包含了 DSP 2803x_压 电式 Vect.c 文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    AppNote 摘要的第2段中有一个链接。

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

    它会在文件上显示此错误。 是否有其他资源可以访问该文件?
    错误-
    未找到
    在此服务器上找不到请求的 URL /sc/techlit/spra958.zip。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    奇怪。  这对我很有用。  我刚刚尝试过它。  请重试:

    http://www-s.ti.com/sc/techlit/spra958.zip

    或者、请尝试使用 AppNote 主页:

    http://www.ti.com/mcu/docs/litabsmultiplefilelist.tsp?sectionId=96&tabId=1502&literatureNumber=spra958l&docCategoryId=1&familyId=1414

    戴维

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

    我现在能够以独立模式运行。 但我有一个问题。
    ePWM ISR 在独立模式下的运行速率低于在使用 JTAG 的闪存上的运行速率。
    我已经将 EPWM ISR 复制到 RAM、但在独立模式下仍需要很长时间触发。

    您能否解释原因是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    萨加尔

    这是非常独特的。 您如何知道 ISR 运行速度较慢?

    您是否尝试过应用手册中的代码?

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

    嗨、David -

    我仍然有这个奇怪的问题。 是 ePWM ISR 触发的延迟。 在仿真模式下、ePWM ISR 没有触发延迟。 但在独立模式下、ePWM ISR 会延迟触发相同代码。

    那么、我应该怎么做来减少延迟呢? 此外、ePWM ISR 异常时间是恒定的、但这两种模式下的延迟存在差异。
    希望您现在了解这个问题。

    感谢你的帮助。

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

    萨加尔

    如何测量 ISR 延迟?  使用 GPIO?

    仿真器对处理器没有神秘的控制。  无论仿真器是否已连接、代码都应运行相同的代码。  CCS 可能会初始化在独立模式下无法初始化的内容、我已经看到这是一些问题的原因。  但器件中没有任何控制中断延迟的功能。  如果中断被启用并发生、它将被采用。

    戴维

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我使用 GPIO 34测量延迟。 因此、我可以看到、当我使用独立模式时、存在相当长的延迟。 但是,如果我删除独立模式的 Initflash()和其他内容,ePWM ISR 将无任何延迟地触发。

    那么、您认为我是否以不正确的方式做了一些事情?
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    萨加尔

    [引用 user="sagar shah54">是的、我使用 GPIO 34测量延迟。 因此、我可以看到、当我使用独立模式时、存在相当长的延迟。 但是,如果我删除独立模式的 Initflash()和其他内容,ePWM ISR 将无任何延迟地触发。

    [/报价]

    需要使用 InitFlash()正确设置闪存以执行(例如等待状态)。

    您的代码中有一些有趣的东西。  我建议将代码煮沸到重现问题所需的最低限度、然后尝试进行调试。  或者、尝试使用 AppNote SPRA958中的代码。  修改代码以启用 ePWM 中断、并查看您是否也看到问题。

    此致、

    David

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

    init Flash()具有 SPR958中的所有参数。
    此外、我还有一个问题-我注意到、当我在 ePWM ISR 中读取 eQEP 寄存器时、它工作正常(不将 ePWM ISR 移动到 Ramfuncs)、但当我从 ePWM ISR 中删除这些 eQEP 寄存器时、ISR 会延迟触发。

    你能建议我应该怎么做吗?

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

    萨加尔

    [引用 user="sagar shah54"]
     
    init Flash()具有 SPR958中的所有参数。
    此外、我还有一个问题-我注意到、当我在 ePWM ISR 中读取 eQEP 寄存器时、它工作正常(不将 ePWM ISR 移动到 Ramfuncs)、但当我从 ePWM ISR 中删除这些 eQEP 寄存器时、ISR 会延迟触发。

    [/报价]

    当您说"延迟触发器"时、我们在这里讨论了什么?  它是几个时钟周期、还是您在谈论许多周期?  下载和不下载仿真器时的行为是否相同?

    您在这里遇到了多种奇怪的行为。  我强烈建议从 AppNote SPRA958中的代码开始、然后从那里开始。  无论您是独立运行还是在 CCS 下载后运行、代码的运行方式都应相同、除非代码中的某个内容未正确初始化且 CCS 正在屏蔽该代码。  ISR 延迟也是一个非常特殊的症状。  器件本身中没有什么会导致这种情况。  它必须来自您的代码、其中另一个 ISR 会阻止相关的 ISR。

    [引用 user="sagar shah54">编译器是否进行了任何优化?
    [/报价]

    编译器可以执行多个级别的优化。  用户可通过编译器构建选项在工程选项中选择这些选项。

    此致、

    David

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

      我正在共享 Picoscope 的图像。

    图1:独立模式下具有不同 TBPRD 的 EPWM 脉冲

    图2: 独立模式下具有恒定 TBPRD 的 EPWM 脉冲

    图3:  闪存中具有不同 TBPRD 的 EPWM 脉冲(非独立)

    那么、您能否解释一下、当我在独立代码中改变 TBPRD 时、是否存在这种奇怪的行为?

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

    萨加尔

    正如 David 所建议的、在独立和仿真模式下、您的应用程序代码的配置方式很可能不一样。

    可能的调试提示:-

    1) 1)如果检测到仿真连接、您在应用程序代码中配置的某些内容是否不同?

    2) 2)您是否已经检查了独立和仿真模式下 SYSCLK 频率是否相同。 我感觉您的 PLL 初始化代码没有在独立模式下执行。

    3) 3)检查 PWMCLK 在独立和仿真模式下是否以相同的频率运行?

    4) 4)您是否使用 CCS GEL 脚本在仿真模式下配置 PLL?

    此致。
    曼诺伊

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

    萨加尔

    您是否成功解决了此问题? 我可以关闭此主题吗?

    此致、

    曼诺伊

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