Bạn Không Luôn Cần Có Điện Trở Kéo Lên Trên Các Đường SPI

Zachariah Peterson
|  Created: Tháng Mười 19, 2023  |  Updated: Tháng Mười Một 11, 2024
điện trở pull-up SPI

Có một quan niệm sai lầm phổ biến rằng điện trở kéo lên (pull-up resistors) là cần thiết hoặc bắt buộc trên các đường trong một bus SPI. Tôi ở đây để khẳng định rằng điện trở kéo lên không cần thiết trên một bus SPI để thực hiện chức năng cơ bản của việc gửi và nhận dữ liệu số.

Bộ đệm trong một giao diện SPI có một cấu trúc đẩy kéo (push-pull topology) mà (ở mức độ cao) bao gồm việc chuyển đổi MOSFET ở phía cao và phía thấp, cơ bản tạo thành một bộ đảo CMOS. Như chúng ta sẽ thấy trong bài viết này, sự hiện diện của điện trở kéo lên không ảnh hưởng đến chức năng của một bus đẩy kéo.

Tuy nhiên, có những trường hợp mà việc đặt một điện trở kéo lên trên một bus đẩy kéo là có ý nghĩa, và trong một số bảng dữ liệu nhà sản xuất linh kiện sẽ khuyến nghị hoặc yêu cầu nó. Chúng ta sẽ xem xét những tình huống này và cách nó ảnh hưởng đến hành vi của hệ thống của bạn. Mặc dù có thể có những giải pháp phức tạp hơn loại bỏ nhu cầu về điện trở kéo lên trong những tình huống này, việc đặt một điện trở kéo lên có thể là một giải pháp giữ cho thiết kế của bạn đơn giản và cung cấp bảo hiểm rằng giao diện sẽ hoạt động chính xác.

Cách một Bus SPI Hoạt Động Với Điện Trở Kéo Lên

Hãy cùng xem xét mô hình tiêu biểu của một bộ đệm trong giao diện SPI. Tất cả các bộ đệm SPI đều có cấu trúc đẩy kéo bao gồm việc chuyển mạch ở phía cao và phía thấp để truyền tín hiệu vào bus, và mỗi tín hiệu trong bus SPI (CS, MOSI, MISO và SCLK) đều sẽ có cấu trúc này. Một ví dụ về mạch này được hiển thị dưới đây. Lưu ý rằng một bộ đệm SPI thực tế không đơn giản chỉ là hai MOSFET, nhưng ý tưởng chung vẫn được áp dụng.

CMOS inverter như một trình điều khiển SPI. Đầu ra kết nối với một đường truyền (được biểu diễn như các phần tử tụ) và một mạch tải (mô hình tương đương RC).

Unparalleled Schematic Capture

Easily design schematics of any complexity.

Lý do chính để sử dụng cấu trúc này là để việc xả điện dung trong mạch bộ đệm cung cấp tốc độ cạnh khá nhanh trên đầu ra, sẽ ngắn hơn nhiều so với chu kỳ đồng hồ trên bus. Đây là điều cho phép tốc độ dữ liệu nhanh hơn so với một giao thức mở-drain (ví dụ, I2C).

Một bus SPI bao gồm các điện trở kéo lên cơ bản là một trình điều khiển inverter CMOS với một điện trở mắc song song với FET phía cao trong bộ đệm đầu ra. Bây giờ, hãy xem điều gì xảy ra trong mỗi trạng thái chuyển mạch trong trình điều khiển và chúng ta có thể thấy điều gì xảy ra trên bus.

Trạng thái Đầu ra Mức CAO

Trong trạng thái đầu ra mức CAO, NMOS tắt và PMOS mở. VDDIO bây giờ cung cấp dòng điện vào đường dẫn và tải kết nối. Điện dung trong đường dẫn và tải sau đó bắt đầu sạc lên cho đến khi điện áp nhìn thấy tại tải khớp với VDDIO. Tại đây, điện trở ON của PMOS ở mức mOhm, trong khi điện trở kéo lên ở mức từ 1 đến 10 kOhms. Rõ ràng, điện trở kéo lên quá lớn đến mức nó cơ bản được coi là bị ngắn mạch bởi PMOS trong trạng thái đầu ra mức CAO.

Vì tất cả dòng điện đều chảy qua PMOS trong trạng thái logic CAO bất kể sự hiện diện của điện trở kéo lên, đặc tính chuyển mạch sẽ không bị ảnh hưởng.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

Trạng thái Đầu ra Mức THẤP

Bây giờ, hãy xem xét mạch đã chuyển sang trạng thái đầu ra LOW logic. Trong trạng thái này, NMOS được BẬT và PMOS được TẮT, vì vậy dấu vết và điện dung tải đang được xả qua NMOS vào mạng GND. Vì PMOS đang tắt, nó xuất hiện như một điện trở rất cao (cỡ MOhm) lớn hơn nhiều so với giá trị của điện trở kéo lên (1 đến 10 kOhm).

Do điện trở kéo lên nhỏ hơn trong trường hợp này, nó sẽ cho phép một giá trị dòng điện của VDDIO/R(pu) chảy vào NMOS. Đối với một điện trở kéo lên 1 đến 10 kOhm và VDDIO = 3.3 V, dòng rò vào NMOS sẽ là 0.33 đến 3.3 mA. Điều này nhỏ hơn nhiều so với dòng điện SPI điển hình khoảng ~50 mA, vì vậy một lần nữa chúng ta sẽ không nhận thấy bất kỳ ảnh hưởng nào đến đặc tính chuyển mạch. Thời gian rơi trên bus sẽ bị giới hạn bởi điện dung tải và dấu vết, trở kháng điện trở đầu ra của mạch đệm, và trở kháng trạng thái BẬT của NMOS.

Nếu Việc Chuyển Mạch Không Bị Ảnh Hưởng, Tại Sao Lại Sử Dụng Điện Trở Kéo Lên?

Rõ ràng, việc đặt một điện trở kéo lên trên đường SPI không ảnh hưởng đến khả năng truyền tín hiệu vào bus. Do đó, điện trở kéo lên phải đang thực hiện một chức năng khác không liên quan đến truyền dữ liệu, nếu không thì điện trở sẽ không được sử dụng.

Lý do sử dụng điện trở kéo lên trên một hoặc nhiều đường trong giao diện SPI thay đổi tùy thuộc vào tình huống đề xuất. Một số tình huống mà điện trở kéo lên được sử dụng bao gồm:

Easy, Powerful, Modern

The world’s most trusted PCB design system.

  • Đặt trên đường CS cho một thiết bị ngoại vi
  • Đặt trên đường MISO cho một thiết bị chủ
  • Đặt trên đường MOSI cho một thiết bị ngoại vi
  • Đặt trên tất cả các đường bus gần các chân xuất

Lý do được nêu ra cho việc đặt trong bất kỳ tình huống nào như vậy là để thiết lập trạng thái logic trên một trong các thành phần ngoại vi trong bus. Khuyến nghị phổ biến nhất là đặt một điện trở kéo lên trên chân CS của một ngoại vi để kéo nó cao. Nếu ngoại vi có một chân kích hoạt thấp, thì điều này sẽ luôn kéo chân cao trừ khi phía điều khiển của việc kéo đặt chân thấp.

Một ví dụ về việc sử dụng như vậy được hiển thị bên dưới. Trong bố cục PCB, điện trở kéo lên sẽ được đặt gần chân CS của thiết bị ngoại vi này.

Vị trí điển hình của một điện trở kéo lên trên chân CS của một bus SPI.

Tại sao lại sử dụng điều này? Lý do được đưa ra là trong quá trình khởi động hệ thống, chân CS có thể ở trạng thái nổi và điều này tạo ra rủi ro là nhiễu có thể làm hỏng dữ liệu trên bus. Hơn nữa, nếu thiết bị chủ khởi động trước thiết bị ngoại vi và chân CS được kích hoạt không chủ ý, thiết bị chủ có thể bắt đầu thao tác dữ liệu trong thiết bị ngoại vi. Điều này đôi khi được trích dẫn là lý do để đặt một điện trở kéo lên trên thiết bị ngoại vi bộ nhớ.

Đến nay, tôi không thể tìm thấy lý do thuyết phục nào để đặt một điện trở kéo lên trên dây SCLK (đồng hồ). Lý do là mạch logic nhận sẽ không chuyển đổi nếu các điều kiện khác (cụ thể là trạng thái dây CS) không được đáp ứng bất kể sự hiện diện của tín hiệu đồng hồ. Một số ghi chú ứng dụng và bảng dữ liệu khuyến nghị điện trở kéo lên cho MISO hoặc MOSI vì các lý do khác nhau, nhưng việc kiểm tra xem điều này có hiệu quả không là đơn giản và điện trở luôn có thể được gỡ bỏ khi làm việc với nguyên mẫu của bạn.

Điều Khiển Trình Tự Nguồn Là Một Giải Pháp Phức Tạp Hơn

Bởi vì đây thường được trích dẫn như một vấn đề với trạng thái chân CS trong quá trình khởi động hệ thống, tôi nghĩ rằng việc sắp xếp nguồn điện giữa các thiết bị ngoại vi và hệ thống chủ là cách tiếp cận tốt nhất để ngăn ngừa vấn đề này trong quá trình khởi động. Trong các hệ thống nhỏ hơn, có thể không có không gian trong thiết bị để chứa nhiều bộ điều chỉnh điện áp hoặc bộ điều khiển nguồn có thể truyền qua nguồn điện cần thiết. Một giải pháp đơn giản hơn là đặt một điện trở kéo lên, nhưng cần hiểu rằng những điện trở kéo lên này không bắt buộc cho việc giao diện hoạt động đúng cách.

Dù bạn cần xây dựng các thiết bị điện tử nguồn đáng tin cậy hay các hệ thống kỹ thuật số tiên tiến, hãy sử dụng bộ đầy đủ các tính năng thiết kế PCB và công cụ CAD đẳng cấp thế giới trong Altium Designer®. Để triển khai sự hợp tác trong môi trường đa ngành ngày nay, các công ty sáng tạo đang sử dụng nền tảng Altium 365™ để dễ dàng chia sẻ dữ liệu thiết kế và đưa các dự án vào sản xuất.

Chúng ta mới chỉ bắt đầu khám phá những gì có thể làm được với Altium Designer trên Altium 365. Bắt đầu dùng thử miễn phí Altium Designer + Altium 365 ngay hôm nay.

About Author

About Author

Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to companies in the electronics industry. Prior to working in the PCB industry, he taught at Portland State University and conducted research on random laser theory, materials, and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensors, and stochastics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written 2500+ technical articles on PCB design for a number of companies. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society, and the Printed Circuit Engineering Association (PCEA). He previously served as a voting member on the INCITS Quantum Computing Technical Advisory Committee working on technical standards for quantum electronics, and he currently serves on the IEEE P3186 Working Group focused on Port Interface Representing Photonic Signals Using SPICE-class Circuit Simulators.

Related Resources

Tài liệu kỹ thuật liên quan

Back to Home
Thank you, you are now subscribed to updates.
Altium Need Help?