请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28377D 您好!
我们希望使用 TMS320F28377D SPI 从模式。
我们已使用 NXP ARM MCU (mk60xxxx)设置为 SPI 主设备。
如果我们设置 SCLK - 15KHz,它将正常工作。
但是、如果我们将 SCL 设置为50kHz 或高于50kHz (例如1MHz)、 则它不起作用...
我认为从器件不能接受高 SCLK。 因为 MISO 数据在某些 SCLK (15KHz 到50kHz 之间)下损坏。
请帮帮我~
这是从器件代码。
// 9.1空闲循环
for (;;)//直接坐下来循环
{
BackTicker++;
while (SpiaRegs.SPIFFRX.bit.RXFFST!=1){}
RDATA = SpiaRegs.SPIRXBUF;
}
void SPIA_initialize()
{
//初始化 SPI FIFO 寄存器
SpiaRegs.SPIFFTX.ALL = 0xE040;
SpiaRegs.SPIFFRX.ALL = 0x2044;
SpiaRegs.SPIFFCT.all = 0x0;
//在配置更改之前将 RESET 设置为低电平
//时钟极性(0 =上升、1 =下降)
// 16位字符
//禁用环回
SpiaRegs.SPICCR.bit.SPISWRESET = 0;
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;
SpiaRegs.SPICCR.bit.SPICHAR =(16-1);
SpiaRegs.SPICCR.bit.SPILBK = 0;
//启用主设备(0 =从设备,1 =主设备)
//启用传输(TALK)
//时钟相位(0 =正常、1 =延迟)
//禁用 SPI 中断
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 0;
SpiaRegs.SPICTL.bit.TALK = 1;
SpiaRegs.SPICTL.bit.CLK_PHASE = 0;
SpiaRegs.SPICTL.bit.SPIINTENA=0;
//设置波特率
SpiaRegs.SPIBRR.bit.SPI_BIT_RATE =((200E6 / 4)/ 500E3)- 1;
//设置空闲位
//在断点上停止不会停止 SPI
SpiaRegs.SPIPRI.bit.FREE = 1;
//解除 SPI 复位
SpiaRegs.SPICCR.bit.SPISWRESET = 1;
}
//文件结束。
这是正常且异常的(蓝线不起作用)范围
黄色- SCLK
红色-/Cs
蓝色- MISO
绿色- MOSI