跳转到内容

Hempl/GPIO

来自维基教科书,开放世界中的开放书籍

GPIO 代表通用输入/输出,是 AVR32UC3A 微控制器的所有引脚的通用名称。除电源引脚、复位处理器的引脚和 USB JTAG 信号连接外,微控制器的每个引脚都是一个 GPIO 引脚。这包括与 SDRAM 的连接以及所有其他输入或输出信号。

每个 GPIO 引脚都可以被编程为具有三种功能之一,而三种功能对于每个引脚是不同的。当 Mizar32 开启时,它是聋哑和盲目的,板载软件必须做的第一件事是为能够与外界通信的每个 GPIO 引脚编程正确的功能。

例如,Hempl 在启动时会执行以下操作:

  • 它将连接到振荡器晶体的引脚编程为振荡器输入。这将它的处理速度从 115kHz(内部振荡器)提高到 66MHz(外部振荡器)。它还会将连接到 32768Hz 晶体的引脚编程为振荡器输入,以便它能够准确地测量时间;
  • 它将连接到 SDRAM 内存的 LCD 引脚编程为 SDRAM 内存引脚,以便除了 64Kbyte(A 型和 B 型)或 32Kbyte(C 型)内部 RAM 之外,它还可以访问 32Mbyte SDRAM 内存芯片;
  • 如果您已将 Hempl 控制台配置为在串行端口上,它会将 UART0 的 RX 和 TX 引脚编程为 RS232 通信;
  • 如果您的 Hempl 固件包含 MMC/SD 卡支持,则第二个 SPI 端口 SPI1 的引脚将被编程为 MMC/SD 卡通信。

所有其他设备的 GPIO 引脚将在您第一次从 Lua 调用它们时被编程为执行它们的功能。如果您未使用某些设备,您可以随意使用它的 GPIO 引脚作为简单的输入/输出引脚:有关如何操作的更多详细信息,请参阅 PIO 部分。

引脚功能

[编辑 | 编辑源代码]

在 Mizar32 上,以下功能分配给 GPIO 引脚

图例

  • X = 引脚未连接到任何东西
  • Foo/Bar = 信号用于不止一件事
端口 A
引脚 信号 描述 总线引脚
PA00 UART0_RX 右侧总线串行端口 BUS4 引脚 3
PA01 UART0_TX BUS4 引脚 4
PA02 GPIO2 总线 GPIO,最大 4mA,VGA SRAM /HOLD 引脚 BUS5 引脚 11
PA03 UART0_RTS 右侧总线串行端口 BUS4 引脚 5
PA04 UART0_CTS BUS4 引脚 6
PA05 UART1_RX 左侧总线串行端口 BUS3 引脚 3
PA06 UART1_TX BUS3 引脚 4
PA07 GPIO7 总线 GPIO,最大 4mA BUS5 引脚 12
PA08 UART1_RTS 左侧总线串行端口 BUS3 引脚 10
PA09 UART1_CTS BUS3 引脚 9
PA10 SPI0_CS0 左侧总线 SPI BUS1 引脚 12
PA11 SPI0_MISO BUS1 引脚 13
PA12 SPI0_MOSI BUS1 引脚 14
PA13 SPI0_SCK BUS1 引脚 15
PA14 SPI1_CS0 SD 卡芯片选择
PA15 SPI1_SCK 右侧总线 SPI/SD 卡时钟 BUS4 引脚 9
PA16 SPI1_MOSI 右侧总线 SPI/SD 卡数据输入(主机->卡) BUS4 引脚 10
PA17 SPI1_MISO 右侧总线 SPI/SD 卡数据输出(卡->主机) BUS4 引脚 11
PA18 SPI1_CS1 “FREE”
PA19 SPI1_CS2 右侧总线 SPI 芯片选择 BUS4 引脚 12
PA20 EXT_INT ? BUS5 引脚 13
PA21 ADC0 ADC BUS5 引脚 5
PA22 ADC1 BUS5 引脚 6
PA23 ADC2 BUS5 引脚 7
PA24 ETHERNET 以太网中断 BUS2 引脚 3
PA25 ADC4 ADC BUS6 引脚 4
PA26 ADC5 BUS6 引脚 5
PA27 ADC6 BUS6 引脚 6
PA28 ADC7 BUS6 引脚 7
PA29 SDA I2C BUS2 引脚 10
PA30 SCL BUS2 引脚 11
端口 B
引脚 信号 描述 总线引脚
PB00 REF_CLK 以太网 BUS1 引脚 3
PB01 TX_EN BUS1 引脚 4
PB02 TX0 BUS1 引脚 5
PB03 TX1 BUS1 引脚 6
PB04 X
PB05 RX0 BUS2 引脚 5
PB06 RX1 BUS2 引脚 6
PB07 RX_ER BUS2 引脚 7
PB08 MDC BUS2 引脚 4
PB09 MDIO BUS2 引脚 8
PB10 SDCK SDRAM
PB11 SDCKE
PB12 RASn
PB13 CASn
PB14 SDWEn
PB15 RX_DV 以太网 BUS1 引脚 7
PB16 SDA10 SDRAM A10
PB17 GPIO49 总线 GPIO,最大 4mA BUS5 引脚 8
PB18 GPIO50/PWM6 总线 GPIO,最大 4mA/PWM 通道 6 BUS5 引脚 9
PB19 PWM0 PWM BUS4 引脚 7
PB20 PWM1 BUS4 引脚 8
PB21 PWM2
PB22 PWM3 BUS6 引脚 1
PB23 UART1_DCD 左侧总线串行端口 BUS3 引脚 5
PB24 UART1_DSR BUS3 引脚 6
PB25 UART1_DTR BUS3 引脚 7
PB26 UART1_RI BUS3 引脚 8
PB27 PWM4 PWM 通道 4 BUS6 引脚 2
PB28 PWM5 BUS6 引脚 3
PB29 GPIO61/LED 板载 LED(0=点亮)
PB30 GPIO62 总线 GPIO,最大 4mA BUS6 引脚 9
PB31 GPIO63 BUS6 引脚 10
端口 C
引脚 信号 描述
PC00 Xin32 32768Hz 晶体“X2” (*)
PC01 Xout32
PC02 Xin0 12MHz 晶体“X1”
PC03 Xout0
PC04 Xin1 未使用
PC05 Xout1
  • ) 在 Mizar32 v1.3.2 之前的电路焊盘 C47 上
端口 X
引脚 信号 描述 总线引脚
PX00 D10 SDRAM
PX01 D9
PX02 D8
PX03 D7
PX04 D6
PX05 D5
PX06 D4
PX07 D3
PX08 D2
PX09 D1
PX10 D0
PX11 DQM1
PX12 X
PX13 X
PX14 CS1n
PX15 X
PX16 GPIO88/BUTTON 总线 GPIO/主板上的按钮(按下时为低电平) BUS6 引脚 13
PX17 A17 SDRAM BA1
PX18 A16 SDRAM BA0
PX19 GPIO85 总线 GPIO,最大 4mA BUS6 引脚 12
PX20 A14 SDRAM A12
PX21 A13 SDRAM A11
PX22 GPIO82 总线 GPIO,最大 4mA(SDRAM A10 在 PB16 上) BUS6 引脚 11
PX23 A11 SDRAM A9
PX24 A10 SDRAM A8
PX25 A9 SDRAM A7
PX26 A8 SDRAM A6
PX27 A7 SDRAM A5
PX28 A6 SDRAM A4
PX29 A5 SDRAM A3
PX30 A4 SDRAM A2
PX31 A3 SDRAM A1
PX32 A2 SDRAM A0
PX33 GPIO71 总线 GPIO,最大 4mA BUS5 引脚 10
PX34 DQM0 SDRAM
PX35 D15
PX36 D14
PX37 D13
PX38 D12
PX39 D11

总线重命名
在 Mizar32 v1.3.2 中,总线连接器被重命名了

也称为
P3 BUS1 BUS_HALF_LEFT_UP
P4 BUS2 BUS_HALF_LEFT_DOWN
P2 BUS3 BUS_HALF_LEFT_EXT
P5 BUS4 BUS_HALF_RIGHT_UP
P6 BUS5 BUS_HALF_RIGHT_DOWN
P7 BUS6 BUS_HALF_RIGHT_EXT

进一步阅读

[编辑 | 编辑源代码]
华夏公益教科书