STM32G474RE系列芯片应用Cortex-M4内核,主频170MHz,213DMIPS,MPU,DSP指令(DMIPS每秒百万条指令-用于测整数计算能力,MPU存储器保护单元,DSP数字信号处理)
具有数学硬件加速器CORDIC与FMAC(CORDIC-三角函数加速,FMAC-过滤器数学加速器)
具有512KB-Flash与96KB-SRAM
具有16通道DMA
具有5个12位ADC,最多42个通道,硬件过采样,分辨率最高16位,0-3.6V转换范围
具有7个12位DAC ,3个缓冲外部通道 1MHz,4个无缓冲内部通道15MHz
具有7个超高速轨到轨模拟比较器,6个运放
具有17个 定时器与多种外部通讯接口
12位原生分辨率,内置校准
•4 Msps最大转换率,全分辨率
–采样时间降至41.67 ns
–提高转换率以获得更低的分辨率(6位最高可达6.66 Msps分辨率)
•所有封装上都有一个外部参考引脚,允许输入电压范围独立于电源
•单端和差模输入
•低功耗设计
–能够在低转换率下进行低电流操作(功耗降低与速度成线性关系)
–双时钟域架构:ADC速度独立于CPU频率
•高度通用的数字接口
–基于单次或连续/不连续测序仪的扫描模式:2组模拟信号转换的程序可以区分背景和高优先级实时转换
–每个ADC支持多个触发输入,用于与片上定时器同步和外部信号
–结果存储在数据寄存器或支持DMA控制器的RAM中
–数据预处理:左/右对齐和每通道偏移补偿
–内置过采样单元,可增强SNR
–通道可编程采样时间
–模拟看门狗,用于自动电压监测、生成中断和所选计时器的触发器
–硬件助理,用于准备注入通道的上下文,以允许快速上下文切换
–灵活的采样时间控制
–硬件增益和偏移补偿
本次电路设计用了ADC1+DMA+定时器中断的采集方式,ADC2轮询+定时器中断的采集方式。
HAL的库配置方式如下:
图1:ADC1的HAL库配置
图2:ADC1的HAL库配置
ADC1开启了10个通道,ADC2开启了4个通道。
单片机嵌入了2个DMA。直接存储器存取(DMA)用于提供高速数据传输在外围设备和存储器之间以及从存储器到存储器。数据可以很快在没有任何CPU操作的情况下由DMA移动。这使CPU资源可用于其他操作。两个DMA控制器总共有16个通道,每个通道专用于管理内存来自一个或多个外围设备的访问请求。每个控制器都有一个仲裁器用于处理DMA请求之间的优先级。
DMA支持:
•16个可独立配置的通道(请求)
–每个通道都连接到一个专用硬件DMA请求,一个软件
每个通道也支持触发器。此配置由软件完成。
•来自一个DMA通道的请求之间的优先级都是软件可编程(4个级别:非常高、高、中、低)或硬件可编程平等的情况(请求1优先于请求2等)
•独立的源和目标传输大小(字节、半字、字),模拟包装和开箱。源/目标地址必须在数据上对齐大小
•支持循环缓冲区管理
•3个事件标志(DMA半传输、DMA传输完成和DMA传输错误)在每个通道的单个中断请求中进行逻辑“或”运算
•内存到内存的传输
•外设到内存、内存到外设以及外设到外设的传输
•访问闪存、SRAM、APB和AHB外围设备作为源和目标
•可编程的数据传输数量:最高可达65536。
本次只用到了DMA的一个通道用来采集ADC1的电压数据,HAL的库配置如下:
STM32G474xB/xC/xE设备包括一个高分辨率时间,三个高级电机控制定时器,最多九个通用定时器,两个基本定时器,一个低功耗定时器、两个看门狗定时器和一个SysTick定时器。下表比较了的功能先进的电机控制、通用和基本定时器。
STM32G474xB/xC/xE中嵌入了最多七个可同步的通用定时器,每个通用定时器可以用于产生PWM输出或用作简单的时基。
•TIM2、TIM3、TIM4和TIM5它们是功能齐全的通用定时器:
–TIM2和TIM5具有32位自动加载上/下计数器和32位预分频器
–TIM3和TIM4具有16位自动加载上/下计数器和16位预分频器。
这些定时器具有4个独立的通道,用于输入捕获/输出比较,PWM或者一个脉冲模式输出。它们可以一起工作,也可以与其他通用定时器通过定时器链接功能进行同步或事件链接。计数器可以在调试模式下冻结。所有这些都具有独立的DMA请求生成功能,并支持正交编码器。
本次设计用到了TIM2和TIM3和TIM1用做普通定时器产生PWM波,TIM4用做定时器中断。HAL配置如下:
图8:TIM3的HAL库配置
单片机嵌入了四个I2C。I2C总线接口处理微控制器和串行之间的通信,I2C总线。它控制所有I2C总线特定的排序、协议、仲裁和定时。
I2C外围设备支持:
•I2C总线规范和用户手册第5版兼容性:
–从和主模式,多主功能
–标准模式(Sm),比特率高达100 kbit/s
–快速模式(Fm),比特率高达400 kbit/s
–快速模式Plus(Fm+),比特率高达1 Mbit/s,输出驱动I/O为20 mA
–7位和10位寻址模式,多个7位从地址
–可编程设置和保持时间
–可选时钟拉伸
•系统管理总线(SMBus)规范2.0版兼容性:
–硬件PEC(数据包错误检查)生成和ACK验证控制
–地址解析协议(ARP)支持
–SMBus警报
•电力系统管理协议(PMBusTM)规范版本1.1兼容性
•独立时钟:可选择允许I2C的独立时钟源通信速度独立于PCLK重新编程。
•地址匹配时从停止模式唤醒
•可编程模拟和数字噪声滤波器
•具有DMA功能的1字节缓冲区
本次设计是用IIC驱动OLED显示屏,只用了IIC1,HAL库配置如下:
STM32G474xB/xC/xE单片机具有三个嵌入式通用同步串口(USART1、USART2和USART3)和两个通用异步串口(UART4、USART5)。这些接口提供异步通信、多处理器通信模式、单线半双工通信模式和主/从功能。它们提供CTS和RTS的硬件管理信号和RS485驱动器使能。USART1、USART2和USART3还提供智能卡模式以及类似SPI的通信能力。USART配有一个发送FIFO(TXFIFO)和一个接收FIFO(RXFIFO)。FIFO模式由软件启用,默认情况下被禁用。所有USART都有一个独立于CPU时钟的时钟域,允许U(S)ARTx(x=1,2,3,4,5)将MCU从停止模式唤醒。
•起始位检测
•任何接收到的数据帧
•特定编程数据帧
•启用FIFO模式时,某些特定的TXFIFO/RXFIFO状态中断DMA控制器可以为所有USART接口提供服务。
本次用到了LPUART1做串口打印数据,USART1做蓝牙控制,USART3做AIR700E的4G模块控制,HAL库配置如下:
UA1端口接了3.3V,串口可以检测到3.3V的电压。
本文章已同步发表在微信公众号:遇事可问
公众号 (qq.com)
本文章已同步发表在知乎