pullup na lini CS

Trochę głupie pytanie, ale dopiero teraz przyszło mi się nad nim zastanowić. ;) Czy pullup na linii CS interfejsu SPI koniecznie musi być zewnętrzny? W przypadku AVR-ów odpowiedziałbym bez wahania, że tak. Jednak tam jedyny (przynajmniej w przypadku znacznej części układów) interfejs SPI był dzielony z ISP do programowania układu. Istniało więc niebezpieczeństwo, że stan nieustalony na linii CS spowoduje, że układ na magistrali SPI zacznie przeszkadzać w programowaniu układu.

A jak sprawa wygląda z MCU 32bit, które mają osobne spi? Wystarczy wewnętrzny pull-up, czy też będzie on za słaby? A może istnieje jeszcze inny powód, dla którego ten rezystor musi tam być?

Projektując jedną płytkę przeoczyłem ten element i teraz się zastanawiam, czy lutować go prowizorycznie na prototypie, czy też układ obejdzie się bez niego. Chodzi o pamieć flash AT45DBxxx.

Reply to
Atlantis
Loading thread data ...

W dniu 2016-05-24 o 23:29, Atlantis pisze:

Jeśli na SPI masz jednego slave, albo masz pewność, że wszystkie slave trzymają linię SOMI w HZ jeśli mają wybrany CS to nie musisz mieć zewnętrznego podciągania. Ale jeśli którykolwiek slave cokolwiek wystawia na linii SOMI po ustawieniu CS to może być kłopot bo wszystkie CS po restarcie MCU są w stanie nieustalonym.

Reply to
Andrzej W.

W dniu 24.05.2016 o 23:29, Atlantis pisze:

Niegłupie, sprawa jest istotna i czasem potrafi być upierdliwa.

Ostatnio popełniłem projekcik z Atmegą8 i jakimiś ADC z Analoga, które mają taki uproszczony SPI bez wykorzystania MOSI - jak im się podaje clock to wypychają dane na MISO, a CS jest aktywny stanem wysokim, więc dla ustalenia stanu dałem rezystor zewnętrzny do masy. I jak jest miejsce na PCB to lepiej stan na CS jakoś ustalić. Dla izolacji SPI od ISP Atmel zaleca dać na liniach SPI rezystory szeregowe kilka kOhm, ale u mnie się to nie sprawdziło - przy zegarze SPI 1MHz zbocza były masakrycznie nachylone i komunikacja nie działała. Zwarłem więc te rezystorki i działa zarówno komunikacja, jak i programowanie.

Podpinałem jakiegoś STM32 do ADC od Maxima, rezystor pull-up na CS standardowo zostawiłem. Żeby się potem nie zastanawiać nad kłopotami.

Reply to
Jakub Rakus

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.