Aktywne Wpisy
gadsh +23
Jestem już ponad 15 lat na wykopie (głównie przeglądałem, raczej mało się udzielałem) i nie wiem czy 15-lat poziom był wyższy czy ja byłem głupszy. Sekcja komentarzy na głównej (głownie, choć mirko też nie jest bez winy) , to jest niestety ale poziom człowieka o ograniczonych zdolnościach intelektualnych. Już nawet nie mówię o tym, że ktoś wstawi komentarz który udowadnia, że nie zapoznał się ze znaleziskiem który komentuje, ale 90% komentarzy jest
Feijoa +2
Czy tylko mi ciągle zdarzają się takie chore akcje na drodze, czy może ludzi w tym kraju już kompletnie popaprało? Wczoraj jakiś chłopak próbował mnie przejechać na pasach, a w sobotę jakaś dziewczyna tak bardzo próbowała na mnie najechać, że aż nie wyrobiła się na zakręcie i musiała wycofać. Ja nie jeżdżę jakoś dużo, ale takie chore akcje zdarzają mi się nagminnie - np. jakaś kobieta dosłownie próbowała mnie staranować na pustym
Załóżmy, że mam SPI bus i na nim podpięte dwa urządzenia:
- pierwszy to nor-flash, obsługuje QSPI
- drugi to moje customowe urządzenie, obsługuje SPI
Do NOR flash mam driver w kernelu, do mojego urzadzenia nie.
Czy mogę generalnie użyć tego samego SPI do kontroli tych dwóch urządzeń? Co w związku z tym, że jeden obsługuje QSPI a drugi SPI?
Jak serializowany jest dostęp do bus driver controllera dla tego konkretnego SPI? Czy muszę sam zrobić tą serializację?
#linux #embedded
Generalnie na SPI arbitraż robisz przez linie "chip enable". Do każdego slave musisz miec osobna linie ~EN. SPI jest multidrop ponieważ slave na liniach ma wysoką impedancję jeśli dany EN nie jest aktywny (otwarty kolektor).
Niemniej nie wiem jak to w Linuxie jest rozwiązane na warstwie drivera do hosta SPI ze na czas transakcji podnosi EN. Tym bardziej nie wiem czy sa
W struct spidevice masz pole chipselect
Wiec wychodzi ze multi drop jest implementowanych przez “Controller Driver”
Multi drop to standardowa rzecz. Definiujesz to w DT przez cs_gpios. Tu masz przykład :
https://forum.armbian.com/topic/4330-spi-gpio-chip-select-support/
- spi-nxp-fspi.c - kontroler FlexSPI, który rejestruje siebie jako kontroler SPI poprzez devmspiregistercontroller(spi.c). Doadtkowo ten kontroler w modebits ustawia obłsugiwane tryby - jest tam np. dual spi, quad, ocal.
- spi.c w funkcji spiregistercontroller (wywolanej