GPIO: Tại sao nút dây tiếp đất chứ không phải + 3.3v?


13

Trong hầu hết các ví dụ tôi đã thấy các nút nối dây với đầu vào GPIO, nút này có dây để khi đóng lại, một mạch được hoàn thành giữa pin và mặt đất, tạo ra đầu vào thấp trên chân. Một điện trở kéo lên được sử dụng để mặc định giá trị đầu vào ở mức cao. Mã trên Pi sau đó có thể phát hiện mức thấp khi nhấn nút.

Tôi đã kết nối các nút với + 3,3v để tín hiệu ở mức cao vì điều này dường như có ý nghĩa hơn và giữ cho mã hợp lý hơn nhưng phải có một lý do mà hầu hết mọi người thích kết nối với mặt đất. Các lợi thế là gì?


Lưu ý: Khi tôi nói 'điện trở kéo lên' tôi có nghĩa là điện trở ngoài vật lý hoặc điện trở kéo lên bên trong, được định cấu hình theo mã.
howard10

Câu trả lời:


17

Một trong những lý do chính tại sao các nút nối dây và logic với GND được ưa chuộng (và sau đó được sao chép trên internet) là vì tối ưu hóa năng lượng.

  • Kéo một pin THẤP với điện trở đến GND tốn 0 watt.
  • Kéo một pin CAO với điện trở lên + Vcc tốn điện.

Trên các mạch phức tạp hoặc các mạch dựa vào pin, năng lượng này rất quý giá.

Các lý do khác bao gồm thế hệ EMF thấp. Trên các thiết bị không dây kéo logic cao sẽ gây ra cuộc trò chuyện chéo không cần thiết trên các máy thu RF cực kỳ nhạy. Trên các máy thu phát như vậy, có một mặt phẳng GND được sử dụng để lọc nhiễu và đây là nơi tất cả logic được kéo xuống. Bộ xử lý sau đó sử dụng mặt phẳng GND để lọc tiếng ồn chuyển đổi.


3
Làm thế nào để kéo lên hoặc xuống với một điện trở chi phí điện năng? Dòng điện đang chảy đến đầu vào trở kháng rất cao trên Pi, điều này sẽ làm giảm bất kỳ dòng điện nào xuống dưới microAmps, đó là microWatts công suất.
stefandz

OK, nhưng chỉ cho tôi biết nếu tôi sai. kéo ghim xuống, đó là 0v = 0wattscách sử dụng, nhưng kéo ghim lên >0watts- bất kỳ loại nào, micro, milli, nano, đều không thành vấn đề. Như đã đề cập, về năng lượng pin, mỗi nano watt đều có ích. Nhưng như đã trả lời ở đây ... trên USB, điều đó không có nghĩa gì. Tôi có nhầm không?
Piotr Kula

1
Không nhất thiết phải đúng. Đầu vào kỹ thuật số có trở kháng cao đối với mặt đất - đúng. Nhưng họ không chỉ là điện trở. Chúng là cổng đầu vào, thông thường cho FET và các cổng này là không lý tưởng. Chúng có dòng rò, và những dòng rò này có thể theo hướng, vào hoặc ra. Do đó, pulldown của bạn có thể tiêu thụ một hoặc hai microwatt, nhiều như một pullup có thể.
stefandz

Nếu bạn phải thiết kế một thiết bị nhúng chạy bằng pin 2AA và khách hàng yêu cầu nó chạy ít nhất 12 tháng. Và bạn phải kéo xuống / lên GPIO. Mà bạn sẽ sử dụng để tiết kiệm năng lượng nhất. (Chúng ta nói về quản lý vi mô ở đây)
Piotr Kula

4
Đối với những gì nó có giá trị, tôi đã thực hiện một số phép đo về điều này - và chiến thắng kéo xuống (cho mức tiêu thụ năng lượng) nhưng chỉ là. Kéo 10k lên 3,3V = 9fW (có xương đùi) - 10k kéo xuống đất = 5fW. Điều này chắc chắn không phải là ngay cả trong việc tiết kiệm một chút lãnh thổ pin.
stefandz

9

Có những lý do lịch sử phức tạp tại sao các kỹ sư điện thường kéo đầu vào cao bằng điện trở và sử dụng các công tắc để nối đất chúng.

Tuy nhiên những lý do này không liên quan đặc biệt đến việc sử dụng Raspberry Pi. Sử dụng bất cứ điều gì có ý nghĩa với bạn.

Nếu bạn đang làm một sản phẩm thương mại hoặc muốn thiết kế của mình tốt hơn một chút, bạn sẽ chọn pull-up với công tắc nối đất vì những lý do thực tế sau:

  • Một dây nối đất dài có ít rủi ro bức xạ EMI / EMC hơn so với kết nối với nguồn điện
  • Nối đất một cái gì đó và tìm một điểm mặt đất để kết nối, dễ dàng hơn một đường dây điện
  • Nếu công tắc hoặc hệ thống dây điện, thường đặt cách xa mạch điện, sẽ bị hỏng và làm chập dây điện hoặc các bộ phận chuyển đổi bên trong vỏ máy hoặc người dùng, không có tác hại nào xảy ra - tất cả đều ở dưới đất

2

Nghiêm túc không cần điện trở kéo lên, BMC GPIO có điện trở kéo lên bên trong được kích hoạt khi được lập trình như một đầu vào, mặc dù nó không gây hại.

Việc kết nối trực tiếp chân GPIO với 3V3 hoặc GND là một thực tế kém. GPIO là hai chiều và nếu được lập trình như một đầu vào, điều này sẽ không gây ra vấn đề gì. Mặt khác, nếu được lập trình như một đầu ra sẽ gây ra dòng điện quá mức.

Thiết kế tốt (an toàn) sẽ sử dụng điện trở nối tiếp (1 kΩ) nối tiếp với nút nhấn để hạn chế dòng điện. Vì những lý do được đưa ra bởi Adam Davis, tốt nhất là kết nối nút nhấn với mặt đất và xác định vị trí điện trở bảo vệ gần với chân GPIO.


Vấn đề duy nhất là trong giai đoạn khởi động 1-3, các chân này bị trôi nổi (chuyển giao GPU sang CPU) sau đó ở Giai đoạn 4 trong khi Linux Kernel khởi động, mã PIN được đặt ở trạng thái chính xác. Điều này có thể gây ra vấn đề nghiêm trọng với các cổng chờ logic. Vì vậy, dù sao thì cũng nên kéo chúng xuống để giai đoạn nổi trong quá trình khởi động không làm cho mạch của bạn bị rối loạn!
Piotr Kula

1

Tôi không nghĩ có lý do để thích cái này hơn cái kia trên RPi. Hầu hết mọi người có lẽ chỉ là sao chép hoặc chuyển mạch mà họ đã thấy ở nơi khác.

Khi kết nối mạch (với dây hoặc PCB), bạn chỉ cần chọn cái nào thuận tiện hơn và dịch nó sang đúng nghĩa trong phần mềm của bạn.


0

Trong những ngày xưa của TTL, cần nhiều thời gian hơn để kéo một chốt thấp hơn là kéo nó lên cao. Vì vậy, một điện trở pullup có thể có điện trở cao hơn (và do đó ít lãng phí điện năng hơn) so với điện trở kéo xuống. Nó không quan trọng với CMOS hiện đại nhưng thói quen cũ chết cứng.


-1

Kết nối pin với mặt đất với một điện trở pullup bên trong có nghĩa là bạn sử dụng ít bộ phận hơn. Tất cả bạn cần là một nút; không cần một điện trở bên ngoài để hạn chế dòng điện.

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.