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.
工具/软件:Code Composer Studio
我们尝试使用 DRV8301并进行 SPI 通信、但无法接收来自 MISO 的消息。
MCU:TMS320F28377D
CLK:2.5MHz
EN_GATE 设置为高电平。
黄:MISO
绿色:MOSI
蓝色:CLK
LED:CS
SPI 设置代码是
void SPI_init()
{
SPI_disableModule (SPIB_BASE);
SPI_setConfig (SPIB_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA0、
SPI_MODE_MASTER、2500000、16);
SPI_enableFIFO (SPIB_BASE);
SPI_resetTxFIFO (SPIB_BASE);
SPI_enableTalk (SPIB_BASE);
SPI_disableLoopback (SPIB_BASE);
SPI_setEmulationMode (SPIB_BASE、SPI_emulation_free_run);
SPI_enableModule (SPIB_BASE);
}
以及我们的 DRV8301原理图
问题出在哪里? 您能帮我们读取寄存器吗?
感谢您的快速回复。
此致。
您可以查看以下链接、其中包含 DRV8301的参考硬件设计文件和实施代码。
https://www.ti.com/tool/BOOSTXL-DRV8301
如果您使用基于 driverlib 的配置、请参考以下代码。
//必须在配置 SPI 之前将其复位
SPI_disableModule (obj->spiHandle);
// SPI 配置。 使用500kHz SPICLK 和16位字大小、25MHz LSPCLK
SPI_setConfig (obj->spiHandle、device_LSPCLK_FREQ、SPI_PROT_POL0PHA0、
SPI_MODE_MASTER、400000、16);
spi_disableLoopback (obj->spiHandle);
SPI_setEmulationMode (obj->spiHandle、SPI_emulation_free_run);
spi_enableFIFO (obj->spiHandle);
SPI_setTxFifoTransmitDelay (obj->spiHandle、0x10);
SPI_clearInterruptStatus (obj->spiHandle、SPI_INT_TXFF);
//配置完成。 启用模块。
spi_enableModule (obj->spiHandle);
你好,罗燕明
感谢您的回复。
我有疑问
正如您看到我对 DVDD AVDD 的回复、对吗?
DVDD 电压看起来像正弦波、Vrms 几乎为3.714v。 对吗?
感谢你的答复。
-加拉姆公园(Garam Park)
我们已尝试使用您的代码、但 MISO 仍然无法正常工作。
加拉姆帕克
您可以查看 DRV8301的参考原理图和数据表、确保 DRV8301首先运行良好。 我将您的主题转发给 DRV 器件专家。
您好、Garam、
是的、AVDD 和 DVDD 的这些波形是根本原因。 遗憾的是、这些是在内部生成的、因此没有太多可检查的内容。 大多数时候、其原因是:
这是按概率顺序排列的。
组装问题:
这一个很难证明、并且大多是系统检查。 我建议:
在您尝试其中的一些方法后、我们可以查看您的布局、看看我们是否可以进行一些改进。
最棒的
Cole
感谢您的回复。
我们已经解决了这个问题。
我们将 AVDD、DVDD、GVDD 的电容换成了更高的电容。
然后、我们得到稳定的 AVDD、DVDD、GVDD 的结果。
但我们仍然是问题所在。
GH_X 输出为无。 因此、我们已将自举电容器更改为低于以前的电容器。
我们解决了所有问题。
谢谢你。