Sử dụng điện trở kéo lên và kéo xuống trên các chân MCU đầu vào hoặc đầu ra


18

Các điện trở kéo lên / xuống (dù là bên trong hay bên ngoài) chỉ cần thiết cho các chân MCU INPUT? Ngược lại, chân MCU được định cấu hình là OUTPUT "biết mức độ của nó" bởi vì nó đang lái xe - chân MCU OUTPUT "nổi" được gắn với một số đầu vào của mạch khác không có ý nghĩa gì, bởi vì trạng thái của chân MCU chỉ có thể cao hay thấp ... tôi có quyền này không? Bây giờ, khi khởi động hoặc thất bại MCU, có thể có ích khi kéo lên / xuống gắn với dòng "đầu ra MCU vào đầu vào IC" này để đảm bảo rằng đầu vào của một số IC không bao giờ nổi.

Có lẽ tôi chỉ trả lời câu hỏi của riêng mình ở đây ... điện trở kéo lên / xuống có thể được sử dụng trên cả hai chân đầu vào và đầu ra, tùy thuộc vào ứng dụng?

Câu trả lời:


21

Kéo lên và kéo xuống thường được sử dụng để đảm bảo một dòng có trạng thái xác định trong khi không được điều khiển tích cực. Chúng được sử dụng trên các đầu vào để ngăn chặn các đường nổi, chuyển đổi nhanh giữa cao và thấp và khu vực "không xác định" ở giữa. Đầu ra thường không cần chúng.

Nhưng hầu hết các chân mcu là GPIO và đôi khi khi khởi động được định nghĩa là đầu vào thay vì đầu ra. Như bạn đã nói, đôi khi bạn không muốn đầu vào chân IC nổi khi khởi động, đặc biệt giống như pin đặt lại mà bạn thường lái với GPIO của vi điều khiển.

Đây là khi bạn sử dụng Kéo yếu lên hoặc Kéo xuống trên đường dây. Vì chúng yếu và bạn chọn trạng thái mặc định, chúng không gây nhiễu cho mạch của bạn (Nếu đầu vào được cho là thấp mọi lúc, sau đó kéo lên cao, bạn chọn kéo xuống yếu và ngược lại), nhưng họ tiêu thụ một chút của hiện tại. Đây là lý do tại sao bạn chọn một điện trở yếu (Giá trị càng cao, càng yếu) đủ cho công việc.

Một thiết lập đầu ra bình thường khác sử dụng pull-up (hoặc pull-down, rarer) là các kết nối Open Drain hoặc Open Collector . Những điều này chỉ lái một kết nối thấp, hoặc giải phóng dòng, để nó nổi. Các pull-up được sử dụng để đưa dòng về trạng thái logic cao.


Bạn đề cập đến các kết nối Open Drain và Open Collector, chúng không áp dụng cho các bộ vi điều khiển phải không? Chỉ Mosfets đang được sử dụng để thiết lập một mức độ logic? Tôi muốn làm rõ liệu một vi điều khiển có thể điều khiển một dòng có điện trở kéo xuống cao hay không.
genericpurpleturtle

9

Bạn có nó về quyền; thông thường bạn không cần pullups trên đầu ra, nhưng chúng có thể hữu ích để duy trì sự an toàn trong thời gian khởi động, v.v.

Một lý do khác để sử dụng kéo lên trên một đầu ra: nếu một số đầu ra từ một số MPU ​​được kết nối với nhau, bạn thực sự không muốn một VCC lái và một 0V khác lái trên cùng một dây! Vì vậy, bạn có thể lái 0V trên đầu ra hoặc tắt đầu ra (có lẽ bằng cách định cấu hình nó làm đầu vào). Khi tất cả các đầu ra bị tắt, dây được kéo đến '1' (Vcc) bởi pullup. Đây được gọi là tín hiệu "có dây VÀ". (Bạn có thể thực hiện lái xe tương tự '1' hoặc tắt, với R kéo xuống, sau đó được gọi là OR có dây).

Mẫu này có một số cách sử dụng bao gồm cho phép bất kỳ một MPU nào báo hiệu lỗi hoặc bật đèn LED hoặc cho phép tất cả chúng thay phiên nhau gửi tin nhắn cho nhau trên một dây.


4

Như bạn đã nói, sử dụng điện trở pullup / pulldown trên các chân dự kiến ​​là chân đầu ra có thể ở đó để đảm bảo trạng thái đầu vào.

Điều này được thực hiện để giảm thiểu lỗi firmware / MCU, nhưng sẽ chỉ hoạt động để bảo vệ chống lại trạng thái trở kháng Hi (về cơ bản là pin được cấu hình là đầu vào do tai nạn).

Hầu hết các MCU tôi đều quen thuộc với các chân IO mặc định ở trạng thái đầu vào có trở kháng cao khi khởi động (nhưng không đảm bảo và tôi không có kinh nghiệm với bất kỳ nơi nào gần tất cả các họ MCU), điều đó có nghĩa là phải mất một thời gian trước khi mã để khởi tạo mã pin trạng thái được thực thi.

Đôi khi điều này không thành vấn đề, lần khác nó không.


Cảm ơn câu trả lời, cũng khen những câu trả lời khác! FYI, sê-ri PIC24F mặc định các chân GPIO thành trở kháng cao (đầu vào) khi được đặt lại (biểu dữ liệu chân I / O).
The_Ders

3

Câu trả lời là nó phụ thuộc vào họ vi điều khiển và hành vi mặc định của nó là gì trên Power On Reset. Nếu vi điều khiển chỉ có thể được cấu hình cho "đầu ra" hoặc "đầu vào" trên một pin, điều này thường có nghĩa là nó đang sử dụng trình điều khiển Totem-Cực cho đầu ra - nghĩa là về cơ bản đó là đầu ra của cổng CMOS, trong trường hợp đó là đầu ra luôn được dẫn đến một đường ray, vì vậy không có lý do gì để ảnh hưởng thụ động đến nó. Trường hợp duy nhất có ý nghĩa khi sử dụng pull-up / pull-down trên một đầu ra là khi nó được cấu hình là cấu trúc liên kết Open Collector / Open Drain. Nó phổ biến hơn nhiều để thấy các tùy chọn kéo lên / kéo xuống bên trong chỉ áp dụng được khi pin được cấu hình làm đầu vào. Nếu bạn có thể đảm bảo rằng trong hệ thống của mình, đầu vào luôn được điều khiển bởi một cái gì đó, điều này sẽ lãng phí một chút năng lượng.


Giải thích tuyệt vời ở cấp độ phần cứng. Cảm ơn bạn!
The_Ders

2

Bạn có thể có một pin là đầu ra đôi khi , chẳng hạn như để thực hiện I2C.


Tôi sẽ ghi nhớ điều này khi làm việc với I2C trong tương lai. Tôi tin rằng với dòng PIC24F, mô-đun I2C đảm nhận toàn quyền kiểm soát các chân và các dòng yêu cầu kéo ra bên ngoài. Bây giờ tôi đã biết lý do tại sao - mô-đun I2C về cơ bản định cấu hình chân dữ liệu là đầu ra cống / bộ thu mở (yêu cầu điện trở kéo lên) hoặc đầu vào có trở kháng cao, tùy thuộc vào việc dữ liệu được đưa ra / nhập từ / đến Mô-đun I2C ... tôi có quyền này không? Tôi không quen thuộc với I2C.
The_Ders

Điều đó hoàn toàn chính xác.
pjc50

I2C là một ví dụ của mẫu AND có dây. Bộ sưu tập mở làm cho nó đơn giản như bạn có thể với một chân GPIO.
Brian Drumond
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.