logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Niskopoziomowa komunikacja z kartą MMC

mojzesz101 28 Paź 2011 18:31 1277 4
REKLAMA
  • #1 10075223
    mojzesz101
    Poziom 12  
    Witam wszystkich, próbuję obczaić komunikację z kartą pamięci (Atmega32, język C), nie chodzi mi jeszcze o odczyt i zapis danych, ale po prostu wysłanie jakiejś komendy do karty i odebranie odpowiedzi, podgląd rejestrów itp. Próbowałem mądrości z różnych źródeł ale jakoś mi to nie wychodzi:


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    w funkcji main m.in. napisałem tak:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Jak pisałem w komentarzu, nawet nie wiem czy karta przechodzi do komunikacji SPI, próbuję odebrać coś z karty, bo w nocie .pdf pisało, że przy komunikacji SPI po komendzie GO_IDLE_STATE karta wysyła jednobajtową odpowiedź (R1). Jedyne co odbieram od karty to zapełniony bajt (255) co nie może mieć miejsca z tego co wiem z noty katalogowej. Od strony hardware'owej myślę że wszystko jest OK, bo sprawdzałem programem napisanym w bascomie i inicjalizacja karty przebiega pomyślnie...
    W miarę możliwości bardzo bym prosił o pojaśnienie jak to powinno wyglądać prawidłowo.
  • REKLAMA
  • #2 10076159
    Piotrek_P
    Poziom 18  
    Kilka lat temu testowałem soft z tej strony. Karta MMC 32MB śmigała całkiem nieźle :)

    Pozdrawiam
    Piotrek
  • REKLAMA
  • #3 10076245
    Jado_one
    Poziom 22  
    Witam,

    A zmniejszasz szybkość SPI poniżej 400kHz przed jakąkolwiek komunikacją z kartą? (bo z tego fragmentu kodu, to nie da sie tego wywnioskowac)
    Pierwsze 80 clocków trzeba wysłać przy MOSI & SSEL=1 - oczywiście o ile jest taka możliwość w ATMEDZE - niezależnego sterowania pinami od modułu SPI (ja pisałem swój kod na ARM7).
  • REKLAMA
  • Pomocny post
    #4 10076293
    Mundi1970
    Poziom 24  
    Zbyt szybko spodziewasz się odpowiedzi R1, odczytujesz ją tylko 1 raz ;).

    Mały przykład (BASCOM):

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 10076431
    mojzesz101
    Poziom 12  
    Jado_one napisał:
    A zmniejszasz szybkość SPI poniżej 400kHz przed jakąkolwiek komunikacją z kartą?


    Tak, mam ustawioną prędkość transmisji na 125khz

    Mundi1970 napisał:
    Zbyt szybko spodziewasz się odpowiedzi R1, odczytujesz ją tylko 1 raz Wink.


    Nooooooo, teraz to działa :D karta w odpowiedzi wysyła 1 czyli IN IDLE STATE :) dzięki Ci wielkie Mundi ;)
REKLAMA