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.

[参考译文] RTOS/MSP432P401R:SPI 主器件卡住/ SPI 从器件始终发送最后一个字节

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/627233/rtos-msp432p401r-spi-master-stuck-spi-slave-always-send-last-byte

器件型号:MSP432P401R

工具/软件:TI-RTOS

大家好、

在我的应用中、msp432需要设置其他器件并通过 SPI 与主机通信、并使用内部 ADC 测量电压。

因此、我修改了 spilopback 示例以实现这些功能。

删除 slavethread

在主线程处添加 SPI/GPIO/ADC 代码

我的应用中有4个 SPI (2个主模式/2个从模式、UCA0/A2/B0/B2)

当代码运行时、它将通过2个主 SPI 来设置外部器件。 然后代码将进入 while (1)循环。

在 while 环路中、主机 SPI (从模式)将在 SPI_HOST_EN (msp432 p1.0)为高电平时准备与主机通信。

在我的实验中、

主控模式 SPI 卡在

transferOK = SPI_transfer (SPI_handle_dac1、&SPI_TRANS_dac1); 

转动比特率后、代码可转到下 一行。 为什么? 我的比特率范围低于10MHz。

在 while 环路中、如果主机将 SPI_HOST_EN 拉为高电平并将 clk 发送到 msp432、则 msp432始终发送 TX 缓冲区的最后一个字节(8字节)。

 我的代码中是否存在任何配置错误或对 msp432有一些限制?

在 MSP_EXP432P401R.c 中、我需要添加 SPI 配置。 但我发现 dma.h 中 UCA0的 TX/rxDMAChannelIndex 仅具有 DMA_CH0_EUSCIA0TX/DMA_CH1_EUSCIA0RX。

 因此、如果我想使用 UCA0、那么只有 DMA_CH0_EUSCIA0TX/DMA_CH1_EUSCIA0RX 可用吗?

e2e.ti.com/.../0116.main.ce2e.ti.com/.../3731.MSP_5F00_EXP432P401R.ce2e.ti.com/.../MSP_5F00_EXP432P401R.h

e2e.ti.com/.../Board.h

e2e.ti.com/.../main_5F00_tirtos.c

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

    让我看一下您的代码、我会给您回复。

    谢谢、

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

    你发现什么问题了吗?
    是否有使用 SPI 的规则? 在另一个示例中、如果我更改 DMA 通道、SPI 将不起作用。
    我们的项目期限即将到来、我非常感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     我很抱歉以前没有回答。 仅对于 SPI、这些是唯一可用的 DMA 源:

    您可能还想查看此主题: e2e.ti.com/.../538242

     我修改了 spilotopback 示例、并成功测试了这些源是否正常工作这些是我的板级配置文件、供您参考。

    board.h

    MSP_EXP432P401R.c

    MSP_EXP432P401R.h

     希望我的回答不会使您的项目受到威胁、如果您有其他问题、请告知我们。

    此致、

      David

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

    你(们)好

    您能否提供 main.c 或其他主函数文件?

    如何测试这些 SPI 端口?

    您仅使用 SPI_B0/1/2/3。 在同一个文件中使用 SPI_AX/Bx (某些主器件/某些从器件)是否非法?

     

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

    您好!

     请查找随附的所有 项目文件。 没有限制 、因此 我更新了板级配置文件、使其使用 SPI B 作为主器件、使用 SPI A 作为从器件。

     希望这对您有所帮助。

       David