STM32G0的复用率是很高的,更多的引脚可以被当做GPIO引脚来使用。

G0的GPIO模块与F0的类似,主要有以下区别

eedcfc180baf530c87ebe14d2cce52db.png

STM32F0系统架构

c3dd09c26d33ecd294c7f488d6160b2e.png

STM32G0系统架构

86f1ae0ba6c92f6560fbe1e812c2711c.png

主要特性

双向操作最多达60个I/O引脚,从GPIOA~GPIOF共5个端口,每个端口最多16个I/O引脚,全部具有外部中断和唤醒功能,使用BSRR和BRR寄存器进行原子操作(置位和复位),每个端口独立配置。

GPIOx直接挂在IOPORT总线上。

大多数I/O引脚能够支持5V容忍。

引脚的基本结构

5a1d26c6c9a1965df33c9c470f40db80.png

操作模式

输入模式:悬浮(无上下拉电阻),输入上拉/下拉,模拟输入模式。

输出模式:推挽,带有可选上拉/下拉的开漏。

可配置的输出斜率,速度可达80MHz。

复用功能模式:I/O可以用作不同引脚的配置,复用功能越灵活,用的时候越方便。

用于冻结I/O端口配置的锁定机制(GPIOx_LCKR)。

复用功能

多个集成外设共享相同的I/O引脚,包含USARTx_TX,TIMx_CHx,SPIx_MISO……

复用功能多路选择器选择连接到I/O引脚的外设,一次只有一个复用功能连接到特定的I/O引脚,通过GPIOx _AFRL和GPIOx_AFRH寄存器配置。

8a17b701a9d20cdd566f31c64933e45d.png

重定位GPIOs

PA10和PA9分别可以重映射PA12和PA11这两个GPIO口,为那些在封装上没有提供这些引脚但又想访问它们的引脚功能提供了可能,通过SYS_CFG寄存器重映射。

e98bde306a563b5b00dc16188872cb86.png

I/O引脚的特殊注意事项

在复位期间和复位后,复用功能是未激活状态,I/O引脚默认为模拟状态,在复位期间和复位后关闭施密特触发器以降低功耗。

只有SWD调试引脚保持为AF上拉/下拉的配置模式,PA13:SWDIO;PA14:SWCLK(BOOT0)。

I/O管脚在低功耗模式下的状态

52148e1802de60b6087586de86db0581.png

中断

EXTI原理图

ea18d0431110227e9d668aedbdcbb2bc.png

主要特性

从stop模式唤醒,生成中断和事件,独立的中断和事件屏蔽。

可配置事件:边沿选择;

专门的挂起标志;

可由软件触发;

连接到GPIO,PVD,COMPx。

直接事件:状态标志由相关外设提供;

连接到I2Cx,USARTx,UARTx,LPUARTx,SPIx。

GPIO MUX从STSCFG移到EXTI

44b614a50ac33ceb4603faaf4f95a75c.png

EXTI线重映射

e672dbb2059f873ebfff2d803e30734b.png

DMA

G0的DMA控制器与F0的类似,但是多了一个多路复用控制器DMAMUX。

7e2ec5cca1f73624371589ab73c7f653.png

G0 DMA特性

减少CPU负载,用于从内存映射源到内存映射目标的数据传输。

1x DMA控制器:可编程块传输,具有7个并发通道可以独立配置;

可编程通道优先级;

通过AHB主端口(连接到总线矩阵)传输数据;

1x 新DMA请求多路复用(DMAMUX):可编程映射DMA请求;

事件触发和同步的DMA请求生成。

c3750c7fb6545b0b7e8c06c766867f7f.png

DMAMUX+DMA的方式最先出现在H7,然后是L4+,好处是使DMA通道对应的外设更加灵活,不再受限。

STM32G0 DMA和DMAMUX示例

v2-c0b6ad042886120f3b992ef7f233940d_b.jpg

fd849e92399f7c0b354dbd1b85a05d9d.png

DMA特点

外设到内存,内存到外设,和内存到内存的数据传输。

DMA上有7个独立可配置的通道,每个通道要么分配给DMA硬件和外设请求,或者用在内存传输中的软件请求。DMA通道之间的数据传输优先级可配置为非常高、高、中、低。每个通道可各自配置不同的数据传输格式(数据格式、地址增量类型、起始地址、块大小)。各个通道拥有各自的标志位和(块)半传输,(块)传输完成,传输错误等中断。

在总线访问错误的情况下,会自动禁用故障通道。

用于批量数据传输的可编程功能。

DMAMUX结构

505fb380d61cba8079e3103c100a94d8.png

DMAMUX特性

DMAMUX是DMA请求多路复用器/路由器。

DMAMUX可将来自任何外设请求路由到7个DMA通道中任意一个中去。

另外的,有4个请求发生器,可配置由本身生成的DMA请求,触发输入及配置如下:

触发选择:EXTI0~15,LPTIM1/2 OUT,TIM14_OC,或4个生成的DMAMUX事

件中任一个。

触发事件:上升沿,下降沿或双边沿。

触发事件时生成的DMA请求数(在请求发生器内置了一个计数器)。

当下一个触发事件到来而之前由生成的DMA请求数尚未完成时,触发器溢中断会通知软件处理。

对于每个DMAMUX请求多路复用器,可以配置:

从外设或者从请求发生器中选择DMA的请求输入,该请求输出连接到DMA控制

器的给定通道。

可配置的同步输入:

同步选择:EXTI0~15,LPTIM1/2 OUT,TIM14_OC或4个生

成的DMAMUX事件中任一个。

同步时间:上升沿,下降沿或双边沿。

同步事件发生时允许通过的DMA请求数。

当下一个同步信号到来之前DMA请求数还没有全部通过时,将会产生溢出中断。

可选生成的DMAMUX事件输出(多路复用器内置了一个计数器),4个DMAMUX事件作为触发输入和同步输入环回到DMAMUX,应用基于DMA通道间链接的场合。

生成的DMA请求和DMAMUX事件

a34876d7d0e15c3ce9152f2061827b6e.png

2c327844f71830a5df6f26b4ee3c8318.png

DMA中断

每个通道的中断事件:

半传输:当块数据的一半传输完成时置位;

传输完成:当块传输完成时置位;

传输错误:当数据传输出错时置位;

全局中断:每当半传输、传输完成或传输出错时置位;

DMAMUX中断

中断事件:

请求发生器触发溢出:当下一个触发输入事件到来而之前由DMAMUX生成的DMA请

求数尚未完成时,请求发生器触发溢出标志位会被置位。

请求多路复用器同步溢出:当下一个同步事件到来而之前由DMAMUX生成的DMA请

求数尚未完成时,请求多路复用器同步溢出标志位会被置

位。

低功耗模式下的DMA

d64aa23d1e02bbd2cdfe7c44891e2024.png

互联矩阵

互联矩阵就是一个外设可以触发另一个外设工作,而CPU不用参与。

c7959fb9bdd824a38b1acf515155f4d2.png

运用优势:时间可预测的操作;

降低了功耗;

减少了GPIO的使用。

主要特性

外围设备之间的直接自由连接:消除了软件处理方面的延时;

节省了CPU资源;

无需通过专用GPIO去搭建环回信号。

可以在低功耗模式下运行(取决于外设)。

源和目的

源外设

定时器:TIMx,LPTIMx,RTC

模拟IP:ADC,COMPx,DACx,Vreflnt,VBAT,Temp,Sensor

时钟:HSE,LSE,LSI,HSI16,MCO

EXTI

系统错误

目的外设

定时器: TIMx,LP TIMx,IRTIM

模拟IP:ADCx,COMPx,DACx

DMA

5247390cb672565f1edd2838a1f1bd51.png

低功耗模式

所有互联均可在下述模式下工作:RUN,Sleep,Low-power run和Low-power sleep模式

从RTC,COMP1,COMP2到低功耗定时器的(LPTIM1/LPTIM2)的连接,也适用于stop 0,stop 1和stop 2(仅LPTIM1)模式。

运用示例

定时器同步或链接

触发ADC,DAC或COMP(通过定时器或EXTI)

触发DMA数据从内存到DAC(通过定时器)

校准HSI16/LSI时钟

温度和电压监控

保护定时器驱动的电源开关(定时器系统错误)

红外信号产生(定时器到IRTIM)

定时器同步示例

定时器2可以作为定时器2的预分频器

8a15770605e8c236998fb07d0aa27770.png

点击下方链接可进行STM32全国巡回研讨会直播预约

2019年STM32全国巡回研讨会​live.vhall.com
064d323150591237e2b3919af62dc9fc.png

加小电微信可进群和各专业人士交流讨论

4fffd6a65979d0f4300bfa2c87896e0d.png

e70a6af6303f111ff86ef3e44fc2d3b7.png
Logo

开源、云原生的融合云平台

更多推荐