Nie zawsze potrzebujesz rezystorów podciągających na liniach SPI

Zachariah Peterson
|  Utworzono: październik 19, 2023  |  Zaktualizowano: listopad 11, 2024
rezystory podciągające SPI

Istnieje popularny błąd pojmowania, że rezystory podciągające są wymagane lub konieczne na liniach w magistrali SPI. Chcę wam powiedzieć jednoznacznie, że rezystory podciągające nie są wymagane w magistrali SPI do wykonania jej podstawowej funkcji wysyłania i odbierania danych cyfrowych.

Bufor w interfejsie SPI ma topologię push-pull, która (na wysokim poziomie) obejmuje przełączanie tranzystorów MOSFET wysokiej i niskiej strony, tworząc w zasadzie inwerter CMOS. Jak zobaczymy w tym artykule, obecność rezystorów podciągających nie ma wpływu na funkcjonalność magistrali push-pull.

Mimo to, są sytuacje, kiedy ma sens umieszczenie rezystora podciągającego na magistrali push-pull, i w niektórych kartach katalogowych producent komponentów może go zalecić lub wymagać. Przyjrzymy się tym sytuacjom i jak wpływają one na zachowanie twojego systemu. Chociaż mogą istnieć bardziej zaawansowane rozwiązania, które eliminują potrzebę stosowania rezystorów podciągających w tych sytuacjach, umieszczenie rezystora podciągającego może być rozwiązaniem, które utrzymuje prostotę twojego projektu i zapewnia ubezpieczenie, że interfejs będzie działał poprawnie.

Jak działa magistrala SPI z rezystorami podciągającymi

Spójrzmy na typowy model bufora w interfejsie SPI. Wszystkie bufory SPI mają topologię push-pull, która składa się z przełączania wysokiej i niskiej strony, co przesyła sygnał na magistralę, i każdy sygnał na magistrali SPI (CS, MOSI, MISO i SCLK) będzie miał tę topologię. Przykład tego obwodu pokazano poniżej. Należy zauważyć, że rzeczywisty bufor SPI nie jest tak prosty jak dwa tranzystory MOSFET, ale ogólna idea pozostaje ta sama.

Inwerter CMOS jako sterownik SPI. Wyjście łączy się z ścieżką (reprezentowaną jako skupione elementy) oraz obwodem obciążenia (model równoważny RC).

Unparalleled Schematic Capture

Easily design schematics of any complexity.

Cały powód użycia tej topologii to umożliwienie rozładowywania pojemności w obwodzie bufora, aby zapewnić stosunkowo szybkie szybkości zboczy na wyjściu, które będą znacznie krótsze niż okres zegara na magistrali. To umożliwia osiągnięcie szybszych prędkości transmisji danych niż w protokole z otwartym drenem (np. I2C).

Magistrala SPI, która zawiera rezystory podciągające, jest w zasadzie sterownikiem inwertera CMOS z rezystorem równolegle do górnego tranzystora FET w buforze wyjściowym. Teraz zobaczmy, co dzieje się podczas każdego stanu przełączania w sterowniku i możemy zobaczyć, co dzieje się na magistrali.

Stan wysoki logiki

Podczas stanu wysokiego logiki, NMOS jest WYŁĄCZONY, a PMOS jest WŁĄCZONY. VDDIO teraz dostarcza prąd do połączonej ścieżki i obciążenia. Pojemność w ścieżce i obciążeniu zaczyna się ładować, aż napięcie widoczne na obciążeniu będzie odpowiadać VDDIO. Tutaj, oporność włączenia PMOS jest rzędu mOhm, podczas gdy rezystor podciągający jest rzędu 1 do 10 kOhm. Oczywiście, rezystor podciągający jest tak duży, że w stanie wysokiej logiki jest w zasadzie zwierany przez PMOS.

Ponieważ cały prąd płynie przez PMOS w stanie wysokiej logiki, niezależnie od obecności rezystora podciągającego, charakterystyka przełączania będzie niezmieniona.

Easy, Powerful, Modern

The world’s most trusted PCB design system.

Stan niski logiki

Teraz rozważmy, że obwód przeszedł w stan niskiego stanu logicznego (LOW). W tym stanie NMOS jest włączony (ON), a PMOS jest wyłączony (OFF), więc ścieżka i pojemność obciążenia rozładowują się przez NMOS do sieci GND. Ponieważ PMOS jest wyłączony, wygląda jak bardzo wysoka rezystancja (rzędu MOhmów), która jest znacznie większa niż wartość rezystora podciągającego (1 do 10 kOhmów).

Ponieważ w tym przypadku rezystor podciągający jest mniejszy, pozwoli na przepływ prądu o wartości VDDIO/R(pu) do NMOS. Dla rezystora podciągającego o wartości 1 do 10 kOhm i VDDIO = 3,3 V, prąd upływu do NMOS wynosiłby 0,33 do 3,3 mA. Jest to znacznie mniejsze niż typowy prąd SPI wynoszący około 50 mA, więc ponownie nie zauważymy żadnych efektów na charakterystykach przełączania. Czas opadania na magistrali będzie ograniczony przez pojemności obciążenia i ścieżki, rezystancyjną impedancję wyjściową obwodu buforowego oraz rezystancję w stanie włączenia NMOS.

Jeśli przełączanie nie jest dotknięte, dlaczego używać rezystora podciągającego?

Oczywiście, umieszczenie rezystora podciągającego na linii SPI nie wpływa na jego zdolność do przesyłania sygnału na magistralę. Dlatego rezystor podciągający powinien pełnić jakąś inną funkcję, która nie jest związana z transmisją danych, w przeciwnym razie rezystor nie byłby używany.

Powody stosowania rezystora podciągającego na jednej lub większej liczbie linii w interfejsie SPI różnią się w zależności od proponowanej sytuacji. Niektóre sytuacje, w których używane są rezystory podciągające, to:

Easy, Powerful, Modern

The world’s most trusted PCB design system.

  • Umieszczenie na linii CS dla urządzenia peryferyjnego
  • Umieszczenie na linii MISO dla urządzenia hosta
  • Umieszczenie na linii MOSI dla urządzenia peryferyjnego
  • Umieszczenie na wszystkich liniach magistrali w pobliżu pinów wyjściowych

Podane uzasadnienie umieszczenia w którejkolwiek z tych sytuacji polega na ustawieniu stanu logicznego na jednym z komponentów peryferyjnych na magistrali. Najczęstszą rekomendacją jest umieszczenie rezystora podciągającego na pinie CS peryferyjnego w celu podciągnięcia go do stanu wysokiego. Jeśli peryferyjne urządzenie ma aktywny niski pin włączający, to zawsze będzie on podciągany do stanu wysokiego, chyba że strona sterująca ustawi pin w stan niski.

Przykład takiego zastosowania przedstawiono poniżej. W układzie PCB rezystor podciągający powinien być umieszczony blisko pinu CS tego peryferium.

Typowe umiejscowienie rezystora podciągającego na pinie CS magistrali SPI.

Dlaczego byłoby to używane? Podanym powodem jest to, że podczas uruchamiania systemu, pin CS może być w dowolnym stanie i mogłoby to stworzyć ryzyko, że szumy mogą zakłócić dane na magistrali. Co więcej, jeśli urządzenie hosta uruchomi się przed peryferium i pin CS zostanie niezamierzenie aktywowany, host mógłby zacząć manipulować danymi w peryferium. Czasami jest to podawane jako powód umieszczenia rezystora podciągającego na peryferiach pamięciowych.

Do tej pory nie mogę znaleźć przekonującego powodu, aby umieszczać rezystor podciągający na linii SCLK (zegar). Powodem jest to, że logika odbierająca nie będzie przełączana, jeśli inne warunki (szczególnie stan linii CS) nie zostaną spełnione, niezależnie od obecności sygnału zegarowego. Niektóre notatki aplikacyjne i karty katalogowe zalecają rezystory podciągające dla MISO lub MOSI z różnych powodów, ale sprawdzenie, czy to działa, jest proste i rezystor zawsze można odlutować, pracując nad prototypem.

Sekwencjonowanie zasilania jest bardziej zaawansowanym rozwiązaniem

Ponieważ to jest najczęściej wymieniany problem związany ze stanem pinu CS podczas uruchamiania systemu, myślę, że sekwencjonowanie zasilania pomiędzy peryferiami a hostem systemu byłoby najlepszym podejściem, aby zapobiec temu problemowi podczas uruchamiania. W mniejszych systemach może nie być miejsca w urządzeniu na wiele regulatorów lub na sekwencer zasilania, który może przepuścić wymagane zasilanie. Prostszym rozwiązaniem jest umieszczenie rezystora podciągającego, ale należy rozumieć, że te rezystory podciągające nie są wymagane, aby interfejs funkcjonował poprawnie.

Bez względu na to, czy potrzebujesz zbudować niezawodną elektronikę mocy, czy zaawansowane systemy cyfrowe, użyj kompletnego zestawu funkcji projektowania PCB i światowej klasy narzędzi CAD w Altium Designer®. Aby w dzisiejszym środowisku interdyscyplinarnym wdrożyć współpracę, innowacyjne firmy korzystają z platformy Altium 365™, aby łatwo udostępniać dane projektowe i wprowadzać projekty do produkcji.

Dopiero zaczynamy odkrywać możliwości, jakie oferuje Altium Designer na Altium 365. Zacznij swoją darmową próbę Altium Designer + Altium 365 już dziś.

About Author

About Author

Zachariah Peterson ma bogate doświadczenie techniczne w środowisku akademickim i przemysłowym. Obecnie prowadzi badania, projekty oraz usługi marketingowe dla firm z branży elektronicznej. Przed rozpoczęciem pracy w przemyśle PCB wykładał na Portland State University i prowadził badania nad teorią laserów losowych, materiałami i stabilnością. Jego doświadczenie w badaniach naukowych obejmuje tematy związane z laserami nanocząsteczkowymi, elektroniczne i optoelektroniczne urządzenia półprzewodnikowe, czujniki środowiskowe i stochastykę. Jego prace zostały opublikowane w kilkunastu recenzowanych czasopismach i materiałach konferencyjnych. Napisał ponad 2000 artykułów technicznych na temat projektowania PCB dla wielu firm. Jest członkiem IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society oraz Printed Circuit Engineering Association (PCEA). Wcześniej był członkiem z prawem głosu w Technicznym Komitecie Doradczym INCITS Quantum Computing pracującym nad technicznymi standardami elektroniki kwantowej, a obecnie jest członkiem grupy roboczej IEEE P3186 zajmującej się interfejsem reprezentującym sygnały fotoniczne przy użyciu symulatorów obwodów klasy SPICE.

Powiązane zasoby

Powiązana dokumentacja techniczna

Powrót do strony głównej
Thank you, you are now subscribed to updates.
Altium Need Help?