主题中讨论的其他器件: DRV8350
您好!
我的项目将使用 AM263x MCU 配置 TI TPS653850A SPI 器件。
即在 SAFETY_CHECK_CTRL 寄存器中将 ENABLE_DRV 设置为"1"。。
窗口中是否有示例代码供参考?
或者、我的 EVM 是 LaunchPad 器件型号:LP-AM263、是否有用于 评估的 SPI 小板? 我可以将其导入以供参考?
谢谢
Suven
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.
您好!
我的项目将使用 AM263x MCU 配置 TI TPS653850A SPI 器件。
即在 SAFETY_CHECK_CTRL 寄存器中将 ENABLE_DRV 设置为"1"。。
窗口中是否有示例代码供参考?
或者、我的 EVM 是 LaunchPad 器件型号:LP-AM263、是否有用于 评估的 SPI 小板? 我可以将其导入以供参考?
谢谢
Suven
Suven、您好!
适用于 AM263x 的 MCU+ SDK 中提供了 SPI 主器件示例: https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-r5FY9rRaGv/08.05.00.24/mcu_plus_sdk_am263x_08_05_00_24-windows-x64-installer.exe
有关详细信息、请参阅以下 URL:
AM263x MCU+ SDK:8位 MCSPI 性能(TI.com) 和
AM263x MCU+ SDK:32位 MCSPI 性能(TI.com)
遗憾的是、我们目前没有外部 SPI 器件可供您连接到 AM263x LP。
您可以尝试获取 TPS653850A 的评估板。
此致、
Ming
Suven、您好!
我不熟悉 TPS653850A、但所有 SPI 器件的行为都应相同。 您需要将函数定义为浮动:
int32_t rw_tps653850_register (uint16_t r_w、uint16_t reg_addr、uint16_t reg_val、uint16_t* read_val)
{
MCSPI_Transaction spiTransaction;
uint16_t mcspiTxBuffer、mcspiRxBuffer;
int32_t transferOK;
/*启动 SPI 传输参数*/
spiTransaction.channel = 0U;
spiTransaction.count = 1;
spiTransaction.txBuf =&mcspiTxBuffer;
spiTransaction.rxBuf =&mcspiRxBuffer;
spiTransaction.args =空;
mcspiTxBuffer = r_w |(reg_addr << DRV8350_ADDR_SHIFT)| reg_val;
transferOK = MCSPI_transfer (gMcspiHandle[CONFIG_MCSPI0]、&spiTransaction);
if (read_val!= NULL)
* read_val = mcspiRxBuffer;
退货转让;
}
其中
uint16_t r_w 是读取/写入标志、
uint16_t REG_addr 是 SPI 器件地址、
uint16_t REG_val 是要写入 REG_addr 的值、
uint16_t* read_val 是读取数据缓冲区的指针。
以下是对上述定义函数的调用、用于执行 SPI 读取或写入:
/*写入控制寄存器*/
rw_tps653850_register (0、CONTROL_ADDR、CONTROL_VAL、NULL);
/*读回控制寄存器以检查是否正确*/
rw_tps653850_register (0x8000、CONTRAL_ADDR、0、val[CONTRAL_ADDR]);
此致、
Ming
尊敬的 Ming:
非常感谢您对模板的描述。
如以下 tps63850规范所示、该器件使用24位 SPI 帧。
1、我是否知道我是否应该更改 spiTransaction.count = 2 、因为 tps63850正在使用24位 SPI 帧?
2、 spiTransaction.txBuf 的格式是什么? 它是"冗余字节+ CMD 字节+数据字节+ MCRC 字节"还是 "CMD 字节+数据字节+ MCRC 字节+冗余字节"?
3、 spiTransaction.rxBuf 的格式是什么? 它是"冗余字节+ STAT 字节+ R 字节+ SCRC 字节"还是 " STAT 字节+ R 字节+ SCRC 字节+冗余字节"?
谢谢
Suven
Suven、您好!
我在上一帖子中发送给您的函数:
mcspiTxBuffer = r_w |(reg_addr << DRV8350_ADDR_SHIFT)| reg_val;
使用16位数据格式:11位用于 CMD、5位用于数据(用于 DRV8350)
在这种情况下、它应该是8位 CMD 和8位数据。 SPI 硬件应添加 RVC 和 CRC。
简 而言之、spiTransaction.txBuf 和 spiTransaction.rxBuf 均为16位无符号整数、而 spiTransaction.count 保持为1。
此致、
Ming
尊敬的 Ming:
您是说我可以为 我的项目使用 mcspi_performance_32位和 mcspi_performance_8bit 中的 example.syscfg 之一( SPI0中有一个 SPI 从器件)吗?
我发现其中的一些设置不同(即 TX 的 TR 模式和 FIFO 触发电平)。
这就是为什么我要求一个示例.syyconfig 设置、其中 SPI 从器件已连接以供参考。
谢谢
Suven