Tìm hiểu về GPIO: Chân cắm đa năng trên Orange Pi

GPIO (General Purpose Input/Output) là các chân cắm đa năng hiện diện trên nhiều vi mạch tích hợp, như vi điều khiển, vi xử lý, SoC (System on Chip), FPGA, v.v. Chúng được gọi là “đa năng” vì không có chức năng cụ thể nào được thiết lập sẵn từ nhà máy. Ban đầu, chúng không thực hiện bất kỳ chức năng nào, mà được người dùng/nhà phát triển cấu hình và sử dụng cho mục đích mong muốn.

Chức năng và cấu hình của chân GPIO

Một số chân GPIO được liên kết với các thành phần bên trong của vi mạch tích hợp, chẳng hạn như UART để giao tiếp nối tiếp, cổng I2C và SPI để giao tiếp với các thiết bị bên ngoài như cảm biến, ADC để chuyển đổi tương tự-số, v.v. Do đó, các chân đa năng có thể được cấu hình làm đầu vào hoặc đầu ra kỹ thuật số đơn giản, cho phép kích hoạt/tắt (thông qua các mức logic nhị phân) các thành phần, bộ phận hoặc mạch khác, hoặc được cấu hình để thực hiện chức năng tương ứng với bộ điều khiển bên trong mà nó được liên kết: UART, ADC, I2C, SPI…

Như đã đề cập, có hai loại cấu hình có thể được thực hiện trên các chân: cấu hình làm đầu vào/đầu ra kỹ thuật số hoặc cấu hình để thực hiện chức năng cụ thể tương ứng với thành phần bên trong được liên kết với chân đó. Thông tin bổ sung: Các chân GPIO thường được sử dụng để điều khiển đèn LED, đọc dữ liệu từ cảm biến, giao tiếp với các thiết bị ngoại vi và thực hiện nhiều tác vụ khác.

GPIO trên Orange Pi

Trên Orange Pi, các GPIO được nhóm thành một hàng chân đực 2×20 (2 hàng và 20 cột, tổng cộng 40 chân), nằm ở phần trên của bo mạch. Ở đó cũng có các chân tương ứng với điện áp được sử dụng để cấp nguồn cho các thành phần của bo mạch, 5V, 3.3V và tham chiếu GND.

Trong hàng GPIO, bạn sẽ tìm thấy 2 chân 5V (tương ứng với đầu vào điện áp của đầu nối nguồn DC, do đó hệ thống có thể được cấp nguồn trực tiếp từ chúng), 2 chân 3.3V, 8 chân GND và 28 chân GPIO, trong đó có một số chân được liên kết với các thành phần giao tiếp bên trong (UART, I2C và SPI). Tất cả các chân GPIO có thể được cấu hình làm đầu vào hoặc đầu ra kỹ thuật số, nhưng chỉ những chân tương ứng với một giao diện giao tiếp nào đó mới có thể được cấu hình để kích hoạt chức năng bên trong của chúng.

Như đã đề cập, ngoại trừ 12 chân nguồn (điện áp), có 28 chân GPIO. Từ hình ảnh, ta có thể thấy rằng 16 trong số chúng có các chức năng được liên kết với các giao diện giao tiếp của các thành phần bên trong mà chúng tương ứng. Như vậy, chúng ta có thể xác định rằng Orange Pi cung cấp, thông qua các chân GPIO: 3 giao diện giao tiếp nối tiếp (màu xanh lam, UART1, UART2 và UART3), 2 giao diện giao tiếp I2C/TWI (màu xanh lục, I2C0 và I2C1) và 1 giao diện giao tiếp SPI (màu vàng, SPI_0). Bằng cách này, còn lại 10 chân GPIO không có chức năng bên trong bổ sung và do đó, chỉ có thể được cấu hình làm đầu vào hoặc đầu ra kỹ thuật số (màu xám). Như bạn có thể thấy, OPi không có bất kỳ bộ chuyển đổi tương tự-số (ADC) nào, do đó không thể thực hiện các phép đọc tương tự với chúng.

Cách đánh số chân GPIO

Các chân GPIO có thể được liệt kê theo số vật lý của chân, từ 1 đến 40, theo vị trí của nó trong hàng. Trong trường hợp này, bắt đầu từ trên cùng bên trái (chân 1) của hàng chân và được đánh số từ trái sang phải và từ trên xuống dưới. Ngoài ra, các chân GPIO cũng được tham chiếu theo số chân của cổng SoC mà chúng tương ứng. Như vậy, trong GPIO, bạn có thể tìm thấy các cổng A (chân: PA0-PA3, PA6-PA10, PA13-PA14, PA18-PA21), C (chân: PC0-PC4, PC7), D (chân: PD14) và cổng G (chân: PG6-PG9).

Lưu ý quan trọng về điện áp

Cần lưu ý rằng điện áp kỹ thuật số tương ứng với mức logic ‘1’ là 3.3V, điều này rất quan trọng cần lưu ý, đặc biệt khi sử dụng các chân làm đầu vào kỹ thuật số, không nên kết nối các thành phần tạo ra điện áp cao hơn 3.3V (tối đa 3.6V), vì về lâu dài nó sẽ làm hỏng chân hoặc thậm chí toàn bộ cổng GPIO mà nó tương ứng.

Thông tin thêm về các chi tiết kỹ thuật và điện của GPIO (cũng như nhiều khía cạnh khác của Orange Pi) có thể được tìm thấy trong Bảng dữ liệu tương ứng với SoC cụ thể của kiểu OPi (ví dụ: đây là Bảng dữ liệu của SoC Allwinner H3).

Tóm lại, dưới đây là các khái niệm và đặc điểm đáng chú ý nhất về các chân GPIO trong hệ thống Orange Pi:

  • Các chân GPIO có thể được cấu hình để được sử dụng bởi người dùng (đa năng).
  • Điện áp logic cao là 3.3V.
  • Một số chân có thể được sử dụng cho các giao thức giao tiếp như UART, SPI, I2C.

Phân biệt chân GPIO và chân phụ trợ

Không nên nhầm lẫn hàng chân GPIO với hàng chân phụ trợ, như trên OPi Zero, vì hãy nhớ rằng, các chân GPIO có thể được cấu hình để được sử dụng bởi người dùng (đa năng), trong khi các chân phụ trợ có các chức năng cụ thể được liên kết, không thể thay đổi (không thể cấu hình), mỗi chân tương ứng với: đầu ra RCA (âm thanh và video), cổng USB, đầu vào micrô, đầu vào bộ thu IR, v.v.

GPIO trong Linux

Trong Linux, các chân GPIO được hệ thống nhận dạng thông qua Kernel và có thể truy cập từ không gian người dùng thông qua “Sysfs” (nhờ thư viện “gpiolib”), cho phép cấu hình và sửa đổi chức năng của các chân thông qua hệ thống tệp, tất cả chỉ đơn giản bằng cách sửa đổi các tệp nằm trong /sys/class/gpio.

Thư viện hỗ trợ GPIO

Tuy nhiên, việc phải làm việc với các tệp để sử dụng GPIO thường trở nên phức tạp hơn khi độ phức tạp của ứng dụng/chương trình cần thực hiện tăng lên và đó là lý do tại sao người ta sử dụng một số thư viện cấp cao được triển khai, cho phép cấu hình, sử dụng và tích hợp đơn giản vào mã chương trình, quyền truy cập vào các chân GPIO.

Trong Orange Pi, có một số thư viện được triển khai để điều khiển các chân GPIO, tất cả chúng đều là các bản điều chỉnh của các thư viện đã tồn tại trên các thiết bị SBC khác (chủ yếu là Raspberry Pi), mặc dù một số bản điều chỉnh này là một phần và không bao gồm tất cả các chức năng hoặc tất cả các kiểu OPi. Trong số những thư viện mang lại kết quả tốt nhất (trong những năm 2015 và 2016) là hai thư viện sau:

[Danh sách thư viện sẽ được thêm vào đây nếu có thông tin cụ thể]

Để xem cách cấu hình và sử dụng các chân GPIO, cũng như một số cách sử dụng và dự án với chúng, bạn nên tham khảo các mục liên quan đến từng nhánh của “Phát triển phần cứng” (GPIO trong C và/hoặc GPIO trong Python), mặc dù tôi khuyên bạn nên đọc xong loạt bài “Giới thiệu về Orange Pi” (loạt bài hiện tại) trước.

Dưới đây là các mục thu thập về việc sử dụng GPIO:

[Danh sách các mục sử dụng GPIO sẽ được thêm vào đây nếu có thông tin cụ thể]

Leave a Comment

👈 Vuốt để chuyển bài 👉

KIỂM TRA PORT

IPv6 của bạn: Đang lấy...