AC781X SPI模块应用笔记
本帖最后由 TechHolder 于 2020-8-4 17:44 编辑static/image/hrline/4.gif
AC781X SPI模块应用笔记
static/image/hrline/4.gif
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个边沿,数据被锁存在奇数边沿上并在偶数边沿上移位。图1-1 CPHA = 0传输数据格式
1.2.2 CPHA = 1传输数据格式某些外设在第一个数据位在数据输出引脚变得可用之前需要第一个SCK边沿,第二个变压将数据计入系统。SCK的第一个边沿在半个SCK时钟周期同步延迟后立即发送,第一个边沿命令从机将其第一个数据位传输到主机的串行数据输入引脚。半个SCK周期后,第二个边沿出现在SCK引脚上,这是主机和从机的锁存边沿。当第三个边沿出现时,先前从串行数据输入引脚锁存的值被移入移位寄存器。在此边沿之后,主机数据的下一位从主机的串行数据输出引脚耦合到从机上的串行输入引脚。该过程在SCK上共持续16个边沿,数据被锁存在偶数边沿上并且移位发生在奇数边沿上。 图1-2 CPHA = 1传输数据格式
1.2.3 从机休眠唤醒处于SPI从机模式的MCU进入休眠之后,SPI接收数据能够将MCU唤醒。在进入低功耗模式之前,必须确保SPI模块处于空闲状态;如果SPI模块忙时进入低功耗状态,SPI无法确保数据正确或唤醒功能有效。表1-1 SPI支持唤醒低功耗模式在进入休眠模式之前,需要对唤醒源进行配置,需要在SPM对应寄存器中使能期望的唤醒源,SPI模块默认是禁能状态。调用库SPM_EnableModuleWakeup(SPM_MODULE_SPIx)使能SPI模块唤醒,就能将MCU从休眠模式中唤醒,Standby模式除外。
static/image/hrline/4.gif
2 驱动库2.1 寄存器驱动
static/image/hrline/4.gif3 例程介绍3.1 总述共3个子例程用以阐述SPI的各种功能使用,包括基本收发数据,DMA传输SPI数据,SPI唤醒休眠MCU。每个子例程对应着一个宏定义,通过SPI_SAMPLE_SEL选择。
3.2 例程功能介绍表3-1 例程功能描述
谢谢分享! 拿走,谢谢 感谢分享!学习一下 对SPI例程进行了更新,主从机通信加入同步机制。 7811怎样同时使用两个SPI
有没有类似的开发板推荐学习使用吗? 这个的spi的通信速度最高可以到多少呢? SPI总线 三线制和 四线制的区别 用SPI模块进行通讯时的时钟速度设置,如何配置呢 如何通过GPIO扩展SPI片选脚 AC781X的SPI的最大负载能力是多大呢
页:
[1]