-
1. Data: 2016-01-03 18:35:28
Temat: FatFS na PIC32 - zagadka
Od: Atlantis <m...@w...pl>
Jak wcześniej pisałem - próbuję uruchomić FatFS na PIC32. Na AVR-ach nie
miałem najmniejszego problemu z tą biblioteką, tutaj za chwilę osiwieję...
Nic nie działa jak powinno, a w sposobie hmm... niedziałania nie mogę
się doszukać żadnej logiki, która dałaby mi jakiś punkt zaczepienia przy
debugowaniu problemu.
1) Komunikacja po SPI najwyraźniej działa. Funkcja disk_initialize(0)
przy każdym wywołaniu zwraca FR_OK. No chyba, że w slocie nie ma karty -
wtedy otrzymuję FR_NOT_READY. Czyli wszystko tak, jak być powinno.
Niektóre karty zwracają co prawda FR_DISK_ERR, ale to pomijam, bo
dokładnie z tymi samymi egzemplarzami miałem także problem na AVR-ach i
szukanie przyczyny pozostawiam na później.
Fakt, że inicjacja karty kończy się komunikatem FR_OK świadczy o tym, że
mikrokontroler potrafi się dogadać z kartą.
2) O tym, że między dwoma urządzeniami występuje przepływ danych
świadczy też wynik badania analizatorem stanów logicznych. wyraźnie
widać pracę linii CS, SCK, MISO i MOSI.
3) Problem zaczyna się nieco później. Próba odczytania kilku sektorów z
karty za pomocą disk_read(0, bufor, 1, 5) kończy się zwróceniem
RES_ERROR. Analizator stanów pokazuje, że po wywołaniu tej komendy
występuje szybka komunikacja pomiędzy tymi urządzeniami. Pomyślałem, że
może SPI pracuje za szybko dla karty, jednak przestawienie interfejsu na
wolną transmisję nic nie zmieniło.
4) Funkcje wyższego poziomu nie działają, albo nie działają jak powinny.
f_mkfs() zwraca za każdym razem błąd FR_DISK_ERR, a f_mount()
FR_NO_FILESYSTEM. No może nie za każdym razem - jeszcze parę dni temu od
czasu do czasu (dość rzadko i raczej losowo) obserwowałem przypadki
"zaskakiwania" systemu plików - na karcie pojawiał się plik, do którego
były zapisywane dane.
5) Wypróbowałem kilka różnych modułów ze slotem na karty SD i micro SD.
W tym jeden zlutowany samodzielnie. Poprawność połączeń stwierdziłem
kilkadziesiąt razy. Ktoś ma jakiś pomysł co do możliwej przyczyny? CO
jeszcze mogę sprawdzić?
Port SPI jest iicjowany z następującymi ustawieniami:
SpiChnOpen(SPI_CHANNEL2,SPI_OPEN_MSTEN|SPI_OPEN_CKP_
HIGH|SPI_OPEN_SMP_END|SPI_OPEN_MODE8,142);
-
2. Data: 2016-01-03 18:36:48
Temat: Re: FatFS na PIC32 - zagadka
Od: Atlantis <m...@w...pl>
Aha, żeby nie było - karta zasilana jest przez port LC (22uH, 1uF), a
wszystkie linie interfejsu SPI są podciągnięte do VCC.