CF z mikrokontrolerem - długi czas stanu BUSY przy odczycie/zapisie 512B
Card Flash - wolny odczyt/zapis.
From: "Willow" <kris_willow_at_nospam_hotmail.com>
Subject: Card Flash - wolny odczyt/zapis.
Date: Tue, 1 Oct 2002 00:07:08 +0200
Witam,
Podłączyłem CF do mikrokontrolera, udało mi się uruchomic system plików FAT.
(Działa zapis/odczyt plików w tym standardzie)
Karta po wsadzewniu do czytnika USB jest poprawnie rozpoznawana, a pliki
utworzone w ukladzie z mikrokontrolerem są swobodnie dostępne.
Karta odłączona jest przez _8bitową_ magistrale, magistrala pracuje z
częstotliwością 16MHz,
Projekt płytki na podstawie application note sandiska.
Nie jest jednak tak pięknie jak mi się wydawało. Wg informacji producenta
karty, powinenem mieć możliwość zapisu z prędkością 800Kb/s i odczytu
1,6MB/s. I takie prędkości uzyskuje stosując komercyjny czytnik kart.
Oczywiście nie licze nawet, że się do tej prędkości zbliże, ale to co
uzyskałem jest denerwujaco powolne - 512 bajtów/8 milisekund. Czas
odmierzam dość dokładnie - korzystam z 16 bitowego timera.
Wyszukałem miejsce w programie w którym "tracę" najwięcej czasu - okazało
się, że przez ten czas (8ms) karta jest w stanie BUSY.
Co ciekawe, CF ustawia się w stan BUSY po wpisaniu 6 bajtów do rejestrów
sterujących kartą, następnie - kiedy flaga busy zostaje zgaszona bez
problemów ani przestojów zapisuje/odczytuje 512 bajtów danych.
Nie znalazłem w dokumentacji od CF informacji ile max czasu może trwac stan
BUSY, ale 8ms to raczej za dużo.
Czy ktoś ma może dokładnie informacje na ten temat?
Czy ktoś z gupowiczów zajmujących się CF zaobserwował podobne zjawisko?
Czy na takie opóźnienia może mieć wpływ zastosowanie 8 bitowej magistrali?