STM32 F401/411外设内部互联矩阵摘要

STM32 F401/411外设内部互联矩阵摘要


  • 📍参考文档AN4646:https://www.stmcu.com.cn/Designresource/detail/localization_document/709908(中译)
    -📌 相关工程案例《HAL STM32主从定时器联级使用》、《STM32G4 TIM1触发ADC转换》

📑 STM32F401/411 系列的外设内部互联概述

若干外设可以直接进行互联和配置,用以发送或响应可以被路由到器件上其他外设的事件信号。
  • STM32F401/411 系列的自带外设包括:
    • 定时器 — 直接在内部互联或连到 DMA 或模拟模块。
    • 模拟模块 — 接收来自定时器的事件或向 DMA 发送事件。
    • 时钟模块 — 向定时器发送事件。
    • 系统模块 — 向模拟模块发送事件。
    • 通信接口 — 向定时器或 DMA 发送事件。

在这里插入图片描述

📙外设内部互联矩阵

STM32F401/411 的外设通过名为 “ 外设内部互联矩阵 ” 的网络实现互联,该网络可以使某一外设在不唤醒 CPU 的情况下,与另一个外设直接相连。
  • 🌿根据不同外设,互联可以工作于运行 (Run)、休眠 (Sleep)和停止 (Stop)模式。
  • 🔖响应事件的外设称为用户,发送事件的外设则称为发生器.
    在这里插入图片描述
    在这里插入图片描述

📙定时器模块

  • 🌿从 TIM 到 TIM
    某些定时器从内部连接在一起,以实现定时器同步或链接。当某个定时器 (TIMx) 被配置为主模式时,可对另一个配置为从模式的定时器 (TIMy) 的计数器执行复位、启动、停止操作或为其提供时钟。(可以参考上面的相关案例)
  • 主输出为 TIMx_TRGO 信号。该输出通过 TIMx_CR2 寄存器配置为定时器事件,并发送至TIMy_ITR0/ITR1/ITR2/ITR3 输入。
    在这里插入图片描述
  • 🌿TIM 到 ADC
    一些定时器可用于产生 ADC 触发事件。
  • 定时器输出可以是 TIMx_TRGO 信号或 TIMx_CHx 事件。它输出为 ADC EXTSEL[3:0] 和JEXTSEL [3:0] 信号。
    在这里插入图片描述
  • 🌿从 TIM 到 DMA

📒模拟模块

  • 模拟模块包括:

• ADC 模块 (ADC1)
• 温度传感器模块.
从温度传感器到 ADC1

  • 在 STM32F401/411 器件上,温度传感器在内部与 ADC1_IN18 输入通道相连。 ADC1_IN18:用于将传感器输出电压或 VBAT 转换为数字值。(温度传感器参考手册章节描述了传感器和 ADC 之间的连接以及读取转换器的程序。)
  • 从模拟模块到 DMA.

📘时钟模块

  • 时钟模块包括:
    • LSE 时钟
    • LSI 时钟
    • 时钟安全系统 (CSS)
    • 实时时钟 (RTC)
  • CSS 到 TIM
    CSS 可生成系统错误。此时,时钟故障事件发送至 TIM1 刹车输入。
    刹车功能的目的是保护由 TIM1 和 TIM8 定时器产生的 PWM 信号所驱动的电源开关。
    可能的刹车源列表见使用刹车功能 (TIM1) 参考手册章节。
  • 从 LSE、 LSI、 RTC 到 TIM
    外部时钟 (LSE)、内部时钟 (LSI) 和 RTC 唤醒中断可用作通用定时器 (TIM5 通道 4/TIM11 通道 1) 的输入。(该特性描述见 RM0368 和 RM0383 参考手册的下列章节:)
    • 基于 TIM5/TIM11 的内部 / 外部时钟测量
    • TIM5 选项寄存器 (TIM5_OR)
    • TIM11 选项寄存器 1 (TIM11_OR)

📓系统模块

  • 🌿系统模块包括:
    • 内部参考电压 (VREFINT)
    • VBAT 电源电压
    • 外部中断 / 事件控制器 (EXTI)
  • 从 VBAT、 VREFINT 到 ADC
    VBAT 通道连接到通道 ADC1_IN18。通过 ADC_IN18 通道,它可以转换为注入通道或常规通道。
    VREFINT 连接到 ADC_IN17 通道。
    参见下列参考手册章节,获得关于 VBAT、 VREFINT 和 ADC 之间互联的详细信息 :
    • 通道选择
    • 电池充电监视
  • 从 EXTI 到模拟模块
    EXTI 可用于生成 ADC 触发事件或启动 DAC 转换。

📗通信接口

  • 🌿从 USB 模块到 TIM
    USB OTG_FS SOF 脉冲信号可以触发 TIM2 通用定时器。
    在这里插入图片描述
  • 🌿从通信接口到 DMA

🎉DMA 模块

每个数据流都与一个 DMA 请求相关联,此 DMA 请求可以从 8 个可能的通道请求中选出。
此选择由 DMA_SxCR 寄存器中的 CHSEL[2:0] 位控制。来自外设的 8 个请求 (TIM、
ADC、 SPI、 I2C 等)独立连接到每个通道,具体的连接取决于产品实现情况。

  • 该特性描述见 RM0368 和 RM0383 参考手册的下列表格:
    • DMA1 请求映射
    • DMA2 请求映射

📗测试例程

  • 🌿使用了三个定时器:
    • TIM1 配置为主定时器:
    – PWM 模式使能
    – TIM2 更新事件用作触发输出。
    • TIM2 和 TIM3 作为 TIM1 的从设备使用
    – PWM 模式使能
    – ITR0(TIM1) 用作两个从定时器的输入。
    在这里插入图片描述
  • 🔖以STM32F401为例:
  • TIM1 计数器时钟频率为 84 MHz。
    TIM1 主定时器工作在 TIM1 频率:
    • TIM1 频率 = TIM1 计数器时钟 / (TIM1 周期 + 1) = 328.125 KHz
    • 占空比等于 TIM2_CCR1/ (TIM2_ARR + 1) = 25%。
    TIM2 从定时器工作频率为:
    • (TIM1 频率 )/ (TIM2 周期 + 1) = 32.815 KHz
    • 占空比等于 TIM2_CCR1/ (TIM2_ARR + 1) = 30%。
    TIM3 从定时器工作频率为:
    • (TIM1p 频率 )/ (TIM3 周期 + 1) = 65.630 KHz
    • 占空比等于 TIM3_CCR1/ (TIM3_ARR + 1) = 60%。
    表 3:外设内部互联配置信息给出了配置上述 TIM1、 TIM2 和 TIM3 的代码示例
    在这里插入图片描述
  • 🍁时钟树:
    在这里插入图片描述
  • 🌿主定时器TIM1配置:f=Tck/(psc+1)*(arr+1): 84000000/(7+1)*(31+1)=32.815 KHz
    在这里插入图片描述
    占空比:25%:8/32

在这里插入图片描述
在这里插入图片描述

  • 🌿从定时器TIM2:(TIM1 频率 )/ (TIM2 周期 + 1) = 32.815 KHz

在这里插入图片描述
在这里插入图片描述

  • 🌿TIM3 从定时器工作频率为:(TIM1频率 )/ (TIM3 周期 + 1) = 65.630 KHz
    在这里插入图片描述
    在这里插入图片描述

📚测试工程

  • 🔖基于stm32f401
链接:https://pan.baidu.com/s/1elIUCWDXzVVXBg_AK4DsnA?pwd=4op7 
提取码:4op7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24考研-东南大学916经验贴

文章目录 一、个人情况二、初试备考经验1.政治 67,客观382.英语 60,客观大概40左右3.数学 136,客观应该满分4.专业课 数据结构计网 114小分不清楚 三、复试备考经验笔试:C面试复试流程 附一下成绩单: 一、个人情况 本…

如何给自己的网站添加 https

文章目录 一、简介二、申请 ssl 证书三、下载 ssl 证书四、配置 nginx五、开放 443 端口六、常见问题解决(一)、配置后,访问 https 无法连接成功(二) 证书配置成功,但是访问 https 还是报不安全 总结参考资料 一、简介 相信大家都知道 https 是更加安全…

【利器篇】前端40+精选VSCode插件,总有几个你未拥有!

前言 姊妹篇: 【利器篇】35精选chrome插件,含15前端插件,总有一款值得你停留 关于关于 【前端工具系列】: 有句话,事半功倍,其必然是借助了某些思想和工具。 VSCode是我们前端开发的武器,本文…

Python学习从0开始——专栏汇总

Python学习从0开始——000参考 一、推荐二、基础三、项目一 一、推荐 Hello World in Python - 这个项目列出了用Python实现的各种"Hello World"程序。 Python Tricks - 这个项目包含了Python中的高级技巧和技术。 Think Python - 这是一本教授Python的在线书籍&…

嵌入式Linux系统调用执行基本流程

内核态与用户态 什么是系统调用 系统调用是怎么实现的 库函数write 库函数扩展汇编宏 int 0x80中断 调用对应的中断处理函数 检索系统调用函数表 最终执行sys_write 内核态与用户态数据交互 内核态与用户态 早期工程师们在操作系统上编写程序的时候,自己写个程序可以访问别人…

面试算法-150-缺失的第一个正数

题目 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都…

90天玩转Python—07—基础知识篇:Python中运算符详解

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

创建型模式--2.简单工厂模式【人造恶魔果实工厂1】

1. 工厂模式的特点 在海贼王中,作为原王下七武海之一的多弗朗明哥,可以说是新世界最大的流氓头子,拥有无上的权利和无尽的财富。他既是德雷斯罗萨国王又是地下世界的中介,控制着世界各地的诸多产业,人造恶魔果实工厂就…

windows10系统下TP-LINK万兆网卡属性配置高级说明

文章目录 打开配置属性说明ARP Offload:ARP地址解析协议卸载Downshift retries:降档重试次数Energy-Efficient Ethernet:高能效以太网Flow Control:流量控制Interrupt Moderation:中断调整Interrupt Moderation Rate:中断调节率IPv4 Checksum Offload:IPv4校验和卸载…

2024/4/2—力扣—连续数列

代码实现: 思路:最大子数组和 解法一:动态规划 #define max(a, b) ((a) > (b) ? (a) : (b))int maxSubArray(int* nums, int numsSize) {if (numsSize 0) { // 特殊情况return 0;}int dp[numsSize];dp[0] nums[0];int result dp[0];fo…

three.js零基础入门超全超细的教程整理(一)

事情是这样的: 有一天 我干完活 看技术文章 发现了three.js 诶!这玩应挺有意思 盘盘 于是第一天找教程 上官网 初上手 第二天 找案例 渲模型 试VR 第三天 捋文档 然后来活了 没时间捋了 下面是集百家精华教程的整理总结 涉及到教程方面有加源作者和地址…

企业3D数字化网络展馆成为企业文化传承与发扬的圣地

在河北这片古老而富饶的土地上,文明的火种薪火相传,燕赵之风历久弥新。河北企业也多年持续稳居我国第五的宝座,企业文化展馆不仅是企业形象的展示窗口,更是企业文化传承与发扬的圣地。 与短暂的行业展会不同,企业展馆是…

JWT身份验证是什么

JWT(JSON Web Token)是一种用于安全传输信息的开放标准(RFC 7519),它可以作为 JSON 对象在各方之间安全地传输信息。JWT通常用于身份验证和声明传递,并且经常用于在客户端和服务器之间进行身份验证和授权。 JWT 的结构 一个 JWT 由三部分组成,每部分之间使用点号 . 分…

用户登录时md5加密源码解析

首先,在登录的时候,将页面提交的密码password加密处理,即password DigestUtils.md5DigestAsHex(password.getBytes()); 接着按ctrl鼠标左键,进入md5DigestAsHex函数中进行查看: 可以发现,md5DigestAsHex函…

xen虚拟机不支持hugepage

今天在xen虚拟机的/etc/sysctl.conf cat /etc/sysctl.conf | grep -i huge vm.nr_hugepages189440 vm.nr_overcommit_hugepages 7500 然后运行sysctl -p使之生效的时候碰到了如下错误 sysctl: setting key “vm.nr_hugepages”: Operation not supported vm.nr_hugepages 18…

顺序表实战——基于顺序表的通讯录

前言:本篇文章主要是利用顺序表作为底层, 实现一个通讯录。偏向于应用, 对于已经学习过c的友友们可能没有难度了已经。没有学习过c的友友, 如果顺序表不会写, 或者说没有自己实现过, 请移步学习顺序表相关内…

ElasticSearch基础及面经

ElasticSearch基础及面经 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开…

【CVE复现计划】CVE-2024-0195

CVE-2024-0195 简介: SpiderFlow是新一代开源爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。基于springbootlayui开发的前后端不分离,也可以进行二次开发。该系统/function/save接口存在RCE漏洞,攻击者可以构造恶意命…

C++语言学习(四)—— 字符串处理函数

目录 一、字符串处理函数 1.1 输入字符串函数 scanf_s函数和get_s函数 1.2 字符串长度计算函数 strlen 1.3 字符串复制函数 strcpy_s 1.4 字符串连接函数 strcat_s 1.5 字符串比较函数 strcmp 1.6 其他字符串处理函数 一、字符串处理函数 在C中,字符串是一串…

算法中的二阶差分

众所周知,在往区间的每一个数都加上一个相同的数k,进行n次后会得到一个新的数列,如果每次加都循环区间挨个数加上k,这样时间复杂度无疑是O(n^2),很高。这时可以采用一阶差分就可解决,这里默认会一阶差分&am…