[学习笔记]

AC781X SPI模块应用笔记

[复制链接]
2361|12
手机看帖
扫描二维码
随时随地手机跟帖
TechHolder|  楼主 | 2019-9-3 15:54 | 显示全部楼层 |阅读模式
本帖最后由 TechHolder 于 2020-8-4 17:44 编辑


AC781X SPI模块应用笔记


1 SPI模块介绍
1.1 SPI特性
    1. 主机模式或从机模式
    2. 全双工模式
    3. 主机可编程传输速率
    4. 可配置时钟相位和极性选择
    5. 可配置连续或不连续CS输出
    6. 带CPU中断功能的模式错误标志位
    7. 可选择MSB或LSB优先移位
    8. 可配置的CS建立时间,保持时间和空闲时间
    9. 可配置的SCK高和低周期
   10. DMA模式传输数据
   11. 带中断功能的TX缓存区空或RX缓存区满的标志位
   12. 从机模式支持在stop模式下唤醒

1.2 输入输出时序
1.2.1 CPHA = 0传输数据格式
SCK的第一个边沿用于将从机的第一个数据位计时到主机,将主机的第一个数据位计时到从机。在某些外设中,只要选择了从机,从机的数据输出引脚就会提供从机数据的第一位。在这种格式中,在CS变低后,第一个SCK边沿发出半个周期,半个SCK周期后,第二个边沿出现在SCK线上。当第二个边沿出现时,先前从串行数据输入引脚锁存的值被移入到移位寄存器。在第二个边沿之后,SPI主机的下一位从主机的串行数据输出引脚传输到从机的串行输入引脚。该过程在SCK线上共持续16个边沿,数据被锁存在奇数边沿上并在偶数边沿上移位。
SPI_1.jpg
图1-1 CPHA = 0传输数据格式

1.2.2 CPHA = 1传输数据格式
某些外设在第一个数据位在数据输出引脚变得可用之前需要第一个SCK边沿,第二个变压将数据计入系统。SCK的第一个边沿在半个SCK时钟周期同步延迟后立即发送,第一个边沿命令从机将其第一个数据位传输到主机的串行数据输入引脚。半个SCK周期后,第二个边沿出现在SCK引脚上,这是主机和从机的锁存边沿。当第三个边沿出现时,先前从串行数据输入引脚锁存的值被移入移位寄存器。在此边沿之后,主机数据的下一位从主机的串行数据输出引脚耦合到从机上的串行输入引脚。该过程在SCK上共持续16个边沿,数据被锁存在偶数边沿上并且移位发生在奇数边沿上。
SPI_2.jpg
图1-2 CPHA = 1传输数据格式

1.2.3 从机休眠唤醒
处于SPI从机模式的MCU进入休眠之后,SPI接收数据能够将MCU唤醒。在进入低功耗模式之前,必须确保SPI模块处于空闲状态;如果SPI模块忙时进入低功耗状态,SPI无法确保数据正确或唤醒功能有效。
表1-1 SPI支持唤醒低功耗模式
SPI_3.png
在进入休眠模式之前,需要对唤醒源进行配置,需要在SPM对应寄存器中使能期望的唤醒源,SPI模块默认是禁能状态。调用库SPM_EnableModuleWakeup(SPM_MODULE_SPIx)使能SPI模块唤醒,就能将MCU从休眠模式中唤醒,Standby模式除外。


2 驱动库
2.1 寄存器驱动

3 例程介绍
3.1 总述
共3个子例程用以阐述SPI的各种功能使用,包括基本收发数据,DMA传输SPI数据,SPI唤醒休眠MCU。每个子例程对应着一个宏定义,通过SPI_SAMPLE_SEL选择。

3.2 例程功能介绍
表3-1 例程功能描述
SPI_4.png



SPI_Sample.rar

851.17 KB

使用特权

评论回复

相关帖子

zlmin| | 2019-10-3 10:25 | 显示全部楼层
谢谢分享!

使用特权

评论回复
zchunhua25| | 2019-11-13 10:05 | 显示全部楼层
拿走,谢谢

使用特权

评论回复
operating| | 2019-11-17 17:47 | 显示全部楼层
感谢分享!学习一下

使用特权

评论回复
TechHolder|  楼主 | 2020-8-4 17:45 | 显示全部楼层
对SPI例程进行了更新,主从机通信加入同步机制。

使用特权

评论回复
复活币| | 2022-10-28 09:54 | 显示全部楼层
7811怎样同时使用两个SPI

使用特权

评论回复
bestwell| | 2022-11-1 09:38 | 显示全部楼层
有没有类似的开发板推荐学习使用吗?

使用特权

评论回复
jonas222| | 2022-11-1 10:00 | 显示全部楼层
这个的spi的通信速度最高可以到多少呢?

使用特权

评论回复
chenci2013| | 2022-11-1 10:20 | 显示全部楼层
SPI总线 三线制和 四线制的区别

使用特权

评论回复
everyrobin| | 2022-11-1 10:52 | 显示全部楼层
用SPI模块进行通讯时的时钟速度设置,如何配置呢

使用特权

评论回复
houjiakai| | 2022-11-1 11:25 | 显示全部楼层
如何通过GPIO扩展SPI片选脚

使用特权

评论回复
elsaflower| | 2022-11-1 12:07 | 显示全部楼层
AC781X的SPI的最大负载能力是多大呢

使用特权

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

本版积分规则

27

主题

219

帖子

3

粉丝