SPI callback event

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
284件の閲覧回数
chris_010
Contributor II

hi, when  using spi callback function, I meet a trouble, need some help.

 my code description: I use LPSI0 as slave to communicate with external device,using interrupt mode.here is my code:

callback function defined:

void lpspi_callback_int(uint8 Instance, Lpspi_Ip_EventType Event)
{
Event_global = Event;
 
if(Event ==LPSPI_IP_EVENT_END_TRANSFER)
{
// Cache_Ip_InvalidateByAddr(CACHE_IP_CORE,CACHE_IP_DATA, (uint32)&rxBuffer[0U], 8);
// read data from rxBuffer
t++;
__asm volatile ("nop");
 
}
else if (Event ==LPSPI_IP_EVENT_FAULT)
{
__asm volatile ("nop");
 
}
}
 
start receive data:
 
lpspi_status = Lpspi_Ip_AsyncTransmit(&SLAVE_EXTERNAL_DEVICE_1, TxSlaveBuffer, RxSlaveBuffer, NUMBER_OF_BYTES, lpspi_callback_int);
 
 

Phenomenon: The callback function is invoked when the master sends data for the first time, but it is not invoked during subsequent data transmissions.

How to fix this issue? Ensure the callback function is triggered on every external SPI data transmission.

 

タグ(1)
0 件の賞賛
返信
1 解決策
218件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

do you call Lpspi_Ip_AsyncTransmit again after callback is invoked, to prepare slave for next transfer? This must be called before master sends new frame.

BR, Petr

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
219件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

do you call Lpspi_Ip_AsyncTransmit again after callback is invoked, to prepare slave for next transfer? This must be called before master sends new frame.

BR, Petr

0 件の賞賛
返信
14件の閲覧回数
chris_010
Contributor II
thanks a lot.It work well now.
0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2288765%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ESPI%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2288765%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82SPI%20%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E5%95%8F%E9%A1%8C%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E5%8A%A9%E3%81%91%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%AA%AC%E6%98%8E%3A%20%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E5%A4%96%E9%83%A8%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%A8%E9%80%9A%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81LPSI0%20%E3%82%92%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%81%8C%E7%A7%81%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%99%3A%3C%2FP%3E%3CP%3E%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%3A%3C%2FP%3E%3CDIV%3Evoid%20lpspi_callback_int(uint8%20%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%80%81Lpspi_Ip_EventType%20%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%83%85%E5%A0%B1)%3C%2FDIV%3E%3CDIV%3E%7B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EEvent_global%20%3D%20%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eif(%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%20%3D%3D%20LPSPI_IP_EVENT_END_TRANSFER)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%2F%2F%20Cache_Ip_InvalidateByAddr(CACHE_IP_CORE%E3%80%81CACHE_IP_DATA%E3%80%81(uint32)%26amp%3BrxBuffer%5B0U%5D%E3%80%818)%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F%2F%20rxBuffer%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Et%2B%2B%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__asm%20volatile%20(%22nop%22)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%20(%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%20%3D%3D%20LPSPI_IP_EVENT_FAULT)%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__asm%20volatile%20(%22nop%22)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%97%E4%BF%A1%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%BE%E3%81%99%3A%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Elpspi_status%20%3D%20Lpspi_Ip_AsyncTransmit(%26amp%3BSLAVE_EXTERNAL_DEVICE_1%E3%80%81Tx%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%80%81Rx%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%80%81%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0%E3%80%81lpspi_callback_int)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CP%3E%E7%8F%BE%E8%B1%A1%3A%20%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%8C%E5%88%9D%E3%82%81%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%80%81%E4%BF%A1%E3%81%97%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AB%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0%E3%81%8C%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%9D%E3%82%8C%E4%BB%A5%E9%99%8D%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E9%80%81%E4%BF%A1%E6%99%82%E3%81%AB%E3%81%AF%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0%E3%81%8C%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F%E5%A4%96%E9%83%A8%20SPI%20%E3%83%87%E3%83%BC%E3%82%BF%E9%80%81%E4%BF%A1%E3%81%94%E3%81%A8%E3%81%AB%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0%E3%81%8C%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2289299%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20SPI%20callback%20event%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2289299%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%81%8C%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%95%E3%82%8C%E3%81%9F%E5%BE%8C%E3%80%81%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%81%8C%E6%AC%A1%E3%81%AE%E8%BB%A2%E9%80%81%E3%82%92%E6%BA%96%E5%82%99%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81Lpspi_Ip_AsyncTransmit%20%E3%82%92%E5%86%8D%E5%BA%A6%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%8C%E6%96%B0%E3%81%97%E3%81%84%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBR%E3%80%81%E3%83%9A%E3%83%88%E3%83%AB%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E