Một Số Khái Niệm Căn Bản Về Gpio Của Vi Điều Khiển "Push, Cấu Hình Gpio Input & Output Chuẩn (2023)

GPIO là gì?

Vi điều khiển trong những board mạch liên quan với cầm cố giới bên ngoài thông qua các chân GPIO (General Purpose Input đầu ra Pins). Các chân GPIO được nối với các thiết bị cảm ứng để theo dõi, đo lường môi trường bên phía ngoài hoặc thiết bị tinh chỉnh và điều khiển đóng ngắt như bật tắt đèn, loa, rượu cồn cơ…Như vậy, khi kể đến các căn nguyên phần cứng, cạnh bên sức mạnh mẽ của vi tinh chỉnh và điều khiển (tốc độ và bộ nhớ) thì số chân GPIO là không còn sức quan trọng vì nó mang về khả năng mở rộng của thiết bị.Nếu mọi dòng vi điều khiển 8bit, chỉ tất cả 8 chân IO bên trên 1 port thì ở các vi tinh chỉnh 32bit, bao gồm đến 16 chân IO bên trên 1 port. Ví dụ đối với cpu STM32F103C8Tx gồm bao gồm 3 Port chính đó là GPIOA, GPIOB, GPIOC. Trong đó, GPIOA, GPIOB bên trên kit thì tất cả đủ 16 chân GPIO, GPIOC 3 chân với GPIOD có 2 chân.  từng chân có thể được xây dựng riêng là 1 trong những đầu vào kỹ thuật số (digital input) hoặc đầu ra output kỹ thuật số (digital output). Ngoại trừ ra, một vài port rất có thể có tính năng thay cố gắng (alternative function – AF) như đầu vào tựa như (ADC), ngắt ngoại trừ (EXTI), đầu vào / cổng đầu ra cho ngoại vi trên chip. Chỉ có một công dụng thay thế rất có thể được ánh xạ tới một chân tại 1 thời điểm, câu hỏi ánh xạ công dụng thay cố kỉnh được điều khiển bởi byte tùy chọn. Hãy tham khảo các bảng dữ liệu một trình bày byte tùy chọn.

Bạn đang xem: Một số khái niệm căn bản về gpio của vi điều khiển "push

Chân Analog/Digital/Power

Digital pin: Digital sạc pin là các chân có trạng thái 0 hoặc 1, dùng để làm theo dõi trạng thái nguồn vào dạng bật tắt như là nút thừa nhận (ví dụ lúc nút được nhận thì pin có mức giá trị 1, còn lúc không nhấn là 0) hay tinh chỉnh thiết bị không giống (như điều khiển tắt bật đèn led). Analog pin: Là những chân có mức giá trị phía bên trong một dải rộng lớn thay bởi vì chỉ gồm 0 với cùng một như digital pin, dùng làm thu thập tín hiệu từ các cảm ứng như ánh sáng ngoài trời hay nhiệt độ của đất. Quý giá của các cảm biến này truyền về analog pin thông qua bộ đổi khác Analog-Digital-Converter (ADC) là một số trong những trong dải số khăng khăng (ví dụ 0 cho 1023 đối với ADC 10 bit hoặc 0-4095 với ADC 12 bit) thể hiện trạng thái của môi trường xung quanh đang được theo dõi và quan sát (ví dụ 0 là khu đất khô cùng 1023 là đất được tưới đầy nước). Nguồn pin: Ngoài những chân digital với analog, những chân mối cung cấp power pin dùng làm cấp nguồn mang đến thiết bị. Power pin gồm ít nhất 2 chân:+ cực dương (VCC): Tùy thuộc vào nguốn cấp sẽ có được điện áp khác nhau, thông dụng nhất là 5V và 3.3V.+ rất âm hay nói một cách khác là mass hay GND (ground).

Khi GPIO được cấu hình là nguồn vào (Input):

Pull-up: các bạn sẽ sử dụng trở kéo trong, mang định sinh sống trạng thái kéo cao. Đây là vẻ ngoài được áp dụng phổ biến.


*
Hình vẽ miêu tả chân đầu vào Pull up

Floating: một trong những trường hợp rất có thể gọi là High Impedance input (đầu vào trở phòng cao) chân bị thả nổi mức tín hiệu, mức biểu đạt trên chân vi điều khiển mặc định làm việc trạng thái không xác định. Mức tín hiệu phụ thuộc vào nguồn ở mặt ngoài. Khi ở tâm lý Floating, đầu vào giống hệt như một tri-state buffer (Schmitt trigger có thể ở trạng thái nhảy hoặc tắt). Cấu hình dạng này hi hữu khi được sử dụng, yêu thương cầu chắc chắn phải bao gồm mạch lái mặt ngoài.


*
GPIO C sống trạng thái Floating (không rõ tâm lý 0 tuyệt 1)
*

Khi GPIO được cấu hình là cổng output (Output):

Push-pull: đầu ra output mức logic luôn nằm vào hai lựa chọn 0 hoặc 1.


*
Chân cổng output Push pull

Open-drain: tương tự như floating input, đầu ra mức tín hiệu phụ thuộc vào vào mối cung cấp ở mặt ngoài. Cấu trúc của những chân I/O đều có các đệm MOSFET. Khi cấu hình mở cực máng (Drain), đầu ra trở thành một đơn vị chức năng tiêu tán cái (current sink) gây lãng phí năng lượng. Vậy nên, cấu hình Open-drain cũng yêu thương cầu đảm bảo kết nối với mặt ngoài.


*
Chân đầu ra mở cửa Drain

Floating input được dùng trong ngôi trường hợp nhờ vào hoàn toàn vào mối cung cấp tác nhân mặt ngoài, tiêu biểu vượt trội là ADC. Open-drain ouput được thực hiện trong trường phù hợp muốn điều khiển và tinh chỉnh nhiều lắp thêm tiêu thụ mẫu với chỉ 1 vi điều khiển, kèm thi công trở treo bên ngoài. Cũng vày vậy, Open-drain ouput hay xuất hiện trong các ứng dụng yêu mong mạch lái, tiêu biểu nhất là bus I2C (cần nối trở dàn ra nguồn từ bỏ 2.2 K Ohm cho tới 10K Ohm). 

Các chính sách cho GPIO của STM32

Input floating : thông số kỹ thuật chân I/O là ngõ vào với để nổi.Input pull-up : thông số kỹ thuật chân I/O là ngõ vào, có trở dàn ra nguồn.Input-pull-down: thông số kỹ thuật chân I/O là ngõ vào, bao gồm trở kéo xuống GND.Analog : thông số kỹ thuật chân I/O là Analog, dùng cho các mode có áp dụng ADC hoặc DAC.Output open-drain: thông số kỹ thuật chân I/O là ngõ ra, khi đầu ra control = 0 thì N-MOS đã dẫn, chân I/O đã nối VSS, còn khi đầu ra control = 1 thì P-MOS và N-MOS phần đa không dẫn, chân I/O được nhằm nổi.Output push-pull: cấu hình chân I/O là ngõ ra, khi đầu ra control = 0 thì N-MOS vẫn dẫn, chân I/O sẽ nối VSS, còn khi output đầu ra control = 1 thì P-MOS dẫn, chân I/O được nối VDD.
Alternate function push-pull: thực hiện chân I/O vừa là ngõ ra cùng vừa là ngõ vào, mặc dù sẽ không có trở kéo lên và kéo xuống ở input, tính năng output giống output đầu ra push-pull. Hình như nó còn để áp dụng cho công dụng remap.Alternate function push-pull: áp dụng chân I/O vừa là ngõ ra cùng vừa là ngõ vào, mặc dù sẽ không có trở kéo lên với kéo xuống nghỉ ngơi input, công dụng output giống output open-drain. Trong khi nó còn để áp dụng cho công dụng remap.

GPIO là viết tắt của General Purpose Input output đầu ra là trong số những thuật ngữ thịnh hành nhất mà chúng ta có thể đã gặp. Khi bạn ban đầu công vấn đề trong một hệ thống nhúng, đây là từ thứ nhất bạn buộc phải nghe nói đến. Nhưng các bạn có nghĩ về rằng các bạn đã rứa vững toàn bộ các khái niệm tương quan đến GPIO? biểu đạt trên những chân GPIO mang lại phép họ đạt được tác dụng cuối của bản thân mình và mang đến phép họ nói chuyện với trái đất bên ngoài. Trong nội dung bài viết này, tôi đang đi sâu về những khái niệm khác nhau liên quan mang đến GPIO. Ở cuối nội dung bài viết này, các bạn sẽ có thể trả lời gpio là gì, các loại GPIO hoàn toàn có thể được áp dụng là gì, cách thông số kỹ thuật gpio để tiết kiệm ngân sách điện năng, tác động của tốc độ GPIO mang lại phát xạ EMI của bo mạch, khóa gpio để phòng việc thông số kỹ thuật lại ngẫu nhiên,... Là một kỹ sư phần mềm, các bạn phải cụ vững những khái niệm này vì chưng hầu hết quá trình của bạn sẽ là viết mã bare metal hoặc mã driver và là 1 trong nhà cải tiến và phát triển ứng dụng nhúng, chúng ta nên biết các khái niệm này theo lắp thêm tự để hiểu các chức năng cốt lõi được cung cấp bởi GPIO API cùng nếu có nào đó bị hỏng, bạn có thể nhanh chóng sửa chữa thay thế ở cấp driver.

 

GPIO là gì?

 

GPIO là một trong chân tín hiệu kỹ thuật số trên mạch tích hợp nhưng hành vi của nó (đầu vào hoặc đầu ra) được tinh chỉnh và điều khiển bởi phần mềm ứng dụng. GPIO về cơ bạn dạng là một chân có thể được cấu hình làm đầu vào hoặc đầu ra. Nếu chúng ta cấu hình chân như 1 đầu ra, chúng ta có thể ghi 0 (LOW) hoặc 3,3 / 5 V (VDD) vào chân đó. Khi được cấu hình làm đầu vào, chúng ta cũng có thể đọc tín hiệu trên chân đó. GPIO là giao diện tiêu chuẩn mà qua đó vi điều khiển hoàn toàn có thể giao tiếp với quả đât bên ngoài. Nó hoàn toàn có thể được thực hiện để đọc các giá trị từ cảm ứng analog hoặc chuyên môn số, tinh chỉnh và điều khiển đèn LED, điều khiển đồng hồ đeo tay cho tiếp xúc I2C,...

Xem thêm: " bigcityboi có nghĩa là gì, ca khúc đánh dấu tên tuổi của rapper binz

 

Bản đồ bộ nhớ lưu trữ của ngoại vi GPIO

 

Như chúng ta đã biết rằng vi điều khiển tân tiến sử dụng kỹ thuật bản đồ bộ nhớ lưu trữ để ánh xạ tất cả các sản phẩm ngoại vi vào một không gian bộ nhớ thống nhất. Vì bộ điều khiển STM32F446RE là cỗ vi điều khiển dựa trên ARM Cortex M4 nên không gian bộ lưu trữ cho những thiết bị nước ngoài vi được ARM thích hợp như diễn tả trong hình:

*

Địa chỉ bộ lưu trữ trong khoảng tầm từ 0x40000000 mang lại 0x600000000 hoàn toàn có thể được nhà cung cấp vi điều khiển sử dụng nhằm ánh xạ các thiết bị ngoại vi khác biệt của họ. Vùng này được phân thành nhiều vùng phụ, từng vùng được ánh xạ tới một máy ngoại vi nạm thể, như biểu đạt trong hình mặt dưới. Từ góc nhìn lập trình viên, họ cần tìm kiếm ra địa chỉ cửa hàng mà một sản phẩm ngoại vi cụ thể được ánh xạ vào dải showroom này. Datasheet của vi tinh chỉnh sẽ cung cấp showroom một đồ vật ngoại vi cụ thể được ánh xạ. Vào trường hợp của bọn chúng ta, như bạn có thể thấy trong hình mặt dưới, đồ vật ngoại vi GPIO được ánh xạ trong dải showroom 0x40020000 mang lại 0x40021FFF. Đây cũng là vùng băng tần bit (chúng ta sẽ mày mò về vấn đề đó sau).

*

Như bọn họ thấy, GPIO ngoại vi được tạo thành GPIO A, GPIO B, GPIO C, GPIO D, GPIO E, GPIO F, GPIO G, GPIO H với mỗi cổng chứa về tối đa 16 chân. Nước ngoài vi GPIOA được ánh xạ từ địa chỉ 0x40020000 cho 0x400203FF với nó làm chủ tất cả các chân liên kết với PORT-A.

 

Mẫu vi cách xử lý ARM Cortex M-4 có bus dữ liệu rộng 32 bit, bus add và tập thanh ghi rộng 32 bit. Trên thực tế, mỗi từ có kích cỡ 32-bit. Biết được bus dữ liệu, bus địa chỉ cửa hàng và chiều rộng lớn thanh ghi là rất đặc biệt vì nó để giúp hiểu số đông thứ ở cấp độ rất thấp (cơ bản) tức là cấp độ trình điều khiển. Vì bọn họ biết rằng kích thước từ là 4 byte, bởi vì đó bạn có thể nói rằng đầy đủ thanh ghi của ngoại vi GPIO lâu năm 4 byte.

 

Cho cho bây giờ, bọn họ đã search ra địa chỉ cửa hàng cơ sở của các thiết bị nước ngoài vi GPIO. Đó là vấn đề đầu tiên các bạn sẽ làm với tư cách là 1 lập trình viên bất cứ khi nào bạn định lập trình ngẫu nhiên thiết bị ngoại vi làm sao là tìm địa chỉ cửa hàng cơ sở của lắp thêm ngoại vi. Bây giờ, bọn họ cần biết địa chỉ cửa hàng thanh ghi đúng đắn để lập trình các thanh ghi. Trước khi bước đầu lập trình các thanh ghi, chúng ta phải đọc mục đích của những thanh ghi này. Hãy đi sâu vào tập thích hợp thanh ghi GPIO!

 

Thanh ghi GPIO

 

Tất cả những GPIO bao gồm trong vi tinh chỉnh được team lại thành Cổng X trong số đó X là A, B, C, D ...

 

Mỗi cổng vào STM32F446RE bao gồm 16 chân. Từng chân có nhiều thanh ghi khác biệt được links với nó, bằng phương pháp thay đổi nội dung của các thanh ghi, bạn cũng có thể kiểm soát hành vi của một chân vắt thể.

 

Trong STM32F446RE, hành vi của từng chân hoàn toàn có thể được kiểm soát bằng phương pháp sử dụng:

 

Thanh ghi cơ chế GPIO

Thanh ghi loại cổng đầu ra GPIO

Thanh ghi tốc độ GPIO

Thanh ghi vuốt lên / kéo xuống GPIO

Thanh ghi dữ liệu đầu vào GPIO

Thanh ghi dữ liệu đầu ra GPIO

Thanh ghi mix / reset bit GPIO

Thanh ghi khóa cấu hình GPIO

Thanh ghi công dụng thay cố kỉnh GPIO

Chúng ta sẽ chăm chú các công dụng được giao hàng bởi từng thanh ghi này trong bài viết này. Hiểu công dụng của những thanh ghi này là rất quan trọng đặc biệt vì nó sẽ giúp bạn kiểm soát chân theo yêu ước của bạn. Bên cạnh ra, nếu bạn muốn viết driver GPIO của riêng mình, bạn sẽ chủ yếu viết các hàm cơ bản để lập trình các thanh ghi này và hỗ trợ API trừu tượng cho các ứng dụng người dùng sử dụng driver của bạn.

 

Chi máu về thanh ghi GPIO

 

Thanh ghi cơ chế GPIO - Thanh ghi này được thực hiện để chọn chế độ của chân cắm. Tất cả bốn chính sách có thể được thiết kế vào thanh ghi này: chế độ đầu vào, chính sách đầu ra mục đích chung, cơ chế chức năng thay thế sửa chữa và cơ chế analog. Khi ứng dụng muốn đọc ngẫu nhiên dữ liệu như thế nào từ phía bên ngoài như cảm biến, nó đang định thông số kỹ thuật chân gặm làm đầu vào. Từng chân tất cả một bộ đệm đầu vào tương xứng mà phần mềm có thể đọc được khi chân kia đang chuyển động ở cơ chế INPUT. Chế độ Đầu ra mục đích Chung được áp dụng khi chúng ta muốn ghi quý giá THẤP hoặc CAO vào chân. Ví dụ: nếu bọn họ kết nối một đèn led chiếu sáng với một chân và bọn họ muốn để đèn sáng LED, phần mềm sẽ cấu hình chân kia là cổng đầu ra và ghi HIGH (VDD) vào chân. Từng chân bao gồm một bộ đệm cổng output tương ứng có thể được ghi vày phần mềm, trong trường phù hợp này, bọn họ đang ghi 1 vào cỗ đệm đầu ra. Chế độ chức năng thay thế được áp dụng khi chúng ta muốn gán một chân ví dụ cho bất kỳ thiết bị nước ngoài vi như thế nào khác. Hãy chia nhỏ ra một cách đơn giản dễ dàng dễ hiểu với một ví dụ 1-1 giản. Ví dụ: Nếu bạn có nhu cầu sử dụng giao tiếp I2C, các bạn sẽ cần nhị chân là SDA và SCL. Các bạn cần chọn 1 số chân ví dụ do nhà cung cấp vi điều khiển và tinh chỉnh cung cấp, hoàn toàn có thể được thực hiện như cái I2C SDA và SCL. Chúng ta có thể lấy thông tin này tự datasheet thiết bị. Vào bảng dưới đây, chúng ta có thể thấy rằng so với SCL ngoại vi I2C1, bạn có thể sử dụng Cổng B Chân 6 trong tính năng Thay cầm (AF) 4.

*

Từ sơ đồ vật trên, chúng ta có thể thấy rằng nhà cấp dưỡng thiết bị đã ánh xạ một số trong những chân ví dụ nhất định sẽ tiến hành sử dụng bởi các thiết bị nước ngoài vi khác nhau. Bởi vì đó, trong lấy một ví dụ của bọn chúng ta, Cổng B Chân 6 buộc phải được cấu hình ở cơ chế chức năng sửa chữa thay thế để nó có thể được thực hiện bởi đồ vật ngoại vi I2C1. Nếu bạn có nhu cầu gán những chân đến thiết bị ngoại vi ADC (Analog lớn Digital Converter) hoặc DAC (Digital lớn Analog convertor), chúng ta nên định cấu hình chế độ là chính sách Analog.

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.