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.
工具/软件:
您好、
我在电路板上运行 MSP430FR5969器件。 我尝试以在示波器上观察到的速度运行 SPI 事务。
首先,这里是我的代码片段:
在这种情况下、我正在使用 P1OUT 位3作为我的芯片选择、并尝试尽快发送3) 8位字。
这是我在示波器上观察到的情况。
如您所见、8位写入之间存在较大的延迟(6us)。
根据上面的代码、我想知道这是否有意义、如果可能、我可以做些什么来加快速度?
我无法分辨示波器显示的内容:时钟或数据。
此外、MCLK 和 SPI 时钟之间的关系非常重要。 通常、MCLK 远大于 SPI 时钟、因此 CPU 可以轻松跟上时间。 因此时钟配置很重要、但您没有展示。
哦、如果确实如此、清除 CS 可能会失败、因为它不会等待数据按时钟输出。
示波器显示时钟。
我刚刚进行了检查并注意到、当 SPI 时钟为2MHz 时、MCLK = 1MHz -这可能是问题的一部分。 THX
感谢 CS、我想我很幸运、因为延迟...
我想不出有什么好的理由让 DIVM 是8。
也就是说、想想硬件正在做什么。 它开始空闲、然后将数据写入 TXBUF。 这将快速传输到输出移位寄存器中、并再次设置 TXIFG。 这意味着您可以从对 TXBUF 进行两次盲写入开始。 等待 TXIFG 执行第三个。 例如(大致):
TXBUF = data; TXBUF = data; while(!(UCB0IFG & TXIFG)) ; TXBUF = data; while(UCB0STAT & UCBUSY) ;