K60 SPI PE, no delay between char

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

K60 SPI PE, no delay between char

564 次查看
aroste
Contributor IV

Hi,

CW 10.4, MQX 4.0

I saw a lot of comments about this SPI but just not what I'm looking for, or links could be helpful.

I use the function "..._Inc_SendBlock" generated from PE.  In the PE settings page of my SPI I set a delay between chars.

If my block has 3 bytes, should these delay between these 3 bytes ?

Because I don't have any delay between, I even have the CLK time between 2 bytes that is shorter than the normal clock period.

Final use is:

One SPI connected device (accelerometer) need a delay between command byte and data out. So I wanted to set the delay between char corresponding to the needed delay. Doing will do that CS is still asserted, CLK is hold, and then continues for next byte after the delay.  But that doesn't work.

Thanks

BR

-stéphan-

0 项奖励
回复
1 回复

307 次查看
egoodii
Senior Contributor III

Hardware can help 'up to a point' -- check out register SPIx_CTARn, PDT and DT.  These will define your time-between-operations.  If that doesn't do it for you (and it didn't for me!) here is another trick I used IF you can de-assert CS during the delay:  Define the GPIO function of that 'pin' as output, state to match your inactive CS state.  Then after the 'first set' of your transactions have completed (which you can tell if the 'matching' number of RX transactions have occurred) then flip the CS pin over to GPIO mode, do the 'delay time' transaction, and when THAT is 'done' flip the pin back to SPI-controlled.  That lets the SPI hardware 'time' the gap for you in a 'full transaction' time.

0 项奖励
回复