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.

[参考译文] TMS320F28388D:SCI-A 通信-引导模式配置

Guru**** 2390755 points
Other Parts Discussed in Thread: TMDSCNCD28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1359559/tms320f28388d-sci-a-communication---boot-mode-configuration

器件型号:TMS320F28388D
主题中讨论的其他器件:TMDSCNCD28388D

大家好!

我有关于串行闪存编程器的 SCI 引导模式的一些问题。  

我的目标

使用串行闪存编程器、我 希望 通过与默认引脚不同的引脚、使用 SCI 引导模式对 DSP 进行编程。

问题和背景

我想更改引导配置、以便将不同的引脚用于 SCI 引导配置。 与我正在使用的设置相同:
- f28388d 评估板(TMDSCNCD28388D)
- HSEC180控制卡基板集线站
- USB 转串口转换卡定制

为了执行测试、我决定 按如下方式写入 EMUBOOTPINCONFIG 和 EMUBOOTDEF 寄存器:

0x00000D00 -> FF0F
0x00000D01 -> 5AFF
0x00000D02 ->用处不大/未写入任何内容
0x00000D03 ->无用/未写入任何内容

0x00000D04 -> 4103
0x00000D05 -> FFFF
0x00000D06 -> FFFF
0x00000D07 -> FFFF

通过这种方式、我将使用 GPIO 35和36进行 SCI 引导、特别是第一个用于 SCIRXDA、第二个用于 SCITXDA。  

所发生的情况是、在芯片重置后、我使用以下 bash 命令通过串行闪存编程器通过这些 GPIO 与 DSP 进行通信:  
serial_flash_programr.exe -d f2838x -k flash_kernel_c28x_dual_ex1_c28x1.txt -a led_ex1_c28x_dual_blinky_cpu1.txt -m flash_kernel_c28x_dual_ex1_c28x2.txt -n led_ex1_c28x_dual_blinky_cpu2.txt -b 9600 -p COM12 -v


问题是、如图所示、在 CPU1中加载内核后、程序仍然卡在自动波特率下、我认为它会显示不同的替代选项的串行闪存编程器菜单。 这很奇怪、因为在加载内核之前正确执行了自动波特。  通信似乎可以正常工作、但在加载内核后我无法执行任何操作。

我对如何继续持怀疑态度、我真的很想知道如何解决这个问题。

此致、
卢卡·普雷迪耶里

 

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

    尊敬的 Luca:

    您是否调整了在 flash_kernel_c28x_dual_ex1_sci_flash_kernel_cpu1.c 中传递给 sciGetFunction ()的引导模式? 默认情况下、SCI_BOOT 模式传递给该函数、使用 GPIO 28和29。 如果使用 GPIO 35和36、则应将 SCI_BOOT_alt2作为引导模式进行传递。 我认为、在内核通过 GPIO 35和36下载到器件后(由于上述配置)、它会开始运行内核代码、并且 GPIO 28和29会被重新配置为 SCI 通信引脚。  

    此致、

    斯凯勒

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

    您好、Skyler:

    首先、感谢快速回答。
    我执行了您在代码 sciGetFunction ()中关于 SCI_BOOT_ALT_2的操作。 我重建了工程(flash_kernel_c28x_dual_ex1_c28x1)、并使用以下内容转换了 flash_kernel_c28x_dual_ex1_c28x1.out 文件:

    hex2000.exe -boot -sci8 -a -o flash_kernel_c28x_dual_ex1_c28x1_3536pins.txt  flash_kernel_c28x_dual_ex1_c28x1.out

    以将其作为 sci8文件传递给 DSP。 然后,我打电话:

    serial_flash_programr.exe -d f2838x -k flash_kernel_c28x_dual_ex1_c28x1_3536pins.txt -a led_ex1_c28x_dual_blinky_cpu1.txt -m flash_kernel_c28x_dual_ex1_c28x2.txt -n led_ex1_c28x_dual_blinky_cpu2.txt -b 9600 -p COM12 -v

    同样、在加载内核后、DSP 会卡住。 是否缺少使用 hex2000.exe 转换文件的信息?  

    此致、
    卢卡

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

    尊敬的 Luca:

    内核加载完成且自动波特失败后、您是否可以尝试暂停 DSP 的执行并加载与 flash_kernel_c28x_dual_ex1_c28x1.out 关联的符号? 我想查看器件是运行内核代码、自动波特锁定失败、还是器件由于其他原因无法分支到内核。

    此致、

    斯凯勒

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

    您好,Skyler,这是已加载符号的屏幕截图。 似乎代码卡在 sciGetFunction ()中。

    再次感谢大家的耐心等待、

    卢卡

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

    尊敬的 Luca:

    您是否可以尝试设置 EMU_BOOTPINCONFIG 和 EMU_BOOTDEF 寄存器、如下所示:

    0x00000D00 -> FFFF
    0x00000D01 -> 5AFF
    0x00000D02 ->用处不大/未写入任何内容
    0x00000D03 ->无用/未写入任何内容

    0x00000D04 -> 0041

    此致、

    斯凯勒

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

    您好、Skyler:

    我尝试了很多工作、在一些不同的项目之间迷路了、我正在调试错误的串行闪存编程器。

    无论如何、真正的问题是函数中缺少 SCI_BOOT_alt2宏。

    谢谢你的时间和解决方案!