对于SPI,STM32G0和STM32F0系列一样,还实现了一些小增强。G0主要是高度可配置,而且还支持标准的同步协议,优势表现在它仅需要少数引脚、使外部组件和MCU连接简单。
主要特性
SPI支持主或从模式(支持多主和多从)、全双工、单向或半双工、支持Motorola和TI标准。
它的最小接口只需要2根线,可配置数据和时钟格式,额外的协议层支持(Tx和Rx FIFOs,DMA,CRC),具有各种中断事件及标志。
模块简化框图
从图中可以看出,SPI一共有4个I/O引脚,分别为MOSI、MISO、SCK、NSS,所有的数据都是通过特定的接口传送到接收或者发送缓冲区,然后控制部分可以通过配置启用或者禁用。
SPI节点互联
1、支持各种主-从互联
主控时钟提供时钟,数据可以在两个方向上并行交换。
全双工模式:主和从发送器可以同时发送和接收数据。
单向模式:一个节点是发送器而另一个节点是接收器。
半双工模式:主设备和从设备同步交替进行数据发送和接收,主从设备共用一条线进行数据传 输。
2、支持多主的拓扑结构
多主:两个具有主控功能的节点。
当总线处于空闲状态时,节点默认处于从机模式;
当处理通信会话时,节点将自身切换到活动主节点以临时获取总线的控制权;
从选择引脚用作输入以检测潜在的总线冲突。
数据帧的大小支持从4位到16位,可以设置是高位优先或低位优先,还可以设置空闲时极性是高电平还是低电平,在奇数或者偶数边沿进行采样。
SPI支持封包模式,可以将多个数据一起存入FIFO,可以配置FIFO阈值,并且支持DMA访问,这样可以减少中断产生的次数,有效降低CPU负载。
DMA处理的优势:
确定数量的数据事务事件;
传输结束后会进行CRC自动添加/检查,还可以进行FIFO阈值控制。
CRC是用于独立计算接收和发送的数据流,样式在事务结束时发送,发送器将CRC结果直接发到数据移位寄存器中,接收方将CRC存储在Rx FIFO中,并将该值与内部计算进行比较。
NSS输入支持硬件或软件进行配置,从模式可以选择哪个从是激活的,主模式可以处理主主之间的冲突
NSS输出可以选择激活的从,可以设置特定的模式。
SPI的中断事件
发送FIFO就绪:当TxFIFO就绪准备接受新数据时置位;
接受FIFO就绪:当数据被RxFIFO接受到了时置位;
主模式出错:当在多主总线配置下检测到总线冲突的时候置位;
数据溢出错误:接收方由于RxFIFO已满不能再接收下一个数据时置位;
TI帧格式出错:NSS信号与数据格式不对应
当达到FIFO阈值时,可以间接触发DMA请求。
低功耗模式
性能
SPI的理论通信速率限制为PCLK/2,真实的通信速率取决于SPI总线容性负载(设备的连接数目,输入电容,线缆的长度)、GPIO内部参数(其配置,VDD电平和环境温度)、SPI时钟信号占空比、软件处理连续数据流的能力。
真实性能:主模式下最大速率-40MHz;
从模式下最大速率-24MHz。
RTC模块
RTC与STM32F0的区别:
1、RTC的实现与STM32F0相同,有些轻微的改进;
2、STM32G0具有2个闹钟A和B,STM32F0只有闹钟A;
3、STM32G0将Tamper IP与RTC分开,在STM32F0上Tamper仍然是RTC IP的一部分。
G0的RTC在所有低功耗模式下都提供带有报警的超低功耗硬件日历,属于电池备份域,因
此在主电源关闭时仍然保持功能,并且TAMP外设具有备份寄存器和篡改检测功能。
运用优势:超低功耗-290 nA在1.8V;
硬件BCD日历可以降低软件负载。
主要特性:
BCD格式的亚秒,秒,分,时,工作日,日期,月,年;
动态可编程且夏令时补偿;
2个可编程闹钟,具有唤醒中断功能;
具有可编程时间间隔的周期性中断,可触发唤醒中断;
参考时钟源(50或60Hz)可用于加强日历的精确度;
数据校准电路可实现0.95 ppm的精度;
用于事件保存的时间戳功能,具有亚秒级精度(1个事件)。
ADC模块
ADC支持两种扫描排序方式,一种是序列器不完全配置,另一种是序列器完全配置。
序列器不完全配置:
1、序列顺序由通道号决定;
2、序列长度可以高达19个通道;
3、扫描序列可以是正向或反向;
4、任何一个通道都可以放入到该序列中。
序列器完全配置:
1、在ADC_CFGR1寄存器中必须置位CHSELRMOD位;
2、序列长度高达8个通道;
3、序列顺序与通道号无关,任一顺序可以通过寄存器ADC_CHSELR中的
SQ1[3:0]到SQ1[3:0]比特位编程;
4、该序列中只有0~14号通道可被选择;
5、如果序列器检测到SQx[3:0]的值为0’b1111,则序列器扫描的通道结
束;
6、如果序列器没有检测到SQx[3:0]的值为0’b1111,则序列器会扫描全部8个通道。
模拟看门狗
模拟看门狗1:可以监测一个选中的通道或者所有使能的通道
模拟看门狗2和3:可以监测在ADC_AWDxCR寄存器中选中的通道。
特性对比