Obsługa kart CF

Mar 03, 2005 2 Replies

Witam! Mam pytanie do osób , które obsługę CF juz "przegryzły" :)



Mam uC (AVR) ktory ma za malo pamieci SRAM zeby zaladowac caly sektor na raz, a poniewaz nie jest mi to do niczego potrzebne (bo dane z CF beda na bieżąco wysyłane do innego urządzenia; uC jest tylko pośrednikiem między FTDI FT245BM a kartą CF). Chciałbym to rozwiązać następująco: zarówno FTDI jak i CF są widoczne jako zewnętrzna pamięc RAM, sygnały WR, RD, CE są podłączone ok. Sama ransmisja wyglądała by tak, że zamiast ładować najpierw kolejne



512B z FTDI do SRAMu uC a później wysyłać je do CF chciałbym ustawić np. tryb zapisu do karty CF a następnie w pętli wykonywanej 512 razy odczytać 1 bajt z bufora FIFO FTDI i od razu zapisywać go do bufora CF. Po wykonaniu petli reszta koniecznych komend sterujacych i znow kolejna paczka 512B.

Zastanawiam się tylko jak karta CF zareaguje na 512 zmian sygnału ~CE1 w trakcie zapisu jednego sektora. Po prostu odłączy wyjścia (tri-state) zachowując wszystkie zawartośći rejestrów, liczników itp, czy może jest wymagane żeby cały pojedynczy sektor zapysywać "ciurkiem" i na mój pomysł karta CF zareaguje "małoprzewidywalnie"?



Oczywista odpowiedź to zmieniec procka na takiego który ma np. 1kB SRAM ale z róznych względów wolał bym tego rozwiązania uniknąc :)


Klaudiusz Gawlik napisał(a):

Ciurkiem, owszem. Ale ~CE1 i ~CE2 możesz zdejmować po każdym słowie (sprawdzone w moich własnych źródłach sprzed paru lat - tak miałem zrobione i działało).

Ufff, musiałem poczytać pliki napisane w C i w ABLU, do których nie zaglądałem od bardzo dawna. Śmieszne uczucie.

hth,

dzieki za szybka odpowiedz. Tak sprobuje zrobic. W zasadzie nie bedzie pewno transmisji po jednym bajcie tylko w paczkach np. po 128B, ale i i tak jest sektor na 4 raty ;)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required