当前位置: 首页 > news >正文

嵌入式养成计划-52----ARM--开发板介绍--相关硬件基础内容介绍--GPIO讲解

一百三十一、开发板介绍

131.1 核心板介绍

在这里插入图片描述

131.2 拓展板

在这里插入图片描述

一百三十二、相关硬件基础内容介绍

132.1 PCB

PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,
是重要的电子部件,是电子元器件的支撑体,是电子元器件电气相互连接的载体。
由于它是采用电子印刷术制作的,故被称为“印刷”电路板。

在这里插入图片描述

132.2 电路板丝印

  • 可以通过不同元器件的丝印标号在电路原理图中对应的硬件原理图
    电路板丝印是用丝网bai印刷技术来制作印刷电路板。
    丝印指得是丝印层,画pcb的时候是分层的,其中包含文字的那一层,用来标注元件或者添加其他信息,这一层叫丝印层。通过丝网印刷方式将元件外形、序号以及其他说明性文字印制在元件面或焊锡面上,
    以方便电路板生产过程的插件(包括表面封装元件的贴片)以及日后产品的维修操作。
    
  • 不同的电路元件的丝印图:
    Ux	:	常作为开发板上芯片的标号
    Rx	:	电阻
    Cx	:	电容
    Dx	:	二极管
    Qx	:	三极管
    
  • 标准器件的丝印的编号:
    U? --> 芯片  C? --> 电容   R? --> 电阻  L? --> 电感
    D? --> 二极管  Q? --> 三极管 J? --> 接插件 CON? --> 接插件
    
  • 非标准器件的丝印编号:器件的编号的名字可以自定义
    FAN1 --> 风扇
    LD1  --> LED1灯
    KEY1 --> 按键1
    
  • 网络标号
    在原理图上,器件引脚上边红色的字,就是网络标号,
    网络标号相同的两个引脚说明具有相同的电器连接属性,
    即在PCB板上两个引脚通过导线进行连接。网络标号(net label)是一个电气连接点,一般由字母或数字组成,
    具有相同网络标号的电气连接线、管脚、及网络是连接在一起的
    

一百三十三、GPIO讲解

133.1 GPIO概念

GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。
在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。
而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,
比如:控制某个LED灯亮与灭;或者通过获取某个管脚的电平属性来达到判断外围设备的状态。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。 

133.2 LED灯电路原理图分析

133.2.1 在开发板上找到LED1的丝印

  • 通过查看资源拓展板,发现LED1的丝印为LD1

133.2.2 根据LED1丝印找到LED1在拓展板上的原理图

在这里插入图片描述

这个LED1电路原理图种有一个3.3v的电源,右边接地,
在LED1发光二极管左边接了一个电阻,用于分压限流,保护电路,右边接到一个三极管的集电极,三级管的基极网络标号为LED1

在这里插入图片描述

133.2.3 根据网络标号找转接板电路原理图

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

133.2.4 分析核心板电路原理图

在这里插入图片描述
在这里插入图片描述
通过分析,发现led1接的三极管的基极最终连接在SOC(stm32mp157aaa)的PE10管脚。

133.3 LED1工作原理分析

133.3.1 LED1工作原理

在这里插入图片描述

根据电路原理图分析,想要让LED1亮,只需要有电流流经发光二极管即可,需要形成闭合回路,
即需要三极管的集电极和发射极导通,这里需要三极管基极控制。

133.3.2 三极管分析

在这里插入图片描述

  • 三极管一般有两种应用场景:
    1.可以在电路里设计放大电路
    2.可以充当开关
    三极管分为NPN和PNP
    NPN:当基极有一个高电平的输入时,集电极和发射极导通当基极有一个低电平的输入时,集电极和发射极截止
    PNP:当基极有一个高电平的输入时,集电极和发射极截止当基极有一个低电平的输入时,集电极和发射极导通所以在LED1电路中,只需要三极管的基极有一个高电平的输入,集电极和发射极就能导通,电流就能够顺利流经发光二极管,发光二极管就能正常工作而三极管的基极接在SOC的PE10管脚,所以只要PE10管脚输出高电平,LED1就可以亮
    

133.4 软件编程控制硬件原理

133.4.1 SOC对于GPIO控制的工作框图

在这里插入图片描述

133.4.2 软件编程控制硬件的原理

在芯片的生产厂商生产出芯片之后,会在内存空间中固化一段内存,这段内存占用了0-4G的内存寻址空间,对于这段内存中有一段内存专门用于进行硬件外设的控制,想要让外设进行工作,只需要向外设对应的这片内存中写0或者写1即可。这段空间是是属于外设的特殊功能寄存器组织

  • 软件编程控制硬件的思想:
    通过编程操作特殊功能寄存器,向特殊功能寄存器中写入特定的数据,就可以间接控制外设进行工作
    
  • 通用寄存器(R0-R15 CPSR)
    1.存在于CPU内部
    2.cpu想要读写数据,不需要寻址,只需要基于寄存器编号操作即可
    3.由ARM公司设计
    
  • 特殊功能寄存器:
    1.存在于SOC内部(内存中)
    2.操作这些寄存器需要使用内存读写指令,也需要这些内存的地址
    3.特殊功能寄存器由芯片厂商来实现
    4.特殊功能寄存器负责完成外设功能的实现
    

在这里插入图片描述

133.5 GPIO相关数据手册分析

133.5.1 GPIO章节

  • GPIO功能描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • GPIO输出功能框图分析
    GPIO输出可以通过,两种模式实现

    • 推挽输出
    • 开漏输出+上拉/下拉电阻
  • mos管特性介绍
    在这里插入图片描述

    • 推挽输出
      由两个互补的mos管相互配合完成高低电平的输出,推挽输出既可以输出高电平,也可以输出低电平
      在这里插入图片描述
    • 开漏输出
      在输出框图种只有一个Nmos管起作用,所以只能输出低电平,想要输出高电平必须外接上拉电阻
      或者
      在输出框图种只有一个Pmos管起作用,所以只能输出高电平,想要输出低电平必须外接下拉电阻
      在这里插入图片描述
  • GPIO相关寄存器介绍
    在这里插入图片描述

    • GPIOX_MODER寄存器
      GPIO模式选择寄存器,一组GPIO有16个管脚,这个寄存器两位管理一个管脚功能
      在这里插入图片描述
    • GPIOx_OTYPER
      用于设置GPIO的输出方式

    在这里插入图片描述

    • GPIOx_OSPEEDR
      用于设置GPIO端口的输出速度
      在这里插入图片描述
    • GPIOx_PUPDR
      设置上拉下拉电阻
      在这里插入图片描述
    • GPIOx_ODR
      GPIO数据输出寄存器
      在这里插入图片描述
    • GPIOx_BSRR
      管脚置位/复位寄存器
      在这里插入图片描述
      在这里插入图片描述
    • GPIOX_BRR
      在这里插入图片描述
  • GPIOE基地址的确定
    在这里插入图片描述

    GPIOE_MODER->0X50006000
    GPIOE_OTYPER->0X50006004
    GPIOE_OSPEEDR->0X50006008
    GPIOE_PUPDR->0X5000600C
    GPIOE_ODR->0X50006014
    

133.5.2 RCC章节

在这里插入图片描述

后面就根据这些编写汇编代码了

相关文章:

嵌入式养成计划-52----ARM--开发板介绍--相关硬件基础内容介绍--GPIO讲解

一百三十一、开发板介绍 131.1 核心板介绍 131.2 拓展板 一百三十二、相关硬件基础内容介绍 132.1 PCB PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板, 是重要的电子部件,是电子元器…...

线性代数-Python-04:线性系统+高斯消元的实现

文章目录 1 线性系统2 高斯-jordon消元法的实现2.1 Matrix2.2 Vector2.3 线性系统 3 行最简形式4 线性方程组的结构5 线性方程组-通用高斯消元的实现5.1 global5.2 Vector-引入is_zero5.3 LinearSystem5.4 main 1 线性系统 2 高斯-jordon消元法的实现 2.1 Matrix from .Vecto…...

python能用来做什么

Python是一种流行的编程语言,由Guido van Rossum创建,并于1991年发布。 它用于: Web开发(服务器端); 软件开发,数学计算,系统脚本编写。 Python能做什么? Python可以…...

springboot引入外部jar,package打包报错找不到程序包XXX

springboot引入外包jar包有两种方法: 一、第一种: 点击idea左上角file,然后点击project选择Modules,点击右侧Dependencies,点击右侧加号选择JARs or directories,然后选择要导入的jar包。这种方式,引入ja…...

GDPU 数据结构 天码行空9

实验九 哈夫曼编码 一、【实验目的】 1、理解哈夫曼树的基本概念 2、掌握哈夫曼树的构造及数据结构设计 3、掌握哈夫曼编码问题设计和实现 二、【实验内容】 1、假设用于通信的电文仅由8个字母 {a, b, c, d, e, f, g, h} 构成,它们在电文中出现的概率分别为{ 0.…...

ISP算法——UVNR

ISP算法——UVNR 概念简介 UVNR也就是经过CSC只有在YUV域对UV两个色域进行降噪,在有些方案里也叫CNR(chroma noise reduction)。主要就是在YUV域针对彩燥进行特殊处理的一系列算法。 关于噪声产生的原因在前面关于降噪的文章和视频中已经做…...

双十一“静悄悄”?VR购物拉满沉浸式购物体验

以往每年的双十一,都会因为电商购物狂欢而变得热闹非凡,而各大电商平台也会在这天推出各种促销活动。但是,近几年来,双十一正在变得“静悄悄”。一个原因是消费群体越发理性消费,更加重视商品本身的质量和体验&#xf…...

(动手学习深度学习)第13章 计算机视觉---图像增广与微调

13.1 图像增广 总结 数据增广通过变形数据来获取多样性从而使得模型泛化性能更好常见图片增广包裹翻转、切割、变色。 图像增广代码实现...

Linux安装MySQL8.0服务

Linux安装MySQL8.0服务 文章目录 Linux安装MySQL8.0服务一、卸载1.1 查看mariadb1.2 卸载 二、安装2.1 下载2.2 上传2.3 解压2.4 重命名2.5 删除2.6 创建目录2.7 环境变量2.8 修改配置2.9 配置文件2.9 用户与用户组2.10 初始化2.11 其它 三、开启远程连接MySQL 一、卸载 首先第…...

地区 IP 库

地区 & IP 库 yudao-spring-boot-starter-biz-ip (opens new window)业务组件,提供地区 & IP 库的封装。 #1. 地区 AreaUtils (opens new window)是地区工具类,可以查询中国的省、市、区县,也可以查询国外的国家。 它的数据来自 …...

MySQL查询语句练习题,测试基本够用了

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE TA…...

删除word最后一页之后的空白页

最近编辑word比较多,有时最后一页(最后一页内容还有可能是表格)之后,还有一页空白页,单独按下backspace、del都删不掉,很让人着急。 经过查询有几种方法: (1)点击选中空…...

基于站点、模式、遥感多源降水数据融合实践技术应用

降水在水循环中发挥着重要作用,塑造了生态景观和生态系统。目前,有四种主要方式获取降水数据:1)雨量计观测,2)地基雷达遥感,3)卫星遥感,4)模式模拟。基于雨量…...

html与django实现多级数据联动

html与django实现多级数据联动 1、流程 1、进入页面后先获取年级数据 2、选择年级后获取院级数据 3、选择院级后获取层次数据 4、选择层次数据后获取专业数据 2、html代码 <p style"margin-top: 10px;"><label>年级</label><select id"…...

网络安全-黑客技术-小白学习

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…...

.NET关于 跳过SSL中遇到的问题

一、事件的起因: 起因:开发项目过程中,可能会遇到 调用其他系统的接口 以及 代码中历史开发人员留下的IP接口访问等问题,后面该项目由自己负责,其他系统全部迁移到容器里面,只提供域名去访问。 问题:访问已迁移到容器其他系统,那么用IP地址访问肯定无法调用成功,只能用…...

fpga时序相关概念与理解

一、基本概念理解 对于数字系统而言&#xff0c;建立时间&#xff08;setup time&#xff09;和保持时间&#xff08;hold time&#xff09;是数字电路时序的基础。数字电路系统的稳定性&#xff0c;基本取决于时序是否满足建立时间和保持时间。 建立时间Tsu&#xff1a;触发器…...

安卓常见设计模式12------观察者模式(Kotlin版、Livedata、Flow)

1. W1 是什么&#xff0c;什么是观察者模式&#xff1f;​ 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;用于实现组件间的松耦合通信。主要对象有观察者接口&#xff08;Observer&#xff09;和可观察对象&#xff08;Observable&…...

USB偏好设置-Android13

USB偏好设置 1、USB偏好设置界面和入口2、USB功能设置2.1 USB功能对应模式2.2 点击设置2.3 广播监听刷新 3、日志开关3.1 Evet日志3.2 代码中日志开关3.3 关键日志 4、异常 1、USB偏好设置界面和入口 设置》已连接的设备》USB packages/apps/Settings/src/com/android/setting…...

Ubuntu 22.04 (WSL) 安装 libssl1.1

废话不多说&#xff01;&#xff01;&#xff01; 步骤一&#xff1a; echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list 步骤二&#xff1a; sudo apt-get update 步骤三&#xff1a…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...