czytanie karty sd

Witam

Może ktoś coś wie.

(mówimy o czytaniu RAW, pomijamy zagadnienia systemu plików)

Karta SD może być zapisywana w całych blokach 512, OK.

Czytana również.

Ale czy coś się stanie jeśli po przeczytaniu, np. 16 bajtów podniosę sygnał CS i rozpocznę czytanie innego sektora? Nie chcę czytać (ze względów czasowych) całych 512 bajtów ale nie chcę też aby, np. po przerwaniu operacji czytania, trzeba by było przeprowadzać jakąś równie czasochłonną inicjalizację.

Słyszał/robił ktoś coś na ten temat?

Pozdrawiam

jp

Reply to
jacek pozniak
Loading thread data ...

Przetestuj, natomiast może być z tym problem. Jeśli nie chcesz czytać całego 512 bloku możesz użyć cmd16 by ustawić mniejszy blok czytania (nawet jeden bajt), ale uwaga blok mniejszy niż 512 przyjmują tylko stare karty i to nie wszystkich producentów.

Reply to
Marek

Przetestuję, na razie walczę aby uruchomić toto z STM32F103. I tak się zastanawiam czemu te karty nie są tak proste w obsłudze jak, dajmy na to, pamięć 25LC512?

Reply to
jacek pozniak

Dnia Thu, 28 Dec 2017 11:57:06 +0100, jacek pozniak napisał(a):

Bo do czego innego sluza, maja byc szybkie, pojemne i udawac dysk, a nie proste w obsludze :-)

Dodaj, ze to flash (kasowalny calymi sektorami), co generuje mase problemow.

J.

Reply to
J.F.

im bardziej skomplikowane tym więcej można na tym zarobić ;) Komunikacja z sd bardzo przypomina scsi, być może było to zamierzone, by łatwiej implementowalo się z scsi mass storage. Pytanie po Co ci karta sd skoro masz prostsza pamięć 25LC512?

Reply to
Marek

W urządzeniu będzie karta SD, do przechowywania plików, ma być widziana z zewnątrz jako mass storage (przez USB). Myślałem aby na niej wydzielić 'partycję' i używać jej jako nieulotną pamięć "operacyjną" (potrzebuję tego około 0,25..1 MB).

Będę ją chyba jednak musiał złożyć z 4 szt. 25LC1024 lub coś takiego.

Trochę dziwne są te karty SD, nawet nie jestem pewien czy mogą byś na jednej magistrali z pamięcią SPI albo z innymi, skoro inicjalizacja polega na wysylaniu sygnału zegarowego przy NIEAKTYWNYM sygnale CS.

Reply to
jacek pozniak

Użycie serial flash zamiast sd ma swoje wady i zalety. Zaletą jest prostota obsługi, wadą brak kontrolera wear levelingu, przynajmniej w większości spi flash (z kontrolerem wl flash spi robi tylko chyba lattice). No chyba, że wl zaimplementujesz sam w mcu.

To nic, specyfikacja sd zwraca uwagę, że wysokie cs nie ustawia od razu SDO karty w stan wysokiej imp. jak większość urządzeń spi by uwolnić magistralę. Karta zrobi to dopiero po przesłaniu do niej ekstra jednego bajtu po ustawieniu cs na 1. Mimo to daje się sprawnie spiąć kilka urządzeń spi wraz z kartą.

Reply to
Marek

Dzięki za wskazówki

Pomału ogarniam; może coś z tego będzie.:) Rozmiar bloku daje się zmienić na np. 16 bajtów. Muszę jednak sprawdzić czy daje się ten rozmiar dość szybko zmieniać na 512 i z powrotem na 16. No i muszę to sprawdzić na kilku różnych kartach, na razie testuję SanDisk

2GB (SD)
Reply to
jacek pozniak

Dla kart hc i xc blok odczytu nie może być mniejszy 512.

Reply to
Marek

No tak, potwierdziło mi sie doświadczalnie (dla karty hc).

Zamykam CS i mimo, że wyslę kilka cykli zegara to i tak nie mogę przejść do drugiego sektora. no nic, jakiś kompromis znajdę :)

Pozdrawiam jp

Reply to
jacek pozniak

Ale wygląda na to, że karty sd standard powinny być jeszcze parę lat na rynku. Na allegro widzę je jako karty "do nawigacji".

jp

Reply to
jacek pozniak

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.