Khối GIPO (General Purpose Input/Output) là khối điều khiển 8 bit đầu vào hoặc ra đa mục đích [9], đuợc kết hợp chặt chẽ với bộ logic có khả năng lập trình (PLD). Bộ PLD giao tiếp qua các bus mở rộng với GPIO.
- Các bit trong GPIO:
34
Các bit từ 4 – 7 là các bit được lập trình độc lập như là một đầu vào hoặc là một đầu ra. Các bit trong thanh ghi dữ liệu được thiết lập và xoá được dùng bởi các thanh ghi GPIO_DATASET và GIPO_DATACLR. Các bit đọc và ghi được dùng bởi thanh ghi GPIO_DATAIN và GPIO_DATAOUT. - Các thanh ghi GPIO:
GPIO cung cấp các tín hiệu đầu ra và đầu vào đa mục đích. Mỗi một đường GPIO đều có điện trở kéo 10KΩ bên trong lên 3,3V. Các thanh ghi GPIO được chỉ rõ trong bảng 2.8.
Bảng 2.8: Bảng tổng quát các thanh ghi GPIO.
Tên thanh ghi Trạng thái Độ dài (bit) Chức năng GPIO_DATASET Ghi 8 Thiết lập đầu ra dữ liệu
GPIO_DATAIN Đọc 8 Đọc các chân đầu vào dữ liệu GPIO_DATACLR Ghi 8 Xóa đầu ra thanh ghi dữ liệu GPIO_DATAOUT Đọc 8 Đọc các chân đầu ra dữ liệu
GPIO_DIRN Đọc/Ghi 8 Điều khiển hướng dữ liệu vào/ra
- Thanh ghi thiết lập đầu ra dữ liệu:
Vị trí GPIO_DATASET được dùng để thiết lập đầu ra các bit như sau: 1 = thiết lập bit đầu ra GPIO.
0 = ngắt liên kết bit đầu ra GPIO. - Thanh ghi đọc đầu vào dữ liệu:
Dùng để đọc trạng thái hiện hành của các chân GPIO từ vị trí GPIO_DATASET.
- Thanh ghi xóa đầu ra dữ liệu:
Vị trí GPIO_DATACLR được dùng để xóa các bit đầu ra GPIO độc lập như sau:
1 = xóa bit đầu ra GPIO.
35
- Các chân đọc đầu ra dữ liệu:
Dùng để đọc trạng thái hiện hành của các bit thanh ghi đầu ra GPIO từ vị trí GPIO_DATACLR.
- Điều khiển hướng dữ liệu:
Thanh ghi GPIO_DIRN được dùng để thiết lập hướng cho mỗi chân GPIO như sau:
1 = chân là đầu ra.
0 = chân là đầu vào (mặc định).
Điều khiển hướng dữ liệu cho một bit GPIO được mô tả trong hình 2.11.
Hình 2.11. Điều khiển hướng dữ liệu GPIO (1 bit).