Próbuję umieścić w jednym ze swoich projektów funkcję generowania komunikatów głosowych. W tym celu chcę wykorzystać odtwarzanie plików *.wav z karty micro SD. Zlutowałem już płytkę, teraz próbuję napisać soft.
Biblioteka PetitFS w wersji "pożyczonej" z GreenBooka (drugie wydanie).
Kod wygląda następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Na razie chciałem tylko zainicjować kartę i zamontować FS, zanim przejdę dalej.
Niestety z niewiadomego mi powodu nie przechodzi funkcje pf_mount() - zwraca ona wartość 7, a więc FR_NO_FILESYSTEM.
Karta jest sformatowana pod FAT (próbowałem też FAT32) i jest na niej jeden katalog, a w nim kilka plików.
Co może być powodem takiego stanu rzeczy?
Od strony sprzętowej wygląda to tak, że MCU (Atmega16) jest zasilany napięciem 3,3V. Połączenia z kartą są wykonane bezpośrednio, a linia CS jest podciągnięta do plusa rezystorem 4,7k. Mikrokontroler jest taktowany zewnętrznym kwarcem 11.0592 MHz.
Nie podłączyłem pinu odpowiedzialnego za wykrywanie obecności karty, a więc inicjację i montowanie przeprowadzam na początku. Karta nie będzie nigdy wyjmowana podczas pracy układu.
W ramach ciekawostki mogę dodać, że w roli DAC wykorzystywał będę drabinkę rezystorową, a nie PWM.