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.

[参考译文] TMS320F28377D:Master (NXP-ARM M4)-28377 SPI 从站,如果增加 MASTER#39;s clk,请勿工作。

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320F28377D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/754993/tms320f28377d-master-nxp-arm-m4---28377-spi-slave-if-increase-master-s-clk-do-not-working

器件型号: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

 

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


    您是否尝试弄清 MISO 引脚为何悬空(它既不是高电平(也不是低电平)? 想知道您是否存在某种硬件问题。

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Manoj、您好、感谢您的回复

    我已经测试 MISO 引脚上拉和下拉,但结果相同。
    我认为 SPI 不需要上拉或下拉。

    如果 MCU 在中断或主函数中有很多需要处理的问题,SPI 从器件是否无法获得高时钟?

    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、这很有可能。 SPI 应该能够在比您看到的更高的波特率下运行。 因此、SPI 模块本身没有此限制。 限制可能来自处理 SPI 数据接收/传输的可用带宽。

    此致、
    曼诺伊