您好!
我有一个外设、需要在向其写入命令后更改 SPI 时钟频率、下图中也是如此。
是否有一种使用 TI 库实现此目的的简单方法?
谢谢、
Kishore。
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.
您好!
我有一个外设、需要在向其写入命令后更改 SPI 时钟频率、下图中也是如此。
是否有一种使用 TI 库实现此目的的简单方法?
谢谢、
Kishore。
您好 Kishore、
要切换 SPI 时钟速度、您需要先关闭 SPI 接口、然后使用新的时钟速率重新打开 SPI 接口。 这可以通过更改 SPI 开放参数中的.bitrate 来实现。
由于您提到切换期间不得将 CS 信号取消置位、因此确保 CS 信号成为软件控制的 GPIO 的最简单方法。 为此、请使用软件控制的 CS 将 SPI 外设设置为三线模式。 SPI CS 设置在 spiCC3220SDMAHWAttrs 结构中的 CC3200SF_LAUNCHXL.c 中完成。 请使用以下设置:
{ baseAddr = GSPI_base、 .intNum = INT_GSPI、 .intPriority =(~0)、 spiPRCM = PRCM_GSPI、 .csControl = SPI_SW_CTRL_CS、 csPolarity = SPI_CS_ACTIVELOW、 .pinMode = SPI_3PIN_MODE、 .TurboMode = SPI_Turbo_OFF、 scratchBufPtr =&spiCC3220SDMAscratchBuf[CC3220SF_LAUNCHXL_SPI1]、 defaultTxBufValue = 0、 .rxChannelIndex = UDMA_CH6_GSPI_RX、 txChannelIndex = UDMA_CH7_GSPI_TX、 .minDmaTransferSize = 10、 .mosipin = SPICC32XXDMA_PIN_07_MOSI、 MISO 引脚= SPICC32XXDMA_PIN_06_MISO、 clkPin = SPICC32XXDMA_PIN_05_CLK、 csPin = SPICC32XXDMA_PIN_NO_CONFIG }
然后、在 同一文件的 gpioPinConfigs 结构中配置 GPIO。 如果您希望在 PIN8上保持 CS、则将 GPIO17配置为输出。 这样,您就可以使用 GPIO_write()在代码中需要时将 CS 置为有效。
请告诉我您是否需要进一步澄清或对该主题有进一步的问题。
此致、
Michael
您好、Michael、
1)我使用引脚5 (GPIO_14)作为 SPI 时钟,能否在此引脚上生成 PWM 波形。
如果我可以在同一条线路上使用 PWM、请建议我怎么做。
2) 2)另一种方法是、我将所有4个引脚用作 GPIO、而不是使用 SPI 库。 我能够写入和读取数据、主要 是我可以在写入0xC2命令后改变时钟、问题是 GPIO 切换不一致、我不符合计时要求、每个周期需要32us。 有时我得到32us、有时我得到31.8us。
请查看以下快照以获取相同的快照
代码中的延迟在切换之间是相同的。 不过、我还是看到了时间差异。
是因为 GPIO_toggle 函数添加了延迟。 如果是、您可以建议我使用其他方法吗?
谢谢、
Kishore。