O ile wiem, transmisja SPI dla slave'a SPI działa jak poniżej:
- Master wybiera slave'a za pomocą kodu PIN
- Master i slave wysyłają do siebie dane jednocześnie
- Master uruchamia zegar i transmisję danych w tym samym czasie (nie ma zegara przed operacją zapisu)
- Master zatrzymuje transmisję w dowolnym momencie (zatrzymując operację zapisu i generowanie zegara), nawet jeśli slave ma więcej danych do wysłania.
Czy jest jakaś konfiguracja SPI slave, która pozwala slave'owi przesyłać dane bez zgody mastera?
Po prostu głośno myślę. Załóżmy, że jest tylko jeden slave, a master zapewnia ciągły zegar itp.
Nawet jeśli założona instrukcja jest prawdziwa, czy master i slave nie tracą synchronizacji bajtów (tj. odbiera strumień bitów), ponieważ nie ma bitów start-stop dla SPI?
Zadaję takie pytanie, ponieważ przeczytałem następującą sekcję z tego dokumentu.
2.2 Przykład SPI
Załączony przykład SPI ilustruje użycie USART w tryb synchroniczny. USART1 jest skonfigurowany jako slave, podczas gdy USART2 jest mistrz. Mają miejsce następujące transakcje:
- Transmisja danych z mastera do slave.
- Transmisja danych ze stacji slave do master.
- Transmisja danych z mastera do slave i od slave do master jednocześnie.
Dokument podaje przykład SPI, ale realizuje przykład przy użyciu urządzeń USART. Rozumiem, że slave USART może rozpocząć transmisję bez pozwolenia mastera.
Nie mogłem znaleźć kodu źródłowego, do którego odwołuje się dokument