DSPI模块初始化与队列管理:K60微控制器指南
需积分: 22 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通信。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-05-04 上传
431 浏览量
2009-08-09 上传
2020-08-14 上传
点击了解资源详情
张_伟_杰
- 粉丝: 66
- 资源: 3903
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用