[学习笔记]

ac7811的SPI主机DMA传输

[复制链接]
4018|0
手机看帖
扫描二维码
随时随地手机跟帖
RunningX|  楼主 | 2021-6-28 14:14 | 显示全部楼层 |阅读模式
由于AC7811没有库函数配置这个SPI-DMA传输方式(AC7801是有的),所以可能使用起来有点不方便。但完全参照库函数,也有缺点(库函数为了适配多种应用场景,做的处理比较多),库函数会重新初始化DMA配置,使得运行效率稍微低一些。
而最常用的方式,是以固定长度在传输的。基于这种传输方式,我写了一个例程配置,进行SPI-DMA传输时,只需要进行DMA通道使能就可以了。
程序中主机发送8个字节的数据,然后收6个字节的数据;如下图:
34260d96575aa372.png
需要注意两点:
1、时钟由主机发送,虽然主机实际发送的有效数据只有前8个,但实际要发14个,因为后面接收的6个数据的时钟,也要由主机提供。
2、SPI是一种全双工通信方式,但实际使用上,更多是如图的那种半双工的。所以在接收的6个有效数据,是从第9个数据开始的。例如程序中接收的6个数据,为g_spiRxBuffer[8]到g_spiRxBuffer[13];如以下仿真图:
436860d967fe6e9fd.png

附上AC7811的SPI主机DMA传输的工程:
SPI_Master_DMA_simple.rar (663.74 KB)

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

223

帖子

4

粉丝