GPIO
Gerneral-Purpose IO ports,即通用IO口。
在嵌入式系统中常常有数量众多,但是却比较简单的外部设备/电路。
对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用做输入信号。
许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如控制某个LED灯亮与灭;或者通过获取某个管脚的电平属性来达到判断外围设备的状态。
对这些设备/电路的控制,使用传统的串行口或并行口都不合适,所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。
接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。
数据寄存器的各位都直接引致芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立地加以设置,比如可以设置某个管脚的属性为输入、输出或其它特殊功能。
注意
在实际的MCU中,GPIO是有多种形式的。比如,有的数据寄存器可以按照位寻址,有些却不能按照位寻址,这在编程时就要加以区分。
为了使用方便,很多MCU的GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,可以设置IO的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。这使得在电路设计中,外围电路就可以简化不少。
为什么要使用上拉电阻
一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!
一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似于一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,该端口正常时为高电平;C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻。
上拉电阻是用来解决总线驱动能力不足时提供电流的问题的。一般说法是上拉增大电流,下拉电阻是用来吸收电流。
关键字:ARM 体系结构 GPIO
引用地址:
【ARM】ARM体系结构-GPIO
推荐阅读最新更新时间:2024-11-10 05:08
谷歌云宣布采用ARM芯片:施压英特尔和AMD
7月14日早间消息,据报道,Alphabet旗下谷歌云部门当地时间周三宣布,他们将开始采用基于ARM技术的芯片,成为又一个加入这一转型浪潮的大型科技公司,从而给英特尔和AMD带来更大的压力。 谷歌表示,该公司的新服务将基于Ampere Computing的Altra芯片。Ampere Computing还向微软和甲骨文等企业出售芯片。 ARM是一家总部位于英国剑桥的芯片设计公司,该公司在被英伟达收购失败后宣布将会IPO。ARM一直以来都为各类智能手机和平板电脑供应芯片设计和其他与芯片相关的知识产权。2018年,ARM开始为长期被英特尔和AMD主导的数据中心提供芯片技术。 此后4年,ARM的技术已经出现在世界各地的许
[半导体设计/制造]
用arm-linux-gcc.4.3.2交叉编译器编译linux-3.0.1内核
1.我这里的内核是forlinx 的FORLINX_linux-3.0.1.tar.gz内核,把这个文件准备好(拷贝到 linux os 的forlinx文件夹下面),这个文件不小117M,用xftp花费了我20秒时间。 2.然后解压缩 命令tar zxf FORLINX_linux-3.0.1.tar.gz, 这里我看出来了已经解压缩成功了 在编译内核之前,我先安装一个工具可能会用到,那就是libncurses5方便使用make menuconfig 命令,执行命令即可:apt-get install libncurses5-dev 下面就是编译内核过程了,之前见别人编译的时间挺长的,我倒要看看需要多少时间。 执行命令
[单片机]
日本芯片制造商 Socionext 宣布联合台积电,开发 2nm ARM处理器
10 月 27 日消息,Socionext 是日本唯一一家负责定制 Soc 芯片的上市公司,这家公司号称“只有在接到订单后才会研发与生产芯片”,运营模式与英伟达和 AMD 有一定本质区别。 不过目前该公司宣布正联合台积电,开发一款 32 核 ARM 处理器,该 CPU 采用了 Arm 的 Neoverse 计算子系统技术,号称“能够在超大规模数据中心和下一代移动基础设施(包括 5G 和 6G)中提供‘可扩展的性能’”。 ▲ 图源 Socionext 官方新闻稿 经过查询得知,Neoverse 计算子系统技术是一种预集成、预验证的计算平台,旨在简化芯片的定制流程。芯片组可在单个封装内提供单个或多个 实例 ,以及用于满足 IO 和
[半导体设计/制造]
Linux下ARM汇编语法
第一部分 Linux下ARM汇编语法 尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点 (www.gnu.org)上下载有关规范。 一. Linux汇编行结构 任何汇编行都是如下结构: ]] 每一个段以段名为开始, 以下一个段名或者文件结尾为结束。这些段都有缺省的标志(flags),连接器可以识别这些标志。(与armasm中的AREA相同)。 下面是ELF格式允许的段标志 含义 a 允许段 w 可写段 x 执
[单片机]
ARM芯片选择的一般原则
1.1 ARM芯核 如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(memory management unit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都带有MMU功能。而 ARM7TDMI没有MMU,不支持Windows CE和大部分的Linux, 但目前有uCLinux等少数几种Linux不需要MMU的支持。 1.2 系统时钟控制器 系统时钟决定了ARM芯片的处理速度。ARM7的处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz- 133MHz,ARM9的处理速度为1.1MI
[单片机]
ARM核心板在脑电监测TCI注射泵中的应用
1.1背景事件 针对患者手术中麻醉剂的施用,当麻醉剂量超标时,容易造成患者心跳、呼吸骤停从而造成脑损伤。传统的麻醉剂注射依靠麻醉师的经验,而新型的脑电监测TCI注射泵则将BIS(脑电监测)与TCI(靶控输注)相结合,真正实现个体化镇静麻醉,减少麻醉风险。 1.2脑电监测TCI注射泵控制主板功能需求 脑电监测TCI注射泵在常规注射泵基础上,通过接收 脑电分析仪 的数据来进行分析决策注射量和注射速度,使注射更加科学,更加安全。 控制主板主要功能需求: 显示接口,外接7寸以上真彩液晶,支持触摸屏; RS-232接口,连接脑电分析仪; PWM,控制注射电机; ADC,采集注射管位置数据信息;
[电源管理]
ARM中PC和LR的关系
我们常常听说的PC,LR到底是什么关系,我这次终于弄明白了。我们都知道,LR是指向PC下一次要执行的地址,但是ARM不同的工作模式,他们有不同的关系。ARM有如下几种工作模式:用户模式,FIQ模式,IRQ模式,系统模式,终止模式,数据访问终止模式,未定义模式。ARM是三级流水线的:取指,译码,执行。ARM的R15(PC)总是指向取指的地方,而我们总是以执行作为分析参考点,注意,取指的地方在高地址。当ARM处在ARM指令的时候,每条指令得长度为4,PC = 当前执行+8,当然如果处在THUMB指令中,每条指令长度为2,PC = 当前执行+4. 当程序发生函数调用的时候,LR里面存放的时候函数返回的地址。当发生中断的时候
[单片机]
纳入Cortex A50系列 ARM与台积电扩大合作
ARM及台积电扩大合作,安谋针对台积电28纳米HPM制程,推出以ARMv8指令集为架构的Cortex-A57与Cortex-A53处理器优化套件矽智财(POPIP)解决方案,并同时发布针对台积电16纳米鳍式场效晶体管(FinFET)制程技术的POPIP产品蓝图。
处理器优化套件(POP)技术是ARM全面实作策略中不可或缺的关键要素,能使ARM的合作伙伴得以突破功耗、性能与面积最佳化等限制,迅速地完成双核与四核的实作。此外,这项技术还能协助以Cortex处理器为基础的系统单芯片(SoC)进行实作最佳化、降低开发风险、并缩短产品上市的时程。
Cortex-A57与Cortex-A53处理器,均属于64位元ARM架构处理器,可独
[单片机]