logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

SPI - poszukiwany sposób na śledzenie MISO i MOSI

ucy74 28 Wrz 2006 20:04 2642 15
REKLAMA
  • #1 3066437
    ucy74
    Poziom 20  
    Posty: 539
    Pomógł: 22
    Ocena: 10
    Chciałbym sczytywać z obu linii SPI: MISO i MOSI żeby wiedzieć jakie komendy wysyłane z Master'a powodują jakie odpowiedzi Slave'a. Najlepiej byłoby je śledzić równocześnie, a jedyne co mi przychodzi do głowy to µC zaprogramowany jako Slave.
  • REKLAMA
  • #2 3066751
    wilk125
    Poziom 23  
    Posty: 912
    Pomógł: 17
    Ocena: 44
    podepnij linie np, do portu drukarki, napisz programik do zczytywania stanu lini na porcie i gotowe
    pozdrawiam
  • REKLAMA
  • #3 3066921
    ucy74
    Poziom 20  
    Posty: 539
    Pomógł: 22
    Ocena: 10
    Hmm... Właściwie to tak samo mogę czytać obie linie na µC, nie używając sprzętowego SPI tylko śledząc port
  • #4 3067380
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Dokładnie to musisz śledzić w tak zegara. Całą resztę po rs do terminala zeby ładnie było widać. Uzwględnij tylko różnice prędkości w rs i spi albo jakieś bufory.
    Z powodu szybkości (jak i2c) nie ma chyba innej mozliwości jak zbudowanie dodatkowego układziku z uC.
  • #5 3120877
    ucy74
    Poziom 20  
    Posty: 539
    Pomógł: 22
    Ocena: 10
    Próbuję analizować układ konstruując SPI slave na µC ATmega8. Raportuję przez RS232. Coś jednak za każdym razem wygląda to inaczej niż na analizatorze. Co śledzić: narastające zbocze SCK?
    Załączniki:
    • SPI - poszukiwany sposób na śledzenie MISO i MOSI spi_slave.jpg (75.77 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #6 3120944
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Narastajace zbocze sck to wysyła dane master.
    Dokładnie wygląda to tak:

    1. stan niski, master wystawia dane
    2. zbocze narastajace, tu slave powinien sobie przeczytać co master mu wystawił.
    3. stan wysoki, slave wystawia dane do mastera
    4. master sobie odczytuje dane i robi opadajace zbocze.
    i tak w kółko. Po 8 bicie jest przerwa - czasami dłuższa, czasami tyle co czas trwania stanu niskiego/wysokiego.

    Standardowo msb jako pierwszy i zbocze narastajace do wysyłania. Oczywiście to mozna zmieniać w uC ze sprzętowym spi ale zazwyczaj tak to programiści robią - albo producenci slave spi tak wymuszają. A moze jest jakiś standard co do ustawień bo samo określenie spi to temat rzeka.
  • #7 3124552
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 159
    Można zapytać co to za analizator spi?
    Cos dziwnie mi wygląda sygnał SCK bo nie wraca na swój poziom startowy H.
    A co z synchronizacją odbiornika np. linią /SS lub w inny sposób?
    Znane są 4 tryby 0, 1, 2 lub 3 pracy SPI zależnie od polaryzacji zegara i jego fazy, należy to ustalić który jest tutaj używany.
    Może tych kilka luźnych uwag cos pomoże...
    Pozdr. N.
  • REKLAMA
  • #8 3125315
    ucy74
    Poziom 20  
    Posty: 539
    Pomógł: 22
    Ocena: 10
    Nawigator napisał:
    Można zapytać co to za analizator spi?
    To przerobiony screen z analizatora stanów logicznych LoLA, który znalazłem kiedyś na stronie avrfreaks.
    Cytat:
    Cos dziwnie mi wygląda sygnał SCK bo nie wraca na swój poziom startowy H.
    Wraca do H, ale trochę później ;-)
    Cytat:
    Znane są 4 tryby 0, 1, 2 lub 3 pracy SPI zależnie od polaryzacji zegara i jego fazy, należy to ustalić który jest tutaj używany...
    Wydaje mi się że to tryb 3: przesunięcie na niskim poziomie i odczytanie rosnącym zboczem zegara.
  • #9 3131135
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 159
    No to jak SCK wraca do H troszkę później to robi 9 impuls zegarowy i do rejestru szeregowego wpisuje kolejny bit danych. Odczyt może być nieprawidłowy. Przed odbiorem kolejnego bajtu musisz zapewnić warunki zerowe, są różne sposoby zależnie od sytuacji. To jest własnie synchronizacja o której nic nie napisałes. Jeżeli chcesz podsłuchać obcy sygnał to musisz to zrobić (tzw. strobe) i cały czas kontrolować żeby nie wypasć z rytmu oraz załapać się na początek bajtu w każdym momencie.
    Pozdr. N.
  • #10 3131404
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Ten powót nie gra roli - widocznie tak propgramista sobie zaprogramował. Wydaje mi się że tutaj było by widać gdzie zacznie sie nadawanie kolejnego bajtu. A może to jest jakieś czekanie na stan idlle slave'a - albo raczej slave wygasza wyjście jak dostaje kolejne opadajaće. Albo jeszcze inaczej i w tym momencie skończył sie sygnał SS którego nie ma na wykresie.
  • #11 3131795
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 159
    Własnie o to pytam bo w SPI czas bitu lub zegara nie gra roli, tylko zbocza i tam trzeba szukać, więc ten powrót moze być kluczowy.
    Niech się odezwie autor i poda wiecej tresci to nie będziemy zgadywać co miał na mysli i do czego mu ten układ, może da sie problem rozwiązać inaczej.
    W skrajnym przypadku przy ciągłym zegarze (bez żadnej przerwy na synchronizację i braku /ss) nie odczyta nic.
    Pozdr. N.
  • #12 3132222
    ekspert100
    Poziom 18  
    Posty: 537
    Pomógł: 32
    Ocena: 72
    Witam !!!
    Do kolegi uc74
    czy mozna by od pana otrzymać
    ten analizator spi + informacje o podłączeniu
    na adres ekspert100(_at_)wp.pl
    prosze o pomoc

    pozdrawiam!!!
  • REKLAMA
  • #13 3143982
    ucy74
    Poziom 20  
    Posty: 539
    Pomógł: 22
    Ocena: 10
    Odpowiedź zbiorcza:

    1. Szyna SPI którą śledzę, jest bez sygnału slave. Z założenia, w układzie jest jeden master i jeden slave.
    2. Śledząc układ przez hardware'owe SPI mam problem z przesunięciem danych. Każdy bajt jest przesunięty o jeden bit w prawo. To może być kwestia tego dziewiątego zbocza zegara. Układ nie jest zbudowany na µC'ach i stąd może dziwny sposób taktowania.
    3. Podsyłam plik analizatora LoLA, bo jest bardzo przydatny, a strona AVRfreaks zniknęła :cry:
    4. Układ LoLA ma też swoje wady: ma zbyt mało pamięci do śledzenia przebiegów w najwyższej rozdzielczości. AT90s1200 jest już przedpotopowym µC.
    Załączniki:
    • Logic Analyzer LoLA project_47.zip (697.73 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #14 3145759
    ekspert100
    Poziom 18  
    Posty: 537
    Pomógł: 32
    Ocena: 72
    Witam !!!
    dzieki za pliki tylko ze at90s1200 ma f=12 Mhz
    a w uładzie jest kwarc 16 Mhz
    A moze by tu wstawić inny procek
    at90s2313
    pozdrawiam!!!
  • #15 3171516
    rafmed
    Poziom 11  
    Posty: 44
    Pomógł: 1
    Ocena: 8
    czy ten program Logic Analyzer LoLA jest też do analizy Atmegi8?

    Dodano po 21 [sekundy]:

    czy ten program Logic Analyzer LoLA jest też do analizy Atmegi8?

Podsumowanie tematu

✨ Dyskusja dotyczy metody jednoczesnego śledzenia linii SPI MISO i MOSI w celu analizy komend wysyłanych przez mastera i odpowiedzi slave'a. Proponowane rozwiązania obejmują podłączenie linii do portu drukarki i odczyt ich stanu programowo, a także implementację układu z mikrokontrolerem (np. ATmega8) działającym jako SPI slave, raportującym dane przez RS232. Kluczowe jest śledzenie narastającego zbocza sygnału SCK, które wskazuje moment odczytu danych przez slave'a. Omówiono różne tryby pracy SPI (0,1,2,3) zależne od polaryzacji i fazy zegara, co wpływa na synchronizację i poprawność odczytu. Zwrócono uwagę na problem przesunięcia bitowego danych i konieczność synchronizacji, np. przez linię /SS, aby uniknąć błędów w odczycie. Wskazano na ograniczenia analizatora logicznego LoLA, opartego na mikrokontrolerze AT90s1200, który ma ograniczoną pamięć i taktowanie 12 MHz, co może być niewystarczające dla układów z kwarcem 16 MHz. Pojawiły się sugestie użycia innych mikrokontrolerów, np. AT90s2313, oraz propozycje rozszerzenia analizatora o dodatkowe kanały 8/16 bit. Całość podkreśla złożoność śledzenia sygnałów SPI i potrzebę odpowiedniej synchronizacji oraz sprzętowego wsparcia do poprawnej analizy.
Wygenerowane przez model językowy.
REKLAMA