Jak bezpośrednio dobrać się do linii portu SD?

  • 8 Odpowiedzi
  • 2849 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

Jak bezpośrednio dobrać się do linii portu SD?
« dnia: Sierpień 21, 2007, 20:50:34 »
Witam,

Buduję urządzenie (kartę przetworników A/C), które ma współpracować z moim A639 przez złącze kart pamięci SD. Urządzenie wyposażone jest w mikrokontroler, któremu należałoby zaimplementować cały protokół kart SD. Pisanie takiego programu dla mikrokontrolera jest czasochłonną zabawą, w dodatku pożera jego skromne zasoby, które chcę wykorzystać do sterowania budowanym urządzeniem.

W związku z powyższym zastanawiam się, czy nie łatwiej byłoby się dobrać do portu SD od strony palmtopa i napisać własny sterownik udający magistralę, w którą mój mikrokontroler jest wyposażony (np. SPI albo I2C).

Ma ktoś może pomysł, jak się do tego zabrać? Jeżeli obsługa złącza SD jest realizowana programowo, to chyba należałoby ubić oryginalny sterownik systemu i dobrać się bezpośrednio do linii portu (tak jak w pecetowym DOSie można było bezpośrednio zmieniać stany złącza RS). Jeżeli SD jest obsługiwane sprzętowo (przez specjalizowany układ), to może da się zmusić układ sterujący do pracy w trybie magistrali SPI, o której w specyfikacji standardu SD wyraźnie się wspomina?

Przy okazji - czy jest jakiś programowy monitor stanów złącz (głównie złącza SD) dla palmtopa, pozwalający rejestrować ich pracę?

Jak już wspomniałem, mój pda to A639, system WinMobile 5, próbuję programować w Pelles C.
« Ostatnia zmiana: Sierpień 21, 2007, 20:54:45 wysłana przez Borys_D »

*

Offline mustela

  • 47
  • Płeć: Mężczyzna
Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #1 dnia: Sierpień 22, 2007, 10:57:17 »
a nie prosciej by bylo poprzez  USB.
Jesli masz usb hosta to jest duzo scalonych przetwornikow (uC) A/D z portem USB.
bylo by i latwiej i przyjemniej i uniwersalniej (poprawnosc dzialania mozesz sprawdzic na PC).

Pozdrawiam.


*

Offline fp

  • **
  • 113
    • http://pdaclub.pl/forum/index.php?action=search
Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #2 dnia: Sierpień 22, 2007, 15:16:06 »
a nie łatwiej połączyć się przez port szeregowy? zazwyczaj we wtycze łączącej są wyprowadzenia (no ale nie w każdym palmie).

Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #3 dnia: Sierpień 22, 2007, 15:36:21 »
a nie prosciej by bylo poprzez  USB.

USB palmtopa (co prawda nie jest to host) jest potrzebne do zrzucania danych pomiarowych na komputer. Wiem, można bezprzewodowo, ale taki mam wymóg. Ze względu na parametry techniczne mam też z góry narzucone przetworniki, z których muszę skorzystać.
Napisane: Sierpień 22, 2007, 15:25:48
a nie łatwiej połączyć się przez port szeregowy?

Za wolny. Dużo mam tych danych do zrzucenia - paręset kb/s.

*

Offline mustela

  • 47
  • Płeć: Mężczyzna
Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #4 dnia: Sierpień 23, 2007, 13:29:39 »
USB mozna przez HUBa "rozmnozyc"...., a przez SD zapisywac na karte... albo paczkami przez Sieci Wifi na komputer.

Jak nie USB to nie bardzo mam pomysl. 
Przez SD to tylko z Karta udalo mi sie dogadac, ale to tez nie na PDa ale przez Atmela.
Pisanie sterownikow nie jest rzecza trudna ale nie bardzo trudna (jesli sie ma odpowiednia dokumentacje).

Pozdrawiam


Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #5 dnia: Sierpień 24, 2007, 18:16:30 »
USB mozna przez HUBa "rozmnozyc"...., a przez SD zapisywac na karte... albo paczkami przez Sieci Wifi na komputer.
Jak nie USB to nie bardzo mam pomysl. 
Przez SD to tylko z Karta udalo mi sie dogadac, ale to tez nie na PDa ale przez Atmela.
Pisanie sterownikow nie jest rzecza trudna ale nie bardzo trudna (jesli sie ma odpowiednia dokumentacje).

Mam odgórnie narzucone wymagania co do USB - palmtop jako klient, okazjonalnie przyłączony do laptopa. Niestety, również podczas pracy urządzenia (czyli w sumie tak, jakby USB był zajęty przez cały czas). USB odpada. Myślałem nawet o dobraniu się do irdy, ale jest za wolna. Pozostaje SD.
Co do czytania karty SD przez Atmelka, to można po prostu wykorzystać do tego SPI. Implementacja szyny SD w mikrokontrolerze nie jest też specjalnie trudna, ale z pewnością będzie wolniejsza, niż wykorzystanie sprzętowego SPI. Przynajmniej dziesięciokrotnie wolniejsza. Poza tym kłopotliwe się robi równoczesne czytanie przetworników, zegara czasu rzeczywistego itp z równoczesną obsługą szybkiego portu - prawdziwa sieczka na przerwaniach. Dlatego miałem nadzieję na dobranie się do SD od strony palmtopa. No nic, pewnie zaimplementuję SD od strony mikrokontrolera. Trochę roboty, ale przyda się na przyszłość.

*

Offline Kajetan Krykwiński

  • ******
  • 6211
  • Płeć: Mężczyzna
    • Kocham Wieluń: dziennik internetowy poruszający zagadnienia związane z Wieluniem i okolicami
  • Sprzęt: Karton antyków. Albo i dwa.
Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #6 dnia: Sierpień 24, 2007, 21:02:31 »
Chłopaki sugerują zmianę PDA na coś z hostem USB  :mrgreen: Wtedy po kliencie (tym USB do synchronizacji) gadałbyś z komputerem a po hoście (czyli tym gdzie możesz podłączać urządzenia) do twoich urządeń.

A SD mowa oczywiście o SDIO ?

Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #7 dnia: Sierpień 25, 2007, 13:01:19 »
Chłopaki sugerują zmianę PDA na coś z hostem USB  :mrgreen: Wtedy po kliencie (tym USB do synchronizacji) gadałbyś z komputerem a po hoście (czyli tym gdzie możesz podłączać urządzenia) do twoich urządeń.

Mam trzy sztuki mypal'a, buduję trzy urządzenia. Nie będę zmieniał :)

Cytuj
A SD mowa oczywiście o SDIO ?

Niekoniecznie. Podstawowy SD w zupełności wystarczy - przestrzeń adresowa mikrokontrolera od strony palmtopa widoczna by była jako plik, który można czytać i modyfikować standardowymi komendami fopen, fseek, fread, fwrite.

Odp: Jak bezpośrednio dobrać się do linii portu SD?
« Odpowiedź #8 dnia: Październik 03, 2009, 23:17:30 »
Trochę czasu minęło, ale ponieważ rozwiązałem problem, podsyłam rozwiązanie. Może się komuś przyda.

Kluczem było sprawdzenie, jaki procesor siedzi w moim PDA (PXA270) i ściągnięcie dokumentacji do niego. Okazuje się, że wszystkie peryferia, w tym kontroler portu MMC/SD/SDIO są zintegrowane z procesorem. Co więcej, kontroler jest w stanie pracować jako magistrala SPI, mimo że oryginalne sterowniki wince tego trybu nie obsługują. W efekcie pozostało nauczyć się pisać sterowniki i napisać taki, który wykorzystuje magistralę SPI.
Przy okazji - z poziomu sterownika każdy pin doprowadzony do do złącza SD można obsłużyć programowo, co w bardzo prosty sposób pozwala np. sterować przy pomocy palmtopa jakimś urządzeniem dołączonym do niego.