Hempl/GPIO
外觀
< Hempl
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 = 訊號用於不止一件事
| 引腳 | 訊號 | 描述 | 匯流排引腳 |
|---|---|---|---|
| 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 |
| 引腳 | 訊號 | 描述 | 匯流排引腳 |
|---|---|---|---|
| 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 |
| 引腳 | 訊號 | 描述 |
|---|---|---|
| PC00 | Xin32 | 32768Hz 晶體“X2” (*) |
| PC01 | Xout32 | |
| PC02 | Xin0 | 12MHz 晶體“X1” |
| PC03 | Xout0 | |
| PC04 | Xin1 | 未使用 |
| PC05 | Xout1 |
- ) 在 Mizar32 v1.3.2 之前的電路焊盤 C47 上
| 引腳 | 訊號 | 描述 | 匯流排引腳 |
|---|---|---|---|
| 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檔案的最後一部分給出了每個引腳可以分配哪些功能的完整定義。