STM32G0技术详解 _ GPIO-EXTI-系统DMA

发布者:zuiquan最新更新时间:2023-03-03 来源: jdzj关键字:STM32G0 手机看文章 扫描二维码
随时随地手机看文章

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

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


STM32F0系统架构




STM32G0系统架构


主要特性

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

GPIOx直接挂在IOPORT总线上。

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

引脚的基本结构


操作模式

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

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

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

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

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

复用功能


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

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


重定位GPIOs

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


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

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

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

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


中断

EXTI原理图


主要特性


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

可配置事件:边沿选择;

专门的挂起标志;

可由软件触发;

连接到GPIO,PVD,COMPx。

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

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

GPIO MUX从STSCFG移到EXTI


EXTI线重映射


DMA

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


G0 DMA特性

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

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

可编程通道优先级;

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

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

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


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

STM32G0 DMA和DMAMUX示例



DMA特点


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

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

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

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

DMAMUX结构


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事件



DMA中断

每个通道的中断事件:

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

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

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

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

DMAMUX中断

中断事件:

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

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

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

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

位。

低功耗模式下的DMA


互联矩阵

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


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

降低了功耗;

减少了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


低功耗模式


所有互联均可在下述模式下工作: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的预分频器


关键字:STM32G0 引用地址:STM32G0技术详解 _ GPIO-EXTI-系统DMA

上一篇:STM32G0实验演示01_ 互联矩阵
下一篇:STM32G0技术详解 _ PWR

推荐阅读最新更新时间:2024-10-28 18:35

Nios系统基础上的UItra DMA数据传输模式
引 言   随着消费类电子,如MP3、3G手机、视频终端以及宽带无线网络的普及,对大容量存储设备的需求越来越强烈。传统的SRAM、SDRAM以及DDR SDRAM等存储设备的价格与容量比,远远比硬盘高;光存储设备虽然更加廉价,但是在便携性上却远逊于硬盘解决方案。现在硬盘厂商提供了各种适用于不同用途的廉价海量存储设备,如1 in(英寸)的微硬盘可以应用于各种小巧的便携设备中,2.5in硬盘可以应用于笔记本和移动存储中,3.5in硬盘可以应用于个人PC和工业自动化中等等。   目前,硬盘支持的最为广泛的IDE接口协议中,规定了PIO、DMA以及Ultra DMA三种数据传输模式,其传输速率PIO 多字DMA   Ultra DMA
[嵌入式]
USB数据采集系统DMA数据传输的实现
  引言   USB通用串行总线(Universal Serial Bus)是被PC机广泛采用的一种总线,目前已经在计算机主板上大量集成,成为一种标准配置接口。它的即插即用、真正的热插拔、可总线供电、高性能和系统造价低等一系列的优点,使得USB接口得到了广泛的应用。特别是随着USB2.0高速传输协议的出现,其数据传输速度达到了480Mb/s,使得USB接口方式的虚拟仪器系统成为今天低成本虚拟仪器系统的主流。本文设计了基于USB2.0高速传输的数据采集系统,整个数据传输过程完全采用DMA方式,达到了较高的数据传输速度。   1、系统介绍   系统总体结构如图1所示。采用Philips公司的微控制器LPC2888作为系统核心控制
[单片机]
USB数据采集<font color='red'>系统</font>中<font color='red'>DMA</font>数据传输的实现
STM32G0开发笔记:串口中断的使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为串口中断的使用。 1 新建项目 建立uart项目 在PIO的Home页面新建项目,项目名称uart,选择开发板为上一次建立的自定义开发板型号 MonkeyPi_STM32_G070RB,开发框架选择libopencm3; 项目建立完成后在src目录下新建main.c主程序文件; 修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下: 1upload_protocol = cmsis-dap 2debug_tool = cmsis-dap 2 编写程序 时钟设置 1//system cl
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved