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.

[参考译文] CCS/SM320F28335-EP:F28335:无法达到 SPI 时钟的 gt;10MHz

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/902156/ccs-sm320f28335-ep-f28335-unable-to-reach-spi-clock-to-10mhz

器件型号:SM320F28335-EP

工具/软件:Code Composer Studio

我将 LSPCLK =25MHz 时的100MHz SYSCLK 连接到 SPIA 模块作为主器件来驱动 DAC12。  

下面是配置。

SpiaRegs.SPICCR.bit.SPISWRESET=0;//保持复位状态不会影响配置寄存器。
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;// DAC12获取下降沿 SpiaRegs.SPICCR.bit.SPILBK
= 0的数据;//不回路
INTaRegs.SPICCR.bit.SPICHAR = 0xF;// 16位

SpiaRegs.SPCLL.bit.SPICTRL = 0
;//禁用 Spiarit_0相位/SPICTRIP.SPICK=0;// SPICK=SPICTRIP.SPICK.SPICK.SPICK.SPICK.SPICK=0。
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1;//主
SpiaRegs.SPICTL.bit.TALTALTAL=1;//在 GPIO 端启用 SPI
SpiaRegs.SPICTL.bit.SPIINTENA=0;//无中断。

SpiaRegs.SPICCR.bit.SPISWRESET=1;//从复位中释放。

SpiaRegs.SPIPRI.bit.FREE = 1;//设置断点以使断点不会干扰 xmission
//--- FIFO,不需要
SpiaRegs.SPIFFTX.All=0x8000;// 0b1000 0000 0000 0000 0000 0000禁用中断
SpiaRegs.SPIFFRX.All=0x201f;// 0b0010 0000 0001 1111
SpiaRegs.SPIFFCT.All=0x0;
//--- 100MHz=>LSPCLK=25MHz、SPICLK =理想值12.5MHz、但获得类似的6MHz。
SpiaRegs.SPICCR.bit.SPISWRESET=0;
SpiaRegs.SPIBRR = 2;
SpiaRegs.SPICCR.bit.SPISWRESET=1; 

我在 SPI 上获得大约6.4MHz 的 SCLK、但无法将 SCLK 提高到大约10MHz。 阅读材料(包括 SPRUEU3A)后、我找不到任何东西来解决此问题。 我熟悉 https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/654117?TMS320F28335-Maximum-SPI-speed 、但不清楚他为解决问题所做的工作。  

我愿意接受建议...

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

    您好 Richard、

    您能否澄清一下、您是在谈论6.4MHz 的有效数据速率(这将指向吞吐量问题)、还是您所指的 SPICLK 频率为6.4MHz (这将指向时钟配置问题)?

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

    SPICLK 频率似乎一直保持在6.4MHz、而不是12.5MHz、SpiaRegs.SPIBRR = 2、 100MHz SYSCLK、LSPCLK =25MHz

    R.  

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

    Richard、

    感谢您对此进行澄清。  在器件数据表(SPRS581D)的"串行外设接口(SPI)模块(SPI-A)"部分、注意到当 SPIBRR = 0、1或2时、SPI 波特率(SPI 时钟)为 LSPCLK/4。  当 LSPCLK = 25MHz 时、这将提供6.25MHz 的 SPI 时钟。  要获得更快的 SPI 时钟、您需要增加 LSPCLK 频率。

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

    啊!!! 我真的错过了数据表上的这个问题!!!!

    感谢您的澄清。