Witam Mam takie pytanie.
Zakładamy ze w czasie t=0 zaczyna się transmisja spi. master wysyła bajt, w takt zegara odpowiada slave. Co do tego, co wysyła master nie ma wątpliwości, ale co odpowiada slave w pierwszym bajcie? Mam układ, który próbuje rozwikłać. Rozumiem ze dopóki do bufora nie zostanie załadowany bajt otrzymany ze slave , master nie wie co odpowiada. Czy slave wysyła swój adres czy jakieś losowe dane? Nie wiem właśnie co jest ładowane do bufora przy pierwszym bajcie transmisji..
Wyczytałem ze: This is something inherent to SPI:
When you send a byte from master to slave, then with every bit sent you get one bit back. So it is quite clear, that the first byte answered must be a garbage byte, since the slave does not know yet what to answer. So best practice is to
Send the first (command) byte Wait until transmitted completely Clear the receive buffer Transmit dummy bytes to receive wanted data.
Czyli ważne jest tylko co master wysyła do slave (odpowiedz trzeba zignorować) i następny bajt odebrany przez mastera będzie odpowiedzią?
W takim razie czym jest ostatni bajt wysłany przez mastera? Zakończeniem transmisji?
Taki przykład, trzy ramki transmisji, w dwóch ramkach mam 6 bajtów odpowiedzi, w jednej 12 bajtów.. Mogę miec pomylone miso z mosi, ciężko powiedzieć która linia jest która (nie za bardzo mogę rozłączyć układ):) Pogrubione to początek transmisji (paczki danych) Powtarza się zawsze 0x5A. Dane zebrane przez analizator stanów.
czas-------------------mosi----------miso 0.797715312500000,SPI,MOSI: 0xF7; MISO: 0x5A 0.811574687500000,SPI,MOSI: 0xC9; MISO: 0x22 0.815477937500000,SPI,MOSI: 0xED; MISO: 0x00 0.819517000000000,SPI,MOSI: 0xC9; MISO: 0x00 0.823480062500000,SPI,MOSI: 0xED; MISO: 0x00 0.827518687500000,SPI,MOSI: 0xC9; MISO: 0x00 0.831483312500000,SPI,MOSI: 0xC9; MISO: 0x00
1.152674875000000,SPI,MOSI: 0x13; MISO: 0x5A 1.168181875000000,SPI,MOSI: 0xED; MISO: 0x3E 1.172096187500000,SPI,MOSI: 0xC9; MISO: 0x30 1.176027562500000,SPI,MOSI: 0xC9; MISO: 0x00 1.180068625000000,SPI,MOSI: 0xED; MISO: 0x80 1.184045875000000,SPI,MOSI: 0xED; MISO: 0x80 1.188073062500000,SPI,MOSI: 0xC9; MISO: 0x92 1.201133562500000,SPI,MOSI: 0xC9; MISO: 0x36 1.205038000000000,SPI,MOSI: 0xED; MISO: 0x30 1.208994750000000,SPI,MOSI: 0xED; MISO: 0x00 1.213038562500000,SPI,MOSI: 0xED; MISO: 0x80 1.217021750000000,SPI,MOSI: 0xC9; MISO: 0x80 1.221001437500000,SPI,MOSI: 0xC9; MISO: 0x92
1.913535125000000,SPI,MOSI: 0x17; MISO: 0x5A 1.917194562500000,SPI,MOSI: 0x00; MISO: 0x5A 1.932326250000000,SPI,MOSI: 0xC9; MISO: 0xDE 1.936223562500000,SPI,MOSI: 0xC9; MISO: 0x30 1.940196937500000,SPI,MOSI: 0xED; MISO: 0x00 1.944189250000000,SPI,MOSI: 0xC9; MISO: 0x40 1.948197812500000,SPI,MOSI: 0xC9; MISO: 0x33 1.952127625000000,SPI,MOSI: 0xED; MISO: 0x33
|