TWI a SPI na ATmega

Zdravim vsetkych v novom roku.

Vedel by mi prosim niekto objasnit ako je to vlastne s TWI v ATmega8/32/128?
Konkrente sa mi jedna o prijem bajtu v rezime SLAVE. Kolko mam casu na vyzdnihnutie prijateho bajtu po interupte? Jje to len pocas ACK, alebo pocas celeho prijmu nasledujuceho bajtu?
V navode pisu, ze hodnota bajtu sa nezmeni pocas trvania INT, ale to nehovori nic o moznej strate nasledujuceho bajtu.
To iste sa tyka i SPI. Na prevzatie prijateho bajtu v rezime SLAVE mam cas pocas prijmu nasledujuceho bajtu, alebo len pocas hodnoty L na CLK pred prijatim dalsieho bajtu?

A este jedno, ked chcem vysielat bajt, funguje to ako pri UARTe, alebo dalsi bajt mozem zapisat az po uplnom odvysielani predchadzajuceho bajtu?

Ak mam SPI alebo TWI v rezime SLAVE a MASTER nacitava (CLK generuje MASTER) bajt zo SLAVE, funguje datovy register ako bufer pre odvysielanie dalsieho bajtu, alebo mam cas v dlzke 1/2 CLK hodin mastra aby som do registra vlozil nasledujuci bajt ?

Celkom mi to z datasheetu nie je jasne a dam preto prednost konkretnym skusenostiam niekoho z vas.

Za odpovede vopred dakujem

Martin

Tohle objasňují pojmy single buffered a double buffered. U SPI je vysílaní single buffered, to znamená, že zapsaná data jdou přímo do shift registru, ze kterého se vysílá. Musí být dodána v okamžiku, kdy je předchozí byte odvysílán.
Příjem je double buffered, což znamená, že prijatý byte se ze shift registru přepíše do bufferu, a muže přijímat další. Na vyzvednutí z bufferu je čas pouze do příjmu dalšího byte.

Dakujem Technikovi za odpoved co sa tyka SPI, ale ako je to u TWI?
NEchal som si prejst cely datasheet pre ATmega32 na slovo “buffered” a v sekcii TWI sa nevyskytuje. Neviem po anglicky dostatocne, aby som sa v texte jednoznacne zorientoval, bodem preto vdacny za kazde nasmerovanie pre pripad TWI.

Dakujem

Martin