嵌入式养成计划-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章节

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot全局拦截sql异常

起因:非法用户可通过特定的输入(如输入内容超长)等操作,使后台逻辑发生错误,从而使后台sql语句暴露至前台,进而为sql攻击提供条件 处理流程:经查找com.mysql.cj.jdbc.exceptions的父类为SQLException,在全局异常处理类中增加如下配置,经测试不起作用 ExceptionHandler(SQLExce…

款网络拓扑自动扫描工具

Topology-Scanner是WeOps团队免费开放的一个网络拓扑自动扫描模块,可以自动发现网络设备的类型、网络设备之间的互联 使用方式 java -jar ./topology-scanner.jar --config_path./config/ 配置说明 1. 拓扑发现请求参数文件(request.json) ips [全网发现] 模式时…

asp.net core weapi 结合identity完成登录/注册/角色/权限分配

1.安装所需要的nuget包 <PackageReference Include"Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version"6.0.24" /><PackageReference Include"Microsoft.EntityFrameworkCore" Version"6.0.24" /><PackageR…

Git应用(1)

一、Git Git(读音为/gɪt/。中文 饭桶 )是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。 了解更多可到GIT官网&#xff1a;Git - Downloads GIT一般工作流程如下&#xff1a; 1&#xff0e;从远程仓库中克隆 Git 资源作为本地…

线程安全问题解析

线程内存模型 线程在工作的时候&#xff0c;如果涉及到需要访问对象的某个成员变量&#xff0c;比如下面的这个类里的amount 属性&#xff1a; class Goods {private int amount;// balabala.....} 线程在运行期间&#xff0c;首先把这个属性从主内存里load进自己的工作内存&…

leetcode:160. 相交链表

一、题目 原题链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a; struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 二、思路 判断两个链表是否相交&#xff0c;只要判断两个链表是否有相同的…

图数据库Neo4j详解

文章目录 第一章 图和Neo4j1.1 图数据库概念1.1.1 图论起源1.1.2 节点-关系及图1.1.3 图数据库1.1.4 图数据库分类1.1.4 图数据库应用场景1.1.5 与关系型数据库对比1.1.6 图数据库优势 1.2 Neo4j介绍1.2.1 Neo4j是什么1.2.2 Neo4j特点1.2.3 Neo4j的优势1.2.4 Neo4j的限制1.2.5 …

揭秘系列: Goroutine调度器

现在不要担心理解上面的图片&#xff0c;因为我们将从非常基础的知识开始。 Goroutines分布在线程中&#xff0c;由Goroutine调度器在幕后处理。根据我们之前的讨论&#xff0c;我们知道一些关于Goroutines的事情&#xff1a; •从原始执行速度来看&#xff0c;Goroutines不一定…

Unity中全局光照GI的总结

文章目录 前言一、在编写Shader时&#xff0c;有一些隐蔽的Bug不会直接报错&#xff0c;我们需要编译一下让它显示出来&#xff0c;方便修改我们选择我们的Shader&#xff0c;点击编译并且展示编译后的Shader后的内容&#xff0c;隐蔽的Bug就会暴露出来了。 二、我们大概回顾一…

智慧畜牧小程序开发流程

本文将详细介绍智慧畜牧小程序的开发流程&#xff0c;包括需求分析、设计、开发、测试和上线等环节。同时&#xff0c;将深入思考智慧畜牧小程序的发展趋势和未来挑战&#xff0c;为读者提供有深度的思考和逻辑性的分析。 一、需求分析 1.明确目标用户&#xff1a;首先…

Bond配置文件配置

1、选择2个自己需要的网口&#xff0c;查看有哪些网口 [roothostname ~]# ifconfig -a [roothostname ~]#systemctl disable NetworkManager 开机不启动图形化网络服务 2、编辑网口的配置文件 [roothostname ~]# cd /etc/sysconfig/network-scripts [roothostname n…

实操创建属于自己的亚马逊云科技VPS服务:Amazon Lightsail

本文主要讲述如何独立创建自己的亚马逊云科技VPS服务&#xff0c;希望此文能帮助你对亚马逊云科技VPS服务也就是Amazon Lightsail&#xff0c;有个新的认识&#xff0c;对所使用的VPS有所帮助。 Amazon Lightsail是一款无论云计算的新手还是专家&#xff0c;都可通过其快速启动…

Sagemaker基础操作指南

简介 Amazon SageMaker是亚马逊AWS提供的一项托管式机器学习服务&#xff0c;旨在简化和加速机器学习开发的整个生命周期。它为机器学习工程师和数据科学家提供了一套完整的工具和功能&#xff0c;用于构建、训练、调优和部署机器学习模型。本文将会通过一个简单的例子&#x…

Conda executable is not found 三种问题解决

如果在PyCharm中配置Python解释器时显示“conda executable is not found”错误消息&#xff0c;这意味着PyCharm无法找到您的Conda可执行文件。您可以按照以下步骤解决此问题&#xff1a; 1.方法一 确认Conda已正确安装。请确保您已经正确安装了Anaconda或Miniconda&#xff…

演示文稿制作软件 Deckset mac中文版介绍

Deckset mac是一款Mac上的演示文稿制作软件&#xff0c;它可以让你使用Markdown语言快速地创建演示文稿。与传统的演示文稿制作软件相比&#xff0c;Deckset采用了全新的设计理念&#xff0c;旨在让用户更加专注于内容的创作&#xff0c;而不是花费过多的时间在排版和设计上。 …

vivo 数据库降本实践:探索成本效益最优的数据库解决方案

vivo 自 2022 年开始调研、测试 OceanBase 至今&#xff0c;现已上线 17 个业务系统&#xff0c;涵盖日志类、分析类、交易类业务&#xff0c;实现了总资源节省 80%&#xff0c;开发、运维工作大幅简化。vivo 体系与流程 IT 部门数据库高级工程师廖光明在本文中&#xff0c;详细…

Antd G6实现自定义工具栏

在使用g6实现知识图谱可视化中&#xff0c;产品经理提出了有关图谱操作的不少功能&#xff0c;需要放置在工具栏中&#xff0c;其中有些功能不在g6自带的功能里&#xff0c;且工具栏样式、交互效果也和官方自定义工具栏不同。那我们怎么去实现呢&#xff1f; g6官方的工具栏案例…

香港和美国节点服务器的测试IP哪里有?

在选择服务器时&#xff0c;我们通常需要进行一些测试来评估其性能和稳定性。当然&#xff0c;这其中一个重要的测试指标就是服务器的 IP 地址。通过测试 IP 地址&#xff0c;我们可以了解到服务器所在地区以及网络连接质量等信息。作为香港及亚太数据中心领先服务商恒创科技&a…

解决Python并发访问共享资源引起的竞态条件、死锁、饥饿问题的策略

目录 一、概述 二、竞态条件 三、死锁 四、饥饿 五、总结 一、概述 在Python中&#xff0c;多线程和多进程可以有效地提高程序的并发性能。然而&#xff0c;当多个线程或进程需要访问共享资源时&#xff0c;可能会引发竞态条件、死锁和饥饿等问题。这些问题可能会导致程序…

敏捷战略实施方法-资深组织发展专家实践秘笈

要怎样才能生成敏捷战略呢&#xff1f;作者基于多年的组织发展实践&#xff0c;总结出如下公式&#xff1a;敏捷战略 战略共创 迭代进化 即要得到一个好的敏捷战略&#xff0c;首先要做好战略共创&#xff0c;并在战略实施过程中对战略进行持续迭代&#xff0c;两者不可偏废…