SPI auf ATtiny13

Mein Verständnis des ATtiny13-Datenblatts ist, dass Sie das Mikro zwar über "SPI" ISPen können, es jedoch nicht über die Funktionalität verfügt, um mit anderen Geräten auf einem SPI-Bus zu arbeiten (zumindest nicht in Hardware). Ist das richtig?

Antworten (2)

Wie alle AVRs verwendet der ATtiny13 SPI zur Programmierung. Es verfügt jedoch nicht über einen tatsächlichen SPI-Port, der in Anwendungen verwendet werden kann. Software-SPI könnte natürlich implementiert werden, und Atmel hat eine App-Notiz zu der Technik:

http://www.atmel.com/dyn/resources/prod_documents/doc1108.pdf

SPI ist das einfachste synchrone serielle Protokoll, das Sie sich vorstellen können, und da es nur ein Schieberegister erfordert, könnte man sich fragen, warum es nicht im ATtiny implementiert ist. Gleichzeitig bietet die Einfachheit des Protokolls eine Lösung: Bit-Banging. SPI ist einfacher zu schlagen als UART, wo Sie sich um das Timing oder Manchester kümmern müssen.
Der Grund, warum SPI für die Programmierung verwendet wird, ist, dass es einfach und zuverlässig ist. Der Grund, warum es nicht in Hardware implementiert ist, ist, dass es leicht in Software emuliert werden kann.

Interessant; Ich war mir der Bitbanging-Bibliotheken bewusst, hatte aber angenommen, dass die Leistung nicht gut genug wäre, um mit vielen anderen Geräten zu kommunizieren; Ich bin mit dem Protokoll noch nicht vertraut genug, um zu wissen, wie problematisch dies sein würde, aber es klingt nach nicht viel. Danke!
@Chinasaur - Wie ich schon sagte, mit SPI müssen Sie sich keine Gedanken über das Timing machen. Als SPI-Master geben Sie die Taktimpulse vor, es spielt also keine Rolle, ob einer etwas später kommt.
Hardware-SPI auf einem Attiny wäre mehr als nur das Schieberegister, es benötigt mehr Register, um es zu steuern, einen Eintrag in der Vektortabelle und das Routing für einen weiteren Hardware-Interrupt, das Routing einer unabhängigen Uhr zum SPI-Uhr-Pin und das unabhängige Ausführen der Uhr was der Haupt-CPU-Thread tut. Bei einer CPU, bei der sie im Hinblick auf Kosteneinsparungen nur 64 Byte RAM bereitstellten, sparte das Weglassen von SPI wahrscheinlich mehr als die gesamte RAM-Größe.