Mizar32/GPIO
外观
< Mizar32
GPIO 代表通用输入/输出,是 AVR32UC3A 微控制器的所有引脚的通用名称。微控制器的每个引脚都是 GPIO 引脚,除了电源引脚、复位处理器的引脚和 USB JTAG 信号连接。这包括与 SDRAM 的连接以及所有其他输入或输出信号。
每个 GPIO 引脚都可以被编程为具有三种功能之一,这三种功能对于每个引脚来说都是不同的。当 Mizar32 开启时,它是聋哑和失明的,板载软件必须做的第一件事是为每个 GPIO 引脚编程正确的功能,这些功能对于它能够与世界其他部分进行通信是必要的。
例如,eLua 在启动时执行以下操作:
- 它将连接到振荡器晶体的引脚编程为振荡器输入。这将其处理速度从 115kHz(其内部振荡器)提高到 66MHz(外部振荡器)。它还将连接到 32768Hz 晶体的引脚编程为振荡器输入,以便它可以准确地测量时间;
- 它将连接到 SDRAM 内存的引脚编程为 SDRAM 内存引脚,以便除了 64Kbyte(模型 A 和 B)或 32Kbyte(模型 C)内部 RAM 之外,它还可以访问 32Mbyte SDRAM 内存芯片;
- 如果您已将 eLua 控制台配置为在串行端口上,它会将 UART0 的 RX 和 TX 引脚编程为 RS232 通信;
- 如果您的 eLua 固件包含 MMC/SD 卡支持,则第二个 SPI 端口
SPI1的引脚将被编程为与 MMC/SD 卡进行通信。
所有其他设备的 GPIO 引脚将在您第一次从 Lua 调用它们时被编程为执行其功能。如果您没有使用某些设备,您可以随意使用其 GPIO 引脚作为简单的输入/输出引脚:有关如何执行此操作的更多详细信息,请参阅 PIO 部分。
在 Mizar32 上,以下功能分配给 GPIO 引脚
图例
- X = 引脚未连接到任何东西
- Foo/Bar = 信号用于不止一件事
| PIN | SIGNAL | 描述 | 总线引脚 |
|---|---|---|---|
| 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 |
| PIN | SIGNAL | 描述 | 总线引脚 |
|---|---|---|---|
| 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 |
| PIN | SIGNAL | 描述 |
|---|---|---|
| PC00 | Xin32 | 32768Hz 晶体 "X2" (*) |
| PC01 | Xout32 | |
| PC02 | Xin0 | 12MHz 晶体 "X1" |
| PC03 | Xout0 | |
| PC04 | Xin1 | 未使用 |
| PC05 | Xout1 |
- ) 在 Mizar32 v1.3.2 之前的电路板垫 C47 上
| PIN | SIGNAL | 描述 | 总线引脚 |
|---|---|---|---|
| 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 |
- PIO 部分进一步解释了这些引脚的使用方式。
- 在 Atmel AVR32UC3A 数据手册,第 12.7 节“外设:I/O 线上的外设多路复用”,表 12-9 中有一个可能的函数摘要表,这些函数可以分配给每个 GPIO 引脚。
- AVR32 GNU 工具链中的文件最后部分
/usr/avr32/include/avr32/uc3a0128.h给出了可以分配给每个引脚的函数的完整定义。