STM32G0技术详解 _ SPI-RTC-ADC

2023-03-06  

对于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寄存器中选中的通道。



特性对比



文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。