Gpio Là Gì
GPIO là viết tắt của General Purpose Input output là trong số những thuật ngữ thông dụng nhất mà chúng ta cũng có thể đã gặp. Khi bạn bắt đầu công bài toán trong một khối hệ thống nhúng, đó là từ đầu tiên bạn buộc phải nghe nói đến. Nhưng các bạn có suy nghĩ rằng bạn đã ráng vững tất cả các khái niệm tương quan đến GPIO? biểu thị trên các chân GPIO mang lại phép bọn họ đạt được tác dụng cuối của mình và mang đến phép chúng ta 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ề các khái niệm khác nhau liên quan mang lại GPIO. Ở cuối bài viết này, các bạn sẽ có thể vấn đáp gpio là gì, các loại GPIO rất có thể được sử dụng là gì, cách cấu hình gpio để tiết kiệm ngân sách và chi phí điện năng, ảnh hưởng của vận tốc GPIO mang lại phát xạ EMI của bo mạch, khóa gpio để chống việc cấu hình lại ngẫu nhiên,... Là 1 kỹ sư phần mềm, chúng ta phải cố gắng vững những khái niệm này bởi vì hầu hết các bước của các bạn sẽ là viết mã bare metal hoặc mã driver và là 1 trong nhà cải cách và phát triển ứng dụng nhúng, bạn nên biết các khái niệm này theo sản phẩm công nghệ tự để hiểu các chức năng cốt lõi được cung cấp bởi GPIO API với nếu có gì đấy bị hỏng, chúng ta cũng có thể nhanh chóng thay thế sửa chữa ở cung cấp driver.
Bạn đang xem: Gpio là gì
GPIO là gì?
GPIO là một trong chân biểu lộ kỹ thuật số trên mạch tích hợp mà lại hành vi của nó (đầu vào hoặc đầu ra) được tinh chỉnh và điều khiển bởi ứng dụng ứng dụng. GPIO về cơ bản là một chân có thể được cấu hình làm đầu vào hoặc đầu ra. Nếu họ cấu hình chân như một đầu ra, bạn cũng 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, bạn có thể đọc biểu hiện trên chân đó. GPIO là đồ họa tiêu chuẩn chỉnh mà qua đó vi điều khiển hoàn toàn có thể giao tiếp với thế giới bên ngoài. Nó có thể được thực hiện để đọc các giá trị từ cảm biến analog hoặc kỹ thuật số, tinh chỉnh đèn LED, điều khiển đồng hồ đeo tay cho giao tiếp I2C,...
Bản đồ bộ nhớ của ngoại vi GPIO
Như họ đã hiểu được vi điều khiển tân tiến sử dụng kỹ thuật bạn dạng đồ bộ lưu trữ để ánh xạ tất cả các thiết bị ngoại vi vào một không gian bộ nhớ lưu trữ thống nhất. Bởi vì bộ điều khiển STM32F446RE là bộ vi điều khiển dựa bên trên ARM Cortex M4 cần không gian bộ nhớ cho những thiết bị ngoại vi được ARM thích hợp như mô tả trong hình:

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

Như chúng ta thấy, GPIO ngoại vi được phân thành GPIO A, GPIO B, GPIO C, GPIO D, GPIO E, GPIO F, GPIO G, GPIO H và mỗi cổng chứa tối đa 16 chân. Ngoại vi GPIOA được ánh xạ từ add 0x40020000 mang lại 0x400203FF cùng nó thống trị tất cả các chân liên kết với PORT-A.
Mẫu vi giải pháp xử lý ARM Cortex M-4 tất cả bus dữ liệu rộng 32 bit, bus showroom và tập thanh ghi rộng lớn 32 bit. Trên thực tế, mỗi từ có kích thước 32-bit. Hiểu rằng bus dữ liệu, bus add và chiều rộng thanh ghi là rất đặc biệt vì nó sẽ giúp đỡ hiểu số đông thứ ở cấp độ rất tốt (cơ bản) tức là cấp độ trình điều khiển. Vì họ biết rằng kích cỡ từ là 4 byte, vì đó chúng ta có thể nói rằng số đông thanh ghi của nước ngoài vi GPIO lâu năm 4 byte.
Xem thêm: Công Nghiệp Hóa Hiện Đại Hóa Là Gì, Khái Niệm, Vai Trò
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ị ngoại vi GPIO. Đó là điều đầu tiên bạn sẽ làm với tư cách là 1 trong những lập trình viên bất cứ lúc nào bạn định lập trình bất kỳ thiết bị nước ngoài vi làm sao là tìm địa chỉ cửa hàng cơ sở của thiết bị ngoại vi. Bây giờ, chúng ta cần biết add thanh ghi đúng chuẩn để lập trình các thanh ghi. Trước khi bước đầu lập trình những thanh ghi, họ phải phát âm mục đích của những thanh ghi này. Hãy đi sâu vào tập đúng theo thanh ghi GPIO!
Thanh ghi GPIO
Tất cả các GPIO có trong vi điều khiển và tinh chỉnh được đội 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. Mỗi chân có nhiều thanh ghi khác nhau được link với nó, bằng phương pháp thay đổi nội dung của các thanh ghi, chúng ta cũng có thể kiểm soát hành động của một chân cố gắng thể.
Trong STM32F446RE, hành động 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 chính sách GPIO
Thanh ghi loại cổng output GPIO
Thanh ghi tốc độ GPIO
Thanh ghi dàn ra / kéo xuống GPIO
Thanh ghi tài liệu đầu vào GPIO
Thanh ghi tài liệu đầu ra GPIO
Thanh ghi set / reset bit GPIO
Thanh ghi khóa thông số kỹ thuật GPIO
Thanh ghi chức năng thay cụ GPIO
Chúng ta sẽ xem xét các công dụng được ship hàng bởi từng thanh ghi này trong bài viết này. Hiểu tính năng của các thanh ghi này là rất đặc biệt quan trọng vì nó để giúp đỡ bạn kiểm soát và điều hành chân theo yêu ước của bạn. Ngoại trừ ra, nếu bạn có nhu cầu viết driver GPIO của riêng mình, các bạn sẽ chủ yếu ớt viết các hàm chủ chốt để lập trình những thanh ghi này và hỗ trợ API trừu tượng cho các ứng dụng người tiêu dùng sử dụng driver của bạn.
Chi huyết về thanh ghi GPIO
Thanh ghi chính sách GPIO - Thanh ghi này được sử dụng để chọn cơ chế của chân cắm. Bao gồm bốn chế độ có thể được xây dựng vào thanh ghi này: chính sách đầu vào, chế độ đầu ra mục đích chung, cơ chế chức năng sửa chữa và chính sách analog. Khi ứng dụng muốn đọc ngẫu nhiên dữ liệu nào từ bên ngoài như cảm biến, nó vẫn định cấu hình chân cắn làm đầu vào. Từng chân tất cả một cỗ đệm đầu vào tương ứng mà phần mềm có thể đọc được khi chân đó đang chuyển động ở chính sách INPUT. Cơ chế Đầu ra mục tiêu Chung được thực hiện khi bọn họ muốn ghi quý hiếm THẤP hoặc CAO vào chân. Ví dụ: nếu họ kết nối một đèn led với một chân và họ muốn bật đèn sáng LED, ứng dụng sẽ thông số kỹ thuật chân đó là áp sạc ra và ghi HIGH (VDD) vào chân. Mỗi chân bao gồm một bộ đệm đầu ra output tương ứng có thể được ghi vì phần mềm, vào trường đúng theo này, chúng ta đang ghi 1 vào cỗ đệm đầu ra. Chế độ chức năng thay thế sửa chữa được sử dụng khi họ muốn gán một chân rõ ràng cho bất kỳ thiết bị ngoại vi như thế nào khác. Hãy chia nhỏ tuổi ra một cách dễ dàng và đơn giản dễ đọc với một ví dụ đối chọi giản. Ví dụ: Nếu bạn muốn sử dụng tiếp xúc I2C, các bạn sẽ cần hai chân là SDA và SCL. Bạn cần lựa chọn một số chân ví dụ do nhà hỗ trợ vi tinh chỉnh cung cấp, có thể được áp dụng như dòng I2C SDA cùng SCL. Chúng ta cũng có thể lấy thông tin này tự datasheet thiết bị. Vào bảng bên dưới đây, chúng ta cũng có thể thấy rằng so với SCL nước ngoài vi I2C1, bạn có thể sử dụng Cổng B Chân 6 trong chức năng Thay vắt (AF) 4.
Xem thêm: Thế Nào Là Lãnh Địa Phong Kiến Là Gì ? Thế Nào Là Lãnh Địa Phong Kiến

Từ sơ vật dụng trên, bạn cũng có thể thấy rằng nhà chế tạo thiết bị sẽ ánh xạ một trong những chân rõ ràng nhất định sẽ được sử dụng bởi những thiết bị ngoại vi không giống nhau. Vày đó, trong lấy ví dụ như của chúng ta, Cổng B Chân 6 đề xuất được cấu hình ở cơ chế chức năng thay thế để nó hoàn toàn có thể được áp dụng bởi đồ vật ngoại vi I2C1. Nếu bạn có nhu cầu gán các chân mang lại thiết bị ngoại vi ADC (Analog khổng lồ Digital Converter) hoặc DAC (Digital lớn Analog convertor), chúng ta nên định thông số kỹ thuật chế độ là chính sách Analog.