DSPI模块初始化与队列管理:K60微控制器指南

需积分: 22 52 下载量 144 浏览量 更新于2024-08-05 收藏 20.01MB PDF 举报
"K60P144M100SF2RM.pdf - K60子系列参考文档,Rev.6, Nov 2011,由默_li编辑" 在嵌入式系统中,DSPI(Digital Serial Peripheral Interface)模块是一个关键组件,用于实现高速、低延迟的串行通信。本文档详细介绍了DSPI模块的初始化过程以及在K60微控制器上的应用信息,该微控制器是飞思卡尔(现NXP半导体)K60系列的一部分,支持多种芯片如MK60DN256ZVLQ10、MK60DX256ZVLQ10等。 49.5 初始化/应用信息 DSPI模块的初始化涉及队列管理和模式切换,以确保其能够有效地处理SPI通信。 49.5.1 如何管理DSPI队列 1. EOQ位:当DSPI执行最后一个控制命令时,会设置EOQ(End Of Queue)位,表示队列中的最后一个实体。 2. EOQF标志:在发送完成后,EOQF标志在DSPI状态寄存器(SR)中被设置,表明传输结束。 3. STOPPED状态:设置EOQF标志会使DSPI进入STOPPED状态,TXRXS位清零,禁止串行数据传输。 4. DMA持续填充:在STOPPED状态下,DMA仍可继续填充TX FIFO直到满或执行第5步。 5. 禁用DSPI DMA发送:通过禁用DMA使能请求,关闭分配给TX FIFO和RX FIFO的DMA通道。 6. 接收数据处理:确认RX FIFO中的数据已读取并存入接收队列,可通过读取SR的RXCNT或检查RFDF标志。 7. 更新DMA描述符:对新的队列,需要修改TX和RX的DMA描述符。 8. 清空FIFO:通过写1到MCR的CLR_TXF和CLR_RXF位分别清空TX FIFO和RX FIFO。 9. 重置发送计数:设置新队列的第一个实体的控制命令字中的CTCNT位,或由CPU直接在TCR的SPI_TCNT字段写入。 10. 重新启用DMA通道:通过设置相应的DMA请求使能位,恢复对DSPI TX FIFO和RX FIFO的DMA支持。 11. 恢复串行传输:清除EOQF位,允许串行发送和接收再次进行。 49.5.2 主机和从机切换模式 在DSPI中切换模式时,必须遵循以下步骤以确保正常运行: 1. 停止DSPI:通过设置MCR中的HALT位,暂停DSPI的操作。 这些步骤确保了DSPI模块在不同工作模式之间切换时的正确配置,从而能够适应SPI通信的各种需求,如主设备或从设备的角色切换。对于K60微控制器的开发者来说,理解和掌握这些初始化和管理模式切换的细节至关重要,以实现高效且可靠的SPI通信。