S32K146 "LPSPI_DRV_MasterTransfer" function could not send the first bit

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

S32K146 "LPSPI_DRV_MasterTransfer" function could not send the first bit

1,745 次查看
lc12138
Contributor II

HI,

I send array of 9-Bytes 0x55 with:

uint8_t WakeupData[9];
for(int i = 0; i < 9; i++){
WakeupData[i] = 0x55;
}
LPSPI_DRV_MasterTransfer(INST_LPSPI_2, WakeupData, masterDataReceive, 9);

And it has become isoSPI signal because of LTC6820, FIFOSIZE is 4, but the IP-IM signal become:

1649316178(1).png

 You could see that when I try to send 0x55(0b01010101), the first pulse is a CS_low signal, its good, but the next pulse is +1, while it should be 0, so I lost my first bit.

In the end of this transfer, the CS_high signal would not replace the last bit:

1649316626(1).png

LTC6820 has sent CS_high signal after the last byte has been sent.

I guess the FIFOSIZE is the key, because when I try to send a 12-byte array, the signal become:

1649316791(1).png

  the last pulse is CS_high signal, it seems that the SPI bus could only send 4bytes(include CS signal) in a short time?  

I want to know why and how could I fix this problem.

 

0 项奖励
回复
1 回复

1,729 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Hello @lc12138,

I'm not familiar with LTC6820 as this is not an NXP product.

If you need to decode the isoSPI signal, please contact the vendor of the device or refer to the LTC6820 datasheet.

 

Can you please scope the SPI bus that connects the S32K with the LTC6820?

And point out what is wrong with this signal, so that we can help you to configure the S32K LPSPI module?

 

Thank you,

BR, Daniel

0 项奖励
回复