主题中讨论的其他器件:TMS320F28388D
最近、我将调整28388D、通过 SPI 控制 SD 卡的读取和写入操作。
它涉及发送超过74个时钟周期。
请告诉我、28388D 的一个时钟周期、我们有多少。
要发送超过74个时钟周期,我想使用 device_delay_US();来实现。
来询问
期待您的回复!
谢谢
Vince
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.
最近、我将调整28388D、通过 SPI 控制 SD 卡的读取和写入操作。
它涉及发送超过74个时钟周期。
请告诉我、28388D 的一个时钟周期、我们有多少。
要发送超过74个时钟周期,我想使用 device_delay_US();来实现。
来询问
期待您的回复!
谢谢
Vince
Vince、
如果您希望将虚拟 SPI 时钟发送到从器件以使从器件到主器件的移位数据、则需要从 SPI 主器件发送虚拟数据、如下所示。 使用 DEVICE_DELAY_US 函数不会将 SPICLK 发送到从器件、它有助于 C28x CPU 等待指定的时间。
当 SPI 配置为与8位字符字配合使用时、您需要发送10个虚拟字节来提供80个 SPICLK 脉冲。
for (i=0;i<10;i++)
{
SPI_writeDataBlockingNonFIFO (SPIA_BASE、0x00); //发送虚拟数据以接收状态。
}
此致、
曼诺伊
谢谢
还有一个问题、我想问您。
在28388D 中、我要向 SD 卡发送命令、然后读回 SD 卡的响应。 是否可以使用以下两个函数?
uint16_t CMD0[6]={0x40、0x00、0x00、0x00、0x00、0x00、 0x95};
for (i=0;i<6;i++)//send cmd0
SPI_writeDataBlockingNonFIFO (spic_BASE、CMD0[i]);
R1 = SPI_readDataBlockingNonFIFO (spic_BASE);
R1用于接收 SD 卡的响应值。
目前、程序正在运行、我收到的 R1=0X00FF。
该返回值是否正确?
说明:
SD 卡的大小为64GB、速度为10级
主芯片是 TMS320F28388D
通信接口为:***
期待您的回复
谢谢
Vince