Piszę na karcie microSD z poziomu mojego oprogramowania układowego, ale jest to zadanie o najniższym priorytecie, więc może zostać przerwane przez inne zadania, gdy jest w trakcie odczytu / zapisu.
Załóżmy teraz, że komunikowałem się z tą kartą microSD za pomocą UART. Problem podczas odczytu polegałby na tym, że sprzętowy RX FIFO przepełniałby się, więc maksymalne opóźnienie, jakie mogę podjąć, to (rozmiar FIFO × bajty / sekundę), a podczas zapisów nie byłoby problemu, ponieważ drugi koniec po prostu czekałby, aż I wyślij następny znak.
Jak to działa teraz używam SPI? Czy sytuacja jest taka sama, że dla zapisów nie ma to znaczenia, a dla odczytów zależy od rozmiaru SPI FIFO?
źródło
Sprawdzanie kopii specyfikacji (której nie mogę zacytować ze względu na prawa autorskie / NDA) określa szybkość SPI od 0 Hz, co oznacza, że operacja statyczna jest w porządku. Pod SPI odzyskujesz dane tylko podczas taktowania urządzenia, więc jeśli używasz sprzętowego SPI, otrzymasz coś dopiero po wysłaniu danych (nawet jeśli 0 / nie przejmuj się). W związku z tym różni się od UART, w którym możesz w dowolnej chwili otrzymać niechciane dane.
źródło