GPIO là gì? Cấu hình GPIO Input & Output chuẩn (2023)

0
194

GPIO được biết đến làm một chân tín hiệu kỹ thuật trên mạch tích hợp được điều khiển bởi phần mềm ứng dụng. Để hiểu hơn về thuật ngữ này, anh em có thể tham khảo trong bài chia sẻ dưới đây nhé:

GPIO là gì?

→ Khái niệm về Chân Analog/Digital/Power

GPIO, viết tắt của từ General Purpose Input Output Pins, là vi điều khiển trong các mạch in (hay còn gọi là board mạch). Hệ thống GPIO này sẽ tương tác với thế giới bên ngoài thông qua các chân Analog, Digital, Power của chúng.

khai niem gpio

Theo đó, các chân này được nối với thiết bị cảm biến nhằm mục đích theo dõi, đo đặc môi trường bên ngoài hoặc có nhiệm vụ đóng ngắt như tắt đèn, loa, động cơ,…của các thiết bị điều khiển. Trong các nền tảng phần cứng, các chân GPIO đóng vai trò vô cùng quan trọng vì chúng đem lại khả năng mở rộng của thiết bị

→ Có bao nhiêu loại GPIO?

Được biết, GPIO ngoại vi điều khiển chia thành loại 8 bit có 8 chân trên một port (cổng) và loại 32 bit có 16 chân trên một port. Đối với các loại GPIO A, GPIO B, GPIO C, GPIO D trong chip STM32F103C8Tx được phân loại cụ thể như sau:

co bao nhieu loai gpio

  • Loại GPIO A và GPIO B có đến 16 chân GPIO trên kit với 32 bit.
  • Dòng GPIO C chỉ có 3 chân
  • Loại GPIO D gồm có 2 chân

Với mỗi chân trong vi điều khiển, chúng đều được lập trình riêng là một đầu vào kỹ thuật số (Digital Input) hoặc đầu ra kỹ thuật số (Digital Output). Cụ thể:

phan loai gpio

  • Đối với đầu vào kỹ thuật số (Digital Input): Anh em có thể đọc tín hiệu trực tiếp trên chân này.
  • Đối với đầu vào kỹ thuật số (Digital Output): Anh em có thể ghi 0 (LOW) hoặc 3,3 / 5 V (VDD) vào chân đó

Bên cạnh đó, một số port có thể có chức năng thay thế (Alternative Function – AF) có nhiệm vụ như một đầu vào tương tự như ADC, EXTI (ngắt ngoài), đầu vào hoặc đầu ra của GPIO trên chip. Mặt khác, AF còn có khả năng ánh xạ tới một chân của một điểm nào đó khi chức năng này được điều khiển bởi byte tùy chọn.

→ Sơ đồ ngoại vi GPIO

Đối với vi điều khiển GPIO hiện đại, thiết bị đa phần đều được ứng dụng kỹ thuật bản đồ bộ nhớ, giúp ánh xạ các thiết bị ngoại vi trong một không gian bộ nhớ thống nhất. Với bộ điều khiển có ký hiệu STM32F446RE, hệ thống được xem là bộ vi điều khiển và hoạt động dựa trên ARM Cortex M4. Không gian bộ nhớ cho thiết bị ARM được thể hiện qua hình ảnh dưới đây:

so do ngoai vi gpio

Để ánh xạ nhiều thiết bị ngoại vi khác nhau, địa chỉ bộ nhớ được các nhà cung cấp GPIO sử dụng trong khoảng từ 0x40000000 đến 0x600000000. Trong đó, mỗi vùng sẽ được chia thành nhiều vùng phụ khác nhau. Vùng phụ này sẽ có nhiệm vụ ánh xạ tới một thiết bị ngoại vị nào đó cụ thể.

Bên cạnh đó, anh em cần phải tìm ra địa chỉ mà thiết bị này có thể ánh xạ được tại đây. Trường hợp thiết bị GPIO ánh xạ trong địa chỉ từ 0x40020000 đến 0x40021FFF, được gọi là vùng băng tần bit.

Với GPIO, thiết bị được chia thành 8 cổng, gồm GPIO A, GPIO B, GPIO C, GPIO D, GPIO E, GPIO F, GPIO G, GPIO H. Mỗi cổng trong thiết bị sẽ chứa tối đa là 16 chân. Trong đó, GPIO A được ánh xạ từ địa chỉ 0x40020000 đến 0x400203FF, đồng thời quản lý hầu hết các chân kết nối với PORT – A.

GPIO được cấu hình như thế nào?

Muốn biết GPIO có cấu hình như thế nào, anh em có thể tham khảo thông tin cụ thể sau đây:

→ GPIO Input

Trong GPIO Input, cấu hình của thiết bị vi điều khiển gồm Pull – up và Floating, cụ thể:

gpio input

  • Pull – up: Là hình thức sử dụng kéo trong phổ biến được mặc định ở trạng thái kéo cao.
  • Floating: Là hình thức sử dụng ít phổ biến hơn và trong một số trường hợp còn gọi là đầu vào trở kháng cao (High Impedance Input). Mức tín hiệu này trên chân GPIO được mặc định ở trạng thái không xác định, thường phụ thuộc vào nguồn ở bên ngoài. Đặc biệt, cấu hình dạng này có đầu vào giống như một tri-state buffer.

→ GPIO Output

Trong GPIO Output, cấu hình của thiết bị vi điều khiển gồm Push-pull, Open-drain và Floating Input, cụ thể:

gpio output

  • Push-pull: Là hình thức đầu ra với mức logic luôn nằm trong hai lựa chọn 0 hoặc 1.
  • Floating Input: Là dạng chỉ được sử dụng khi phụ thuộc vào các tác nhân bên ngoài, đặc biệt là ADC. Với Open-drain output, nó dùng trong trường hợp điều khiển nhiều thiết bị tiêu thụ dòng chỉ với 1 vi điều khiển, đồng thường kèm theo trở treo bên ngoài. Do đó, chúng được ứng dụng phổ biến trong các yêu cầu mạch lái, tiêu biểu nhất là bus I2C.
  • Open-drain: Giống với Floating Input, đầu ra phụ thuộc vào nguồn bên ngoài nhưng cấu trúc chân I/O lại có thêm các đệm MOSFET. Trường hợp cấu hình mở cực máng (Drain) đầu ra chuyển thành đơn vị giúp tiêu tán dòng (current sink) nhằm tránh gây lãng phí năng lượng.

08 chế độ GPIO của STM32 cần biết

che do gpio cua stm32

1. Chế độ Input Floating: Có cấu hình chân I/O với chức năng làm ngõ vào và để nổi.

2. Chế độ Input pull – up: Có cấu hình chân I/O với nhiệm vụ làm ngõ vào và trở kéo lên nguồn.

3. Chế độ Input pull – down: Có cấu hình tương tự như hai chế độ trên, với nhiệm vụ làm ngõ vào và trở kéo xuống nguồn GND.

4. Chế độ Analog: Là Analog cấu hình chân I/O được áp dụng cho các mode có ứng dụng ADC hoặc DAC.

5. Chế độ Output open – drain: Có cấu hình chân I/O với vai trò làm ngõ ra có hai trường hợp xảy ra:

  • Trường hợp 1: Khi output control = 0 thì N-MOS sẽ dẫn và chân I/O sẽ nối với VSS.
  • Trường hợp 2: Khi output control = 1 thì P-MOS và N-MOS không dẫn và chân I/O được để nổi.

6. Chế độ Output push-pull: Có cấu hình chân I/O với vai trò là ngõ ra có hai trường hợp xảy ra:

  • Trường hợp 1: Khi output control = O thì N-MOS sẽ dẫn và chân I/O sẽ nối với VSS tương tự như trường hợp đầu tiên của chế độ Output Open – Drain.
  • Trường hợp 2: Khi output control = 1 thì P-MOS dẫn và chân I/O được nối với VDD.

7. Chế độ Alternate function push-pull: Có cấu hình I/O tích hợp vừa làm ngõ ra và ngõ vào. Chế độ này sẽ không có chức năng kéo lên và kéo xuống như ở Input. Tuy nhiên, Alternate function push-pull có chức năng output giống với  Output push-pull. Bên cạnh đó, chế độ này còn được sử dụng cho chức năng khác là remap.

8. Chế độ Alternate function push-pull: Có cấu hình I/O tích hợp, chức năng Input và ứng dụng trong chức năng remap giống với chế độ Alternate function push-pull. Nhưng khác là chế độ này lại có chức năng output giống với Output open-drain.

⏭️ Mời anh em đọc thêm:

Trên đây là những thông tin GPIO mà anh em có thể tham khảo để hiểu hơn về loại thiết bị này. Ngoài ra nếu còn có những thắc mắc nào về vi điều khiển GPIO, anh em có thể bình luận dưới bài viết này. Cám ơn anh em đã theo dõi

MecsuLearn – Kiến thức kỹ thuật

Đam mê cơ khí trong máu rồi, biết gì chia sẻ đó, anh em cùng nhau chia sẻ nhé
Subscribe
Notify of
0 Bình luận
Inline Feedbacks
View all comments