Cypress技术论坛
直播中

毛微

7年用户 216经验值
私信 关注
[问答]

SPIS Rx中断问题

我使用两个PSoC 5LP有两个不同的草图。第一PSOC模拟一些SPI数据传输,第二个应该接收所有数据。RX缓冲区应该由DMA清除。SPIS-RX-IN被设置为“当FIFO不为空时中断”。问题是,从属只接收第一个字节(图片1)并且惯于重置RX中断(图片2)。我的草图是基于柏树的SPIM/SPIS-DMA例子。
8 = dma_tx_master
dma_rx_slave CH9 =
CH10 = spis_rx_interrupt
我也没有忘记一些SPI配置?
SPIS中断在第八时钟上升时是否正确?
是否有某种SPI连续接收模式?
workspace26_06m.cywrk.archive01.zip
563.4 K
workspace26_06s.cywrk.archive01.zip
604.5 K

以上来自于百度翻译


     以下为原文
  I am using two PSoC 5LP with two different sketches. The first PSoC simulate some SPI-Data-Transfer and the second should receive all Data.
The RX-Buffer should be cleared by the DMA. The SPIS-Rx-Int. is set on "Interrupt when FIFO not Empty".
The problem is that the Slave only receive the first Byte (Picture 1) and wont reset the Rx Interrupt (Picture 2).
My Sketch based on the SPIM/SPIS-DMA example from cypress.

CH8= DMA_Tx_Master
CH9= DMA_Rx_Slave
CH10=SPIS_Rx_Interrupt

Did i forget some SPI config?
Is the timing for the SPIS-Interrupt correct at the 8th clock-rise?
Is there some kind of SPI-continously-receiving mode?


回帖(2)

谢芳芳

2018-9-3 16:25:12
嗨,艾迪,
看起来描述符没有被正确链接。
在函数dMAys*rxl配置()中,修改以下内容,
cydmatdsetconfiguration(s_rxtd [ 0u ],[ 1,s_rxtd 1u ],td_termout0_en | td_inc_dst_adr);
CydMatdSt配置(SyrxTD[1u],1,SyrxTD[0u],0);
同时,spis_rx_status_mask_reg = 1(ISR)和spis_enableint()(主)是不必要的。
如果“中断接收FIFO不空”是SPI配置窗口激活,它会自动照顾的中断使能。
谢谢,Shanmathi

以上来自于百度翻译


     以下为原文
  Hi Eddi,
 
It looks like the descriptors are not chained properly.
 
In function Dma_S_Rx_Configuration(), modify the following,
CyDmaTdSetConfiguration(S_RxTD[0u], 1, S_RxTD[1u] , TD_TERMOUT0_EN|TD_INC_DST_ADR);
CyDmaTdSetConfiguration(S_RxTD[1u], 1, S_RxTD[0u], 0);
 
Also, SPIS_RX_STATUS_MASK_REG=1 (in ISR) and SPIS_EnableInt() (in main) are not necessary.
If "Interrupt on Rx FIFO not empty" is enabled in the SPI configuration window, it will automatically take care of the interrupt enable.
 
Thanks,
Shanmathi
举报

毛微

2018-9-3 16:42:28
引用: 60user14 发表于 2018-9-3 19:40
嗨,艾迪,
看起来描述符没有被正确链接。
在函数dMAys*rxl配置()中,修改以下内容,

嘿,Shanmathi,
谢谢你的评论。这个改变解决了中断问题。
最好的问候
埃迪

以上来自于百度翻译


     以下为原文
  Hey Shanmathi,
thank you for your comment.
This change solved the Interrupt Problem.
 
best regards
Eddi
举报

更多回帖

发帖
×
20
完善资料,
赚取积分