Skocz do zawartości

Sterowanie CS przez ekspander ze wspólną magistralą SPI


Pomocna odpowiedź

Napisano

Jak myślicie, czy jest to w ogóle akceptowalne:

  • SPI z 3 urządzeniami:
    • ekspander z linią CS od mikrokontrolera
    • urządzenia 1 i 2 z CS od ekspandera

image.thumb.png.a932fab1b1e8a3b1eff33cb1a2c92432.png

Tworzy to łańcuch - jak chcę włączyć CS urządzenia nr 1 lub 2 muszę włączyć CS ekspandera. A żeby wyłączyć CS urządzenia 1 lub 2 muszę dostać dostęp do magistrali, która jest zajęta... czyli jeżeli wyślę komendę która wyłączy CS ale jednocześnie 1 lub 2 ma taką samą komendę to może być kolizja.

Ekspander MCPx ma domyślnie 0 czyli aktywuje urządzenia 1 i 2 po resecie, przez co od początku nie mogę ich wyłączyć.

image.thumb.png.6ad5d4e6f334a130654f79209dc1f11a.png

Na taki pomysł wpadła firma projektująca PCB 😞 

35 minut temu, Gieneq napisał:

Jak myślicie, czy jest to w ogóle akceptowalne:

  • SPI z 3 urządzeniami:
    • ekspander z linią CS od mikrokontrolera
    • urządzenia 1 i 2 z CS od ekspandera

Uhm… raczej nie. 

37 minut temu, Gieneq napisał:

Na taki pomysł wpadła firma projektująca PCB 😞

Ciekawa firma… Ogólnie nie polecam 😉 

A tak szczerze to nie mogli znaleźć pinów by dać tam jakiegoś MUXa?

  • Pomogłeś! 1

W jednym projekcie na esp8266 też mi brakowało "nóżek" do strobów.

Użyłem ekspandera i2c pcf8574/pcf8575

Może trochę wolniejszy niż na spi, ale da się przetaktować do 600kHz względem katalogowego zegara.

No i potrzebujesz tylko linii sda/scl zamiast mosi/miso/clk/cs 🙂

 

@H1M4W4R1 wiesz co, to jest 2 rewizja i przy pierwszej ekspander był po I2C i sterował CSem od czujnika DPS. Ale ekspander był we wspólnej magistrali z ekranem dotykowym i jakoś mi się to nie podobało, bo trzeba było uwzględniać kolizje.

To zaproponowaliśmy że chcemy ekspander po SPI i jeszcze moduł NFC i dostaliśmy co chcieliśmy. Ale jakoś nie zwrócili uwagi, że mogą być komplikacje.

Odnoszę wrażenie że gość co to robił był nieco leniwy, bo w środkowych warstwach widać jak obok przelotek było coś grupowo przeciągnięte, np. tu:

image.thumb.png.69b3c20a587823752bdba4736402f115.png

Wracając. Myślisz że da się coś z tym zrobić? Na starcie jak dam w loopie 10x ustawienie GPIO ekspandera na 1 to w końcu załapie i odłączy resztę CSów i później działa bezbłędnie. Tylko później jak wysteruję DPSa to nie wiem jak przywrócić stan początkowy. Znowu w loopie aż do skutku sterowanie i odczyt ekspandera aż się zgodzi?

@kostuch no właśnie tak było i faktycznie działało. Nawet zrobiłem po ekspanderze sterowanie grupowe synchronizowane z przerwaniem od zero cross 50Hz sieciowego. 

Na zdrowy rozum, jak wystawisz aktywne CS dla ekspandera spi, to przyjmie on i obsłuży to co dostanie na linii mosi. Co prawda będą konflikty poziomów logicznych na linii miso, ale nie powinno to zabić układów.

A że inne urządzenia też będą odbierać tą transmisję? Może nie zrozumieją tego co ma zrozumieć ekspander i zlekceważą transmisję? Trudno powiedzieć.

Nigdy nie używałem tej kostki, ale rozumiem że po prostu ustawia się w niej jakieś rejestry kontrolne wysyłając jakieś opcode z argumentami i nie trzeba badać ewentualnej odpowiedzi na polecenie.

 

Generalnie: bardzo daleko od inżynieryjnej poprawności 🙂

 

  • Lubię! 1
(edytowany)
1 godzinę temu, Gieneq napisał:

image.thumb.png.69b3c20a587823752bdba4736402f115.png

Proponuję zmienić firmę 😛 I to zdecydowanie...

image.png.1db2213ddfb7d11ee95cbe5f9d962717.thumb.png.603d0619405aca4c99303c8631d9fe86.png

Lista błędów zauważonych w ciągu 10 sekund 😄

  • Pomarańczowy - anteny, które łatwo mogą uwalić testy EMI przy odpowiedniej częstotliwości 😉
  • Czerwony - brak połączeń pól masowych (bardzo zły nawyk) oraz ta dziwna wylewka...

EDIT: gdybym widział całą płytkę, to pewnie byłoby tam kolorowo 😄

Edytowano przez H1M4W4R1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...