Karta SD

Jedną z funkcjonalności uwzględnionych w założeniach projektu była obsługa kart SD/microSD. Najczęściej w systemach wbudowanych stosuje się montowane na stałe pamięci Flash, w postaci osobnego układu scalonego. To rozwiązanie ma jednak wiele wad, zwłaszcza w przypadku kiedy tworzymy prototyp. Zmiana czegokolwiek w kości pamięci Flash wymagałaby użycia programatora. Kartę SD można natomiast bardzo szybko wyciągnąć ze slotu w naszym urządzeniu i modyfikować jej zawartość na komputerze czy tablecie.

Hardware

Mikrokontroler STM32F407 posiada wbudowany sterownik SDIO (ang. Secure Digital Input/Output) przeznaczony specjalnie do obsługi kart pamięci SD/MMC. W większości popularnych modułów Arduino stosowany jest również interfejs SPI, charakteryzuje się on jednak zdecydowanie niższą prędkością transmisji danych.
Kontroler SDIO może pracować w dwóch trybach: 1-bitowym lub 4-bitowym. Pierwszy do działania potrzebuje jedynie trzy piny procesora. Jest oczywiście wolniejszy od 4-bitowego odpowiednika, który wymaga aż 6 pinów. Na potrzeby naszego projektu użyjemy trybu 1-bitowego – prędkość odczytu/zapisu nie jest w tym momencie kwestią szczególnie istotną.
Ponieważ dostępne są gotowe moduły zawierające slot karty SD wraz z wygodnymi wyprowadzeniami, nie będziemy przygotowywać specjalnej płytki tak, jak to miało miejsce w przypadku interfejsów CAN / OBD.

Warto zwrócić uwagę, iż piny kontrolera SDIO są przypisane “na sztywno”. Nie mamy więc możliwości użycia multipleksera portów i przeniesienia ich w dogodniejszą lokalizację. Jest to kolejny argument za tym, aby używać prostszej wersji 1-bitwej. A tak wygląda karta podłączona do naszego urządzenia 🙂 .

Software

Od strony oprogramowania, jako warstwę zapewniającą wygodne API dla aplikacji, zastosujemy popularną bibliotekę FatFS. Jej zaletą jest niewielki rozmiar, interfejs zbliżony do standardu POSIX oraz możliwość użycia niemal dowolnego nośnika danych. W naszym przypadku rolę pośrednika między biblioteką FatFS a kontrolerem SDIO będzie spełniać biblioteka HAL. W ten sposób ponownie powstaje warstwowa struktura, znana z naszych poprzednich rozważań.

Tyle na dziś – jutro spróbujemy podłączyć wreszcie wyświetlacz LCD i zobaczyć upragnione kolorki! 🙂 Zapraszam!

Posted in Sto dni w kolorze.