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

Karta MMC z ATmega128L: odczyt danych przerywany, same zera, CID nie działa

psiemek 17 Paź 2005 10:54 1371 5
REKLAMA
  • #1 1905153
    psiemek
    Poziom 21  
    Posty: 560
    Pomógł: 23
    Ocena: 42
    Witam. Mam pytanie czy ktoś miał problemy z tą kartą że raz ją czyta a raz coś się zatyka i nie chodzi. Mianowicie karta podłączona pod SPI ATmegi128L . Napięcie zasilające 3,3V, Rezystory podciągające na nóżkach DataIn i DataOut 68k.
    Do sterowania kożystam z bibliotek w c tych z kursu publikowanego na łamach EP.

    Po dołączeniu zasilania przeczytało mi jakieś dane z pierwszego bloku karty ale po kilku takich próbach przestało. Teraz przychodzą same "zera". Nie mam pojęcia co skopałem i dlaczego najpierw działało a teraz nie. Przy odczycie CID od początku wyświetlał mi same zera. Czy możliwe że zabiłem ją "programowo" ??
  • REKLAMA
  • Pomocny post
    #2 1905428
    piotr_go
    Konstruktor DIY elektronika
    Posty: 2907
    Pomógł: 94
    Ocena: 3338
    Hello

    Najlepiej sprawdź karte w pc albo jakimś innym sprzęcie.

    Jest kilka możliwości:
    1. karta nie obsługuje spi
    2. w tych bibliotekach z ep są błędy, też z nich kożystałem z tym że na prockach ARM i musiałem poprawić kilka rzeczy(nie związanych z przejściem avr->arm) bo miałem podone problemy

    Skoro używasz avr to może sprawdź biblioteki MMC z yamppa?

    Pozdro Piotr
  • REKLAMA
  • Pomocny post
    #3 1905547
    sepher
    Poziom 19  
    Posty: 301
    Pomógł: 21
    Ocena: 4
    A korzystasz z linii SS sterowanej sprzętowo z procka czy z jakiejś GPIO? Jeśli wybrałeś drugą opcję, to zwróć uwagę na to, że kiedy korzystasz ze sprzętowego SPI ale bez wykorzystania SS, musisz zapewniś na tej linii odpowiedni stan logiczny (o ile pamiętam niski, ale lepiej sprawdź ;)).
  • REKLAMA
  • #4 1908137
    psiemek
    Poziom 21  
    Posty: 560
    Pomógł: 23
    Ocena: 42
    Z tego co poczytałem datasheeta do ATmegi to nieważne czy korzystam ze sprzętowego SS czy jakiegokolwiek GPIO i tak musze softwareowo sterowac linią SS. Odnośnie błędów w bibliotekach EP to jak na razie nie doszukałem się błędów. A od Yammpa są pod asemblera. No chyba że się mylę.
    Nie wiem dlaczego ale karta ciągle zwraca 0xFF (tzn nie steruje linią) może pullup jest za mały (68k) ?

    P.S. Może ktoś ma biblioteki do obsługi mmc na AVR ?? Chętnie pobiorę, nawet za punkty :-)
  • REKLAMA
  • #5 1948614
    psiemek
    Poziom 21  
    Posty: 560
    Pomógł: 23
    Ocena: 42
    Ok już czytam rejestry karty więc procedurki działąją. Teraz mam inny problem Wysyłam komendę READ_SINGLE_BLOCK, karta potwierdza R1 (0x00) i czekam na Data Token a karta śle ciągle 0xFF Nie wiem co skopałem. Poza tym jak przerwę jej to szukanie tokenu i puszczę program w debugerze od początku to już nie mam szans na reset. Karta nie chce wyjść ze stanu IDLE_STATE. CMD1 powtarza się w nieskończoność. O co chodzi ?? i jak ją zresetować tak żeby dało się w każdym momencie zacząć od początku komunikować. Piszę na GCC.
  • #6 1951689
    psiemek
    Poziom 21  
    Posty: 560
    Pomógł: 23
    Ocena: 42
    No nic. Już sobie poradziłem. Po prostu nie podawałem adresu sektora co 512 bajtów tylko przypadkowe i karta szła w maliny. Nie wiem tylko dlaczego nie wystawiała błedu adresu. A odnośnie braku możliwości reseetu karty w każdym momencie to chyba po prostu tak jest że dopóki nie zakończy jakiejś komendy to "wisii" i tylko odłączenie napięcia coś daje.
REKLAMA