AN 265: 使用 Altera MAX 系列作为微控制器 I/O 扩展器

ID 683386
日期 9/22/2014
Public

1.3. 微控制器 I/O 扩展器的配置

要将端口设置为输入、输出或禁用,必须配置 I/O 扩展器。

I/O 扩展器的配置数据是一组六位寄存器:

  • 四个 I/O 端口配置位(位 5、4、3 和 2)
  • 两个已启用端口地址位(位 1 和 0)
表 4.   I/O 扩展器地址总线配置功能
地址 功能 配置
A7:A6 7–6 无功能
A5 5 端口 D 的配置位
  • 0 = 配置为输入
  • 1 = 配置为输出
A4 4 端口 C 的配置位
  • 0 = 配置为输入
  • 1 = 配置为输出
A3 3 端口 B 的配置位
  • 0 = 配置为输入
  • 1 = 配置为输出
A2 2 端口 A 的配置位
  • 0 = 配置为输入
  • 1 = 配置为输出
A1:A0 1–0 端口地址
  • 00 = 启用端口 A
  • 01 = 启用端口 B
  • 10 = 启用端口 C
  • 11 = 启用端口 D

MODE 信号处于高电平且 CS 信号处于低电平时,此设计会将配置数据置于输入地址总线(MCU 端口)上。

要激活新配置,请发送 CONF 信号的单个脉冲,并持续一个时钟周期。 当 CONF 信号和 CS 信号都处于低位时,时钟通过配置寄存器加以启用。 由此带来的结果是,I/O 扩展器会将配置数据写入到配置寄存器中。 这种发送方式会将所选的配置设为 I/O 扩展器的状态。

如果希望选择要使用这四个端口中的哪一个(A、B、C 或 D)而不配置这些端口,请在 CS 信号处于低电平时将 LOAD 信号置位为低电平。 在 CLK 信号的上升沿,只有已启用的端口地址数据位写入到配置寄存器。

配置所选端口(输入或输出)时还会配置 MCU 端口方向。 例如,如果将端口 A 配置为输入并将其启用,则 MCU 端口的方向将变为输出。 无法直接配置 MCU 端口的输入或输出方向。 不过,如果需要访问配置寄存器,则可以使用 MODE 信号控制引脚将 MCU 端口三态化,然后将其转变成输入端口。

I/O 扩展器的设计支持复位模式。 如果在 CS 信号处于低电平时置位 RST 信号,则所有寄存器内容都会以异步方式复位为零。 包括 MCU 端口在内的所有 I/O 扩展器都会被设为输入模式,这也是 I/O 扩展器的初始状态。