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.
您好!
最近、我为 CPU2制作了一个项目、同时我拥有 CPU1的现有代码。
在 CPU1上、我使用 PWM、ADC 和 INputxbar、而我在 CPU2上使用 SPI 和 USART。
如果我不将这行代码添加到 CPU1代码中-"InputXbarRegs.INPUT56ELECT = 8"、则代码在两个 CPU 上都能正常工作。
但是、当我将上述行添加到 CPU1代码时、CPU2代码会挂起、并且它一直等待 SPI send 或 USART send 函数。
请告诉我 CPU1上的 InputXbarRegs.INPUT5SELECT 和 CPU2上的 SPI/USART 之间的链接是什么、我有一个需要同时使用这两个属性(CPU1上的 Xbar 和 CPU2上的 SPI/USART)的应用程序。
但我不能这样做。
请帮助我我做错了什么或是否有任何冲突。
我还有一个疑问。 当我在 CPU1上使用"IPCBootCPU2 (C1C2_Brom_bootmode_boot_from_flash);"函数时、只有我能够在没有调试器的情况下运行这两个代码、当我使用该函数时、我无法使用调试器运行代码。 此外、还可以了解此函数的需求。
请尽快重放。
尊敬的 Sanjay:
您能告诉我您使用的是什么封装、以及 SPI 和 USART 使用哪些引脚吗?
谢谢!
Luke
要回答您的第二个问题、此函数应仅在独立模式下工作、因为调用此函数将导致器件等待仅在独立模式下发生的事件。
我正在使用 TMS320F28377DPTPS 和 SPIA 引脚(SPICLKB-63、SPISIMO-64、SPISOMI-65、SPI ENABLE-66)、USART1引脚(RX_PIN-85、TX_PIN-84、RS485_ENABLE_PIN-86)、USART2引脚(RX_PIN-11、TX_PIN-10、RS485_ENABLE_PIN-94)
此处的引脚86和94是 GPIO 引脚
请告诉我、什么是"独立模式"、在没有调试器的情况下运行是"独立模式"?
尊敬的 Sanjay:
是的、在没有调试器/从闪存引导的情况下运行被视为独立模式。
您能否验证 GPIO8的 GPIO 多路复用器选项没有选择 SCITXDA? 配置 InputXbar 以选择不同的 GPIO 时、此问题是否仍然存在?
谢谢!
Luke
是的、我已验证、GPIO8的引脚多路复用器被选为输入引脚。
我没有尝试选择不同的 IO、因为在我的应用中、Xbar 连接到了 GPIO 8。
您在 SPI/SCI 中使用哪个 GPIO 编号?
INPUTXBAR (INPUTXBAR5)的 INPUT5唯一的缺点是它直接连接到 EPWM 同步输入。
在此器件上、默认为 EPWM1 PHS 同步的触发器。 如果您没有 EPWM1 PHSEN、那么您应该可以使用 ePWM。
对于 PINMUX、 可能您的设置中存在一些错误。 您是否已将 GPIO8配置为 GPIO 或外设功能? 值得检查 GPIO Pinmux 选项的 GMUX 和 MUX 设置。
在 CPU2上、您如何知道它正在挂起以及它在哪一行代码上挂起? 它在等待数据接收吗?
它在 UART 上发送的数据和 SPI 上接收的数据时挂起
我正在使用 TMS320F28377DPTPS 和 SPIA 引脚(SPICLKB-63、SPISIMO-64、SPISOMI-65、SPI ENABLE-66)、USART1引脚(RX_PIN-85、TX_PIN-84、RS485_ENABLE_PIN-86)、USART2引脚(RX_PIN-11、TX_PIN-10、RS485_ENABLE_PIN-94)
还请说明、我想编写可以与调试器一起运行和不使用调试器的通用代码、如何使用"IPCBootCPU2 (C1C2_Brom_bootmode_boot_from_flash);"函数或者是否有其他方法、因为使用 调试器时我需要注释 IPCBootCPU2 (C1C2_Brom_bootmode_boot_from_flash);函数、如果不使用调试器运行、我需要注释掉它。
您是否能够显示它在您的软件中挂起的代码行?
是100/176封装上的这些引脚编号还是 GPIO 编号?
我相信您的观察是正确的。 您需要为调试器注释掉。 本杰明·科利尔 请你纠正我的错误。
您好!
是的、您需要使用 IPCBootCPU2 (C1C2_Brom_bootmode_boot_from_flash)线路在 CPU2上运行代码、而无需 JTAG 调试探针。 在连接 JTAG 调试探针的情况下运行代码时、最简单的方法是在该行添加注释以运行代码。
您可以在以下 E2E 博文中找到有关此函数如何工作以及您需要它的原因的更多详细信息: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1211804/tms320f28375d-how-to-force-cpu2-to-go-into-main-after-reset
还可以通过复位 CPU2来连接 JTAG 调试探针来运行程序、以便 CPU1可以使其脱离等待状态、这将允许 CPU1越过 IPCBootCPU2 (C1C2_Brom_bootmode_boot_from_flash)行。
此致、
Ben Collier
Sanjay、您好、此问题是否已解决?
感谢问题已解决。 我从这个位置删除了 GPIO 引脚初始化、并在其他地方使用了它、所以它不会引起任何问题。