Xmega -IO

特点:

  • 具有单独配置的通用输入和输出引脚
  • 具有可配置驱动器和拉动设置的输出驱动器:
  • 带有中断和事件的同步和/或异步感应输入
  • 输入和有线或/与配置上的可选上拉和下拉电阻
  • 异步引脚变化感应,可以将设备从所有睡眠模式中唤醒
  • 每个 I/O 端口带有引脚屏蔽的两个端口中断
  • 高效安全地访问端口引脚
  • 端口引脚上的外设时钟输出
  • 实时计数器时钟输出到端口引脚
  • 事件通道可以在端口引脚上输出
  • 重新映射数字外设引脚功能

概况

AVR XMEGA 微控制器具有灵活的通用 I/O 端口。一个端口由多达 8 个端口引脚组成:引脚 0 到 7。每个端口引脚都可以通过可配置的驱动器和拉动设置配置为输入或输出。它们还通过中断和事件来实现同步和异步输入检测,以实现可选的引脚变化条件。异步引脚变化检测意味着引脚变化可以将器件从所有睡眠模式中唤醒,包括没有时钟运行的模式。
所有功能都是单独的并可按引脚配置,但可以在一次操作中配置多个引脚。这些引脚具有硬件读取-修改-写入 (RMW) 功能,可安全正确地更改驱动值和/或拉电阻配置。可以改变一个端口引脚的方向,而不会无意中改变任何其他引脚的方向。
端口引脚配置还控制其他器件功能的输入和输出选择。可以将外设时钟和实时时钟都输出到端口引脚,供外部使用。这同样适用于来自事件系统的可用于同步和控制外部功能的事件。其他数字外设,例如 USART、SPI 和定时器/计数器,可以重新映射到可选引脚位置,以针对应用需求优化引脚输出。
在这里插入图片描述
##2 I/O 引脚使用和配置
每个端口有一个数据方向(DIR)寄存器和一个数据输出值(OUT)寄存器,用于端口引脚控制。数据输入值 (IN) 寄存器用于读取端口引脚。此外,每个引脚都有一个引脚配置 (PINnCTRL) 寄存器,用于额外的引脚配置。
引脚方向由 DIR 寄存器中的 DIRn 位决定。如果将 DIRn 写入 1,则引脚 n 被配置为输出引脚。如果将 DIRn 写入零,则引脚 n 被配置为输入引脚。
当方向设置为输出时,OUT 中的 OUTn 位用于设置引脚的值。如果 OUTn 被写入 1,则引脚 n 被驱动为高电平。如果 OUTn 被写入零,则引脚 n 被驱动为低电平。
IN 寄存器用于读取引脚值。无论引脚配置为输入还是输出,始终可以读取引脚值,除非禁用数字输入。
引脚 n 配置 (PINnCTRL) 寄存器用于额外的 I/O 引脚配置。引脚可以设置为图腾柱、线与或线或配置。也可以为引脚启用反相输入和输出。
图腾柱输出有四种可能的拉动配置:图腾柱(推挽)、下拉、上拉和总线保持器。巴士管理员在两个方向都处于活动状态,

3 Totem-pole

在图腾柱(推挽)配置中,根据 OUT 寄存器中的相应位设置将引脚驱动为低电平或高电平。在这种配置中,除了引脚的能力之外,对灌电流或源电流没有限制。如果引脚配置为输入,如果没有连接外部上拉电阻,引脚将悬空。

在这里插入图片描述
Totem-pole with Pull-down
在此模式下,配置与图腾柱模式相同,但引脚在设置为输入时配置有内部下拉电阻。
在这里插入图片描述
Totem-pole with Pull-up
在此模式下,配置与图腾柱相同,但当设置为输入时,引脚配置为内部上拉
在这里插入图片描述
Bus-keeper
在总线保持器配置中,它提供了一个弱总线保持器,当引脚不再被驱动为高电平或低电平时,它将使引脚保持在其逻辑电平。如果引脚/总线上的最后一个电平为 1,总线保持器配置将使用内部拉电阻保持总线高电平。如果引脚/总线上的最后一个逻辑电平为 0,总线保持器将使用内部拉电阻保持总线低电平。
在这里插入图片描述
Wired-OR
在线或配置中,当 OUT 和 DIR 寄存器中的相应位被写入 1 时,该引脚将被驱动为高电平。当 OUT 寄存器设置为零时,引脚被释放,允许引脚被内部或外部上拉电阻拉低。如果使用内部下拉,如果引脚设置为输入,这也是有效的。在这里插入图片描述
Wired-AND

在线与配置中,当 OUT 和 DIR 寄存器中的相应位被写入零时,该引脚将被驱动为低电平。当 OUT 寄存器设置为 1 时,该引脚被释放,允许该引脚被内部或外部上拉电阻拉高。如果使用内部上拉,如果引脚设置为输入,这也是有效的。
在这里插入图片描述
异或门
在这里插入图片描述
异或门 真值表
在这里插入图片描述
当Inverted IO为1的时候 相当于A=1,B的输出就翻转,

pull Enable=0时 图腾柱输出无效
在这里插入图片描述
pull Enable=0时 pull Direction=1是 为pull-up
在这里插入图片描述

在这里插入图片描述
当您在总线上将多个设备的输出连接在一起时,您不能使用推挽(图腾柱)模式,只要一个设备的输出电平与另一个设备不同,这将是一条捷径。

对此的一种解决方案是,当您将输出设置为 0 时,只让设备在一个方向上驱动总线,例如低电平,当您将输出设置为 1 时,只释放总线(不驱动它为高电平)。如果这是要工作,您需要一个上拉电阻(电阻),当所有设备都释放总线时,它会将总线拉高。

使用此配置,您会看到当任何设备将总线拉低时总线将变为低电平,并且只有在所有设备都释放总线时才会变为高电平。这是逻辑与。

使用普通(非 Xmega)AVR,您可以通过在低输出和低输入之间交替来实现这一点。这在 Xmega 上不需要,因为您可以在有线 AND 模式下配置输出。

或者相反,只让设备将总线驱动为高电平,并通过下拉电阻将其释放为低电平状态。
Wired-AND
在这里插入图片描述
在这里插入图片描述

Wired-OR
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值