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.

[参考译文] TMS320F28069:连接到 UART 的蓝牙在独立模式下不工作

Guru**** 2605765 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/675023/tms320f28069-bluetooth-connected-to-uart-not-working-in-standalone-mode

器件型号:TMS320F28069
Thread 中讨论的其他器件:controlSUITE

你(们)好

 我们参考28069 launchpad 原理图构建了28069原型。 我们还开发了一个代码

基于 SCI-echoback 示例。 除了 UART 、我们还使用 ADC 和 ePWM 外设。 传输的数据  

通过 UART 接收数据、并通过蓝牙在移动串行终端中接收数据。

 除了在蓝牙串行终端中接收到的数据外、该应用在仿真器模式和独立模式下都可以正常工作。

在独立模式下、所有其他功能正常工作、但在蓝牙串行终端中未接收到数据。 请帮帮我

解决此问题。

谢谢

Lenin。

  

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

    您能否检查电路板在独立模式下的供电情况?

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

    你好、Ken

     该电路板由独立的5V 电源供电、后跟一个3.3V LDO。 为 HC-05供电时使用相同的5V 电源   

    蓝牙模块。 我们将 SCI-A 用于蓝牙模块。

    谢谢

    Lenin。

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

    那么、您使用的是5V-3.3V 转换器吗? 我也使用3.3V 电源测试过 HC-05、它运行良好。 您是如何将模块与控制器连接的?

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

    是的、对于微控制器、我们使用的是5V 至3.3V 转换器。 对于 HC 05,直接提供了用于 MCU 的相同5V 电源。 无论如何、它在仿真器模式下工作正常... 仅在独立模式下、它无法正常工作。 然而、所有其他功能、ADC/PWM 工作
    还不错…

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

    [引用 user="Lenin Prakash"]不管怎样,它在仿真器模式下工作正常[/quot]

    这意味着、当调试器连接时、对吧?

    [引用 user="Lenin Prakash"]只有在独立的情况下,它不起作用

    变速器不工作或 Txn 和 Rxn 都不工作? 这些是基于 ISR 还是基于轮询?

    此致、

    Gautam

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

    是的、在仿真器中、调试器已连接。 调试器使用 C2000 Launchpad 构建、对 USB 至 J-Tag IC 和 MCU 之间的隔离器进行了去焊、以便访问 J-Tag 引脚(TRST、TCK、TDI、TDO、TCLK)。 这些引脚连接到 MCU 板的相应引脚。 它运行良好。 在我们的电路板中、还有一个引导开关、用于在仿真器模式和独立模式之间进行切换。

    在当前应用中、我们仅进行线性通信(MCU 到 HC-05)。 我们不使用中断。 我们每隔10秒就会在 UART 中写入数据。

    谢谢
    Lenin。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先、您是否检查了其余代码是否在独立模式下工作? 验证 GPIO 切换或某些其他功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Gautam

    我在之前的所有博文中都已经提到、除了蓝牙、所有其他功能、包括 ADC、PWM 和其他 GPIO、都可以按预期工作。

    谢谢
    Lenin。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否在 DSO 上探测 SCIATX 引脚的周期性10秒数据? 您是否观察到同样的情况?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Ken

    我尝试在28069 Launchpad 中以独立模式运行 SCI 回送程序。 我能够做到这一点
    将28069_RAM_lnk.CMD 更改为 F28069.CMD

    和使用

    memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);

    如中所述

    e2e.ti.com/.../2433393

    它在仿真器模式和独立模式下都工作
    而不更改 launchpad 中给出的引导开关的位置。

    我们开发的应用代码基于 echoback 示例、其中添加了 ADC 和 PWM 函数。
    但是、此剂量不能完全正常工作...

    在某种意义上、代码被部分执行。 在 for 循环工作之前完成的一些 GPIO 初始化(LaunchPad 中的 LED 按预期工作)、但代码的其余部分不会执行。

    代码似乎没有完全复制到闪存中。

    请帮助解决问题。

    谢谢
    Lenin。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它在仿真器模式和独立模式下都工作
    而不更改 launchpad 中给出的引导开关的位置。

    我们按照与上述相同的步骤在 launchpad 中以独立模式运行我们的应用程序。

    我们开发的应用代码基于 echoback 示例、其中添加了 ADC 和 PWM 函数。
    但是、此剂量不能完全正常工作...

    在某种意义上、代码被部分执行。 在 for 循环工作之前完成的一些 GPIO 初始化(LaunchPad 中的 LED 按预期工作)、但代码的其余部分不会执行。

    代码似乎没有完全复制到闪存中。

    请帮助解决问题。

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

    我尝试在28069 Launchpad 中以独立模式运行 SCI 回送程序。 我能够做到这一点
    将28069_RAM_lnk.CMD 更改为 F28069.CMD

    和使用

    memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);

    如中所述

    e2e.ti.com/.../2433393

    它在仿真器模式和独立模式下都工作
    而不更改 launchpad 中给出的引导开关的位置。

    我们在 launchpad 中尝试了相同的过程来运行我们的应用程序。

    我们开发的应用代码基于 echoback 示例、其中添加了 ADC 和 PWM 函数。
    但是、此剂量不能完全正常工作...

    在某种意义上、代码被部分执行。 在 for 循环工作之前完成的一些 GPIO 初始化(LaunchPad 中的 LED 按预期工作)、但代码的其余部分不会执行。

    代码似乎没有完全复制到闪存中。

    请帮助解决问题。

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

    在 main()中,检查函数调用的顺序。 例如,在工作车间代码 InitPieCtrl()中,必须在 InitWatchdog()之前发生,而 InitFlash()在 memcpy 之后发生:

    //-- CPU 初始化
    InitSysCtrl(); //初始化 CPU (文件:sysctrl.c)
    InitGpio(); //初始化共享 GPIO 引脚(文件:gpio.c)
    InitPieCtrl(); //初始化和启用 PIE (文件:PIECTRL.c)
    InitWatchdog(); //初始化看门狗计时器(文件:watchdog.c)

    //---复制所有需要从 RAM 运行的闪存段(使用来自 RTS 库的 memcpy())

    //段 secureRamFuncs 包含从 CSM 安全 RAM 运行的用户定义代码
    memcpy (&secureRamFuncs_runstart、&secureRamFuncs_loadstart、(uint32)&secureRamFuncs_loadsize);

    //--初始化闪存和 OTP
    InitFlash(); //初始化闪存

    //--外设初始化
    InitAdc(); //初始化 ADC (文件:adc.c)
    InitEPwm(); //初始化 ePWM (文件:ePWM.c)
    InitECap(); //初始化 ECAP (文件:ecap.c)
    //InitDma(); //初始化 DMA (文件:dma.c)
    InitCla(); //初始化 CLA (文件:cla.c)

    作为参考、F28069技术讲座可在以下网址找到:

    processors.wiki.ti.com/.../C2000_Archived_Workshops

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

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

    初始化仅按您所述完成。 但是问题仍然存在。 代码的起始行也在仿真模式下执行
    作为独立模式..

    似乎未执行完整代码... 如果我需要在 F28069.cmd 文件中进行任何更改.. 要使用闪存中的所有扇区...
    我怀疑目前所有闪存扇区都没有被利用...

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

    我将 F28069.cmd 更改为 F28069_nonBIOS_flash.cmd (在 spra9581中提供)。 但代码仍然只能在仿真模式下工作、而不能在独立模式下工作。

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

    下面是一个快速解决方案(不确定您的舒适度)、只需在此示例项目上构建您的应用程序:"flash_f28069"
    C:\ti\controlSUITE\device_support\f2806x\v151\F2806x_examples_ccsv5\flash_f28069

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

    我在我的项目中使用相同的 F28069.cmd 文件(在您提到的项目中使用)它适用于示例项目。 但在我的应用中
    代码似乎没有完全执行。 尽管它在仿真模式和独立模式下都能工作。

    我使用了另一个 F28069_nonBIOS_flash.cmd。然而、现在应用程序在仿真模式下工作正常
    而不是独立的。

    F28069.cmd 似乎只使用闪存的扇区 A。。。 F28069_nonBIOS_flash.cmd 使用所有扇区...

    然而问题仍然存在。

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

    选择链接器 cmd 文件时需要小心谨慎。 F28069.cmd 被设计成与 controlSUITE 中的所有项目一同工作。 F28069_nonBIOS_flash.cmd (与实验12中的链接器 cmd 文件非常相似)设计用于单个工程。 请注意、在此链接器 cmd 文件中、所有闪存扇区都被组合在一起、这可能解释了当仿真器被连接时、您的应用程序运行的原因。 如果在未连接仿真器时无法正常工作、您可能需要仔细检查 CodeStartBranch.asm 的链接位置。 请参阅《车间维修手册》中的实验12说明:

    processors.wiki.ti.com/.../C2000_Archived_Workshops

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

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

    你好、Ken

      我已经按照实验12手册中提到的所有步骤操作、所有步骤都可以按照实验12手册的以下步骤操作

    "24. 现在执行 Run  Go Main。 代码应在 main ()例程的开头停止。 如果您成功地到达该点、则会确认闪存已正确编程、引导加载程序已正确配置为跳转到闪存模式、并且 codestart 段已链接到正确的地址

    然而、代码仍然没有完全独立执行。 独立运行。 仅执行少量初始化代码。 但它在仿真模式下工作良好。

    我当前正在使用 F28069_nonBIOS_flash.cmd。

    在28069.cmd 中、只有部分执行在仿真和独立模式下发生

    F28069_nonBIOS_flash.cmd - 在这种情况下、在仿真模式下可以正常工作... 但在独立模式下部分执行...

    我是否能有一个与控制套件项目兼容并使用闪存所有扇区的正确链接器文件?

    谢谢

    Lenin。

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

    我将收到如下警告消息。


    创建输出段"ramfuncs"而不存在段规范C/C++问题


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

    在我之前发送给您的研讨会链接中、请参阅实验12。 打开 Lab_12.cmd 文件、在 SECTIONS 区域中、请注意如何指定 secureRamFuncs。

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

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

    你好、Ken

     最后 、我从零开始基于 SPRA9581项目构建了我的应用、该项目在仿真模式和独立模式下都能正常工作。

      但是、如何使这个链接器文件 F28069_flash_nonbios.cmd 或 Lab12.cmd (这利用了所有闪存扇区)与控制套件工程兼容尚待解决。

    这将有助于进行新的开发工作。

    谢谢

    Lenin。

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

    从我之前的帖子中- F28069.cmd 被设计用于处理 controlSUITE 中的所有项目。 F28069_nonBIOS_flash.cmd (与实验12中的链接器 cmd 文件非常相似)旨在与单个特定项目一同工作。 也就是说、F28069.cmd 在所有示例中是通用的、但它不一定与 controlSUITE 之外的项目兼容。 如果您想将 controlSUITE 中的 F28069.cmd 文件用于您的特定项目、您需要对其进行相应的修改(例如为您的应用组合闪存块)。 正如您指出的、应用报告和实验课程.cmd 文件可以与您的项目正常运行。 同样、这些.cmd 文件可能适用于也可能不适用于所有 controlSUITE 示例。 因此、我不建议在 controlSUITE 示例中使用这些.cmd 文件。 您需要开发特定于项目的链接器.cmd 文件。

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

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

    我们上次听说过您、已经有一段时间了。 因此、我们假设您能够解决您的问题。 如果情况并非如此,请拒绝此解决方案或回复此主题。 如果此主题被锁定、请制作一个描述问题当前状态的新主题。 谢谢你。

    - Ken