Transmisja SPI między kontrolerami ATmega: pytania o połączenia, timing i tryby

ATmega i SPI - pare =?ISO-8859-2?Q?niejasno=B6ci?=





Poprzedni Następny
Wiadomość
Spis treści
From: Sebastian Bialy <heby_at_nospam_poczta.onet.pl>
Subject: ATmega i SPI - pare =?ISO-8859-2?Q?niejasno=B6ci?=
Date: Thu, 14 Jul 2005 13:22:57 +0200


Witam!

Chciałbym sobie zrobić transmisję między dwoma kontrolerami po SPI. SPI
dlatego, że jest i załatwia mi wiele problemów.

1) zgodnie z pdfem połączenie między master a slave odbywa się
MOSI->MOSI oraz MISO->MISO. Troche to mnie dziwi, czy nie powinny być
krosowane ? Chyba że ma to umożliwiać zmianę ze slave na mastera.

2) Master generuje sygnał zegarowy i slave wypycha bit po bicie cały
bajt. Jak juz wypchnie, to zgłasza przerwanie, żeby nakarmić SPI
następnym. Hmmm... czy mam rozumieć, że jeśli master taktuje bardzo
szybko spi to slave w tym przerwaniu nie ma za bardzo czasu na
podejmowanie decyzji ? Oczywiście zakładam, że przerwanie będzie
pobierać dane z jakiegoś bufora w ram co powinno być szybkie, ale dalej
zastanawia mnie, czy operacja wpisania następnej wartości do rejestru
jest krytyczna czasowo (w końcu mówimy tutal o prędkościach max f/4
czyli 4 cykle zegarowe ?).

3) Data order - czy jest jakiś najczęsciej stosowany ?

4) Clock polarity - to samo, nie wiam jaki jest "popularny" ale
zakładam, że ten który ma bit o wartości 0 (Leading Edge: Rising)

5) clock phase - to samo

Pytania 4,5 zapewne dotyczą trybu SPI (0,1,2,3) i chciałbym znać
najczęsciej używany.

6) W jaki sposób master steruje /SS ? Czy on automagicznie jest aktywny
gdy coś wpisuje do rejestru danych czy mam go ręcznie sterować (ale
jeśli ręcznie to nie widze żadnego bitu w żadnym rejestrze) ?

Pytania 2 i 6 mogą nie mieć sensu jeśli da się przesyłać wyłącznie bajty
a nie grupy bajtów (jednak pdf wyraźnie wspomina o "end of packet" co
rozumiem jako grupę bajtów).

A może na sieci jest jakiś prosty turtorial z spi na atmega i nie tylko ?

--
Sebastian Bialy - heby_at_nospam_poczta.onet.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Sebastor" <brakadresu_at_nospam_onet.pl>
Subject: Re: ATmega i SPI - pare niejasności
Date: Thu, 14 Jul 2005 15:37:02 +0200



2) Master generuje sygnał zegarowy i slave wypycha bit po bicie cały
bajt. Jak juz wypchnie, to zgłasza przerwanie, żeby nakarmić SPI
następnym. Hmmm... czy mam rozumieć, że jeśli master taktuje bardzo szybko
spi to slave w tym przerwaniu nie ma za bardzo czasu na podejmowanie
decyzji ? Oczywiście zakładam, że przerwanie będzie pobierać dane z
jakiegoś bufora w ram co powinno być szybkie, ale dalej zastanawia mnie,
czy operacja wpisania następnej wartości do rejestru jest krytyczna
czasowo (w końcu mówimy tutal o prędkościach max f/4 czyli 4 cykle
zegarowe ?).

No tu jest problem bo tego czasu faktycznie jest bardzo malo. Przy
maksymalnej predkosci zdazysz jedynie zapisac/odczytac bufor do ramu i to
wszystko.

Sebastor



Poprzedni Następny
Wiadomość
Spis treści
From: Andrzej Augustynowicz <august_at_nospam_csk.pl>
Subject: Re: ATmega i SPI - pare =?ISO-8859-2?Q?niejasno=B6ci?=
Date: Thu, 14 Jul 2005 22:19:21 +0200


1) zgodnie z pdfem połączenie między master a slave odbywa się
MOSI->MOSI oraz MISO->MISO. Troche to mnie dziwi, czy nie powinny być
krosowane ? Chyba że ma to umożliwiać zmianę ze slave na mastera.

...nie powinno Cie dziwic :)

MOSI czyli MasterOutputSlaveInput.

Innymi slowy to tryb pracy wynusza: jesli master to output, jesli slave
to input.

Pozdrawiam
AA

Poprzedni Następny
Wiadomość
Spis treści
From: Andrzej Augustynowicz <august_at_nospam_csk.pl>
Subject: Re: ATmega i SPI - pare =?ISO-8859-2?Q?niejasno=B6ci?=
Date: Thu, 14 Jul 2005 22:22:18 +0200


http://www.ulrichradig.de/

W dziale avr jest obsluga kart mmc po spi - przeanalizuj to a wiele Ci
wyjasni.


Pozdrawiam
AA