SPI and DMA

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

SPI and DMA

886件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by g_mocken on Thu Mar 17 10:08:52 MST 2016
I am trying to do fast bidirectional SPI transfers using DMA. While it is generally working (following the sample code, i.e. individual block transfers, no linked lists), there is something I do not understand:

My DMA_IRQHandler() is called for both errors and end of transfer events ("terminal count"), and for both DMA channels (incoming MISO and outgoing MOSI data). If I ignore the errors, it works, even my CRC protected data appears to be transferred just fine. - But what do the errors actually mean in this case?

I doubt that these are SPI FIFO overrun or underrun errors, because even slowing down the SPI clock from 15 MHz to 1 MHz does not make them go away.



Assuming that it is safe to ignore the errors, I tried to mask those IRQs in the first place by inserting

pDMAch->CONFIG &= ~GPDMA_DMACCxConfig_IE;


into  "setupChannel()" (gpdma_17xx_40xx.c) at the very end. But I still receive error interrupts. Why?
ラベル(1)
0 件の賞賛
返信
1 返信

767件の閲覧回数
lpcware
NXP Employee
NXP Employee
bump
0 件の賞賛
返信