Programowa magistrala SPI

Czy stosowanie programowej magistrali SPI w ośmiobitowych mikrokontrolerach AVR ma jakiś sens? Utrata wydajności w stosunku do sprzętowego interfejsu będzie zauważalna? Tak się zastanawiam, bo przecież w większości przypadków transmisja SPI nie jest realizowana w żadnym przerwaniu, a program najzwyczajniej w świecie czeka na zakończenie procesu w pętli while(). Równie dobrze mógłby się wtedy zajmować machaniem pinami.

Dlaczego pytam? Nieraz podłączane kolejnego urządzenia do istniejącej magistrali sprzętowej jest kłopotliwe punktu widzenia projektu PCB. Zwłaszcza, gdy jest to płytka jednostronna. Czy w takim wypadku mógłbym przeznaczyć wolne piny na programową magistralę dokładnie tam, gdzie jest to dla mnie wygodne?

Rozumiem, że mogłoby to być problemem w przypadku przesyłania dużych ilości danych (np. odczyt i zapis na płytę SD). Jeśli jednak komunikuję się z urządzeniem wysyłającym ramki mające po kilkadziesiąt - kilkaset bajtów (np. moduł radiowy), to czy zauważę różnicę po zastosowaniu programowego SPI?

Reply to
Atlantis
Loading thread data ...

W dniu 13.09.2014 o 08:26, Atlantis pisze:

Jeśli podłączane urządzenie jest dość powolne, a przygotowanie danych do wysyłki wymaga od procesora większego zaangażowania, to sprzętowe SPI może wysyłać bajt, a procek w międzyczasie nie musi "bezmyślnie" czekać w pętli while() tylko może sobie szykować kolejny bajt do wysyłki. Z przerwań też jak najbardziej się korzysta.

Oczywiście można. W niektórych projektach tak robię. M.in. właśnie do sterowania modułem radiowym RFM12B. Ale wyświetlacz graficzny popędzam jednak ze sprzętowego SPI.

Pozdrawiam Grzegorz

Reply to
Grzegorz Kurczyk

Wielokrotnie używam mieszanego spi hard/soft w jednym mcu, jeśli zegar mcu nie jest na jakiś wolnych f <30Mhz to programowa sekwencja wysłania nawet dwubajtu (niektóre rfm wymagają 16bit spi) po spi nie jest specjalnie uciążliwa.

Reply to
Marek

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.