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

Czy adapter microSD z ATMega8L zadziała przy napięciach MISO 3,2V?

zbynio_k 28 Gru 2013 18:14 2154 12
  • #1 13108527
    zbynio_k
    Poziom 10  
    Witam,
    mam pytanie - czy taki adapter kart microSD ma prawo zadziałać ?
    (schemat w załączniku)

    Chodzi o linię MISO - DO procka.
    Wyczytałem w datasheet ATMega8L (taktowany 8MHz RC int), że minimalny poziom napięcia,
    które NA PEWNO będzie traktowane jako stan wysoki to 0,8Vcc
    czyli dla Vcc 5V to jest 4V.
    Natomiast gwarantowany poziom napięcia w stanie wysokim
    na wyjściu bufora (125 - zasilanego 3,3V) wynosi w przybliżeniu Vcc-0,1V co daje 3,2V dla Vcc 3,3V.

    Czy moje rozumowanie jest poprawne ?

    pozdrawiam
  • #2 13108718
    mickpr
    Poziom 39  
    zbynio_k napisał:
    wyczytałem w datasheet ATMega8L (taktowany 8MHz RC int), że minimalny poziom napięcia,
    które NA PEWNO będzie traktowane jako stan wysoki to 0,8Vcc
    Więc źle wyczytałeś, bo 0.6Vcc
    http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf
    Strona 235 -> Tabelka -> pozycja VIH (nie VIH1 !!!)

    Przypadek o którym mówisz dotyczy pinu XTAL1.
    Rozumowanie poprawne, ale źle doczytałeś w datasheet.
  • #3 13108881
    zbynio_k
    Poziom 10  
    Dzięki, błąd w czytaniu ze zrozumieniem :D,
    zapoznałem się dokładniej :).
    Nie będę kłócił się o setki mV ale jak wiadomo dla wykonań nieprofesjonalnych (bufor 124 VX) rozrzut parametrów i ... jesteśmy na granicy :).
    Znam to dosyć dokładnie ze 'starych' TTLi - laborki przerabiałem w latach 80.

    Ale w związku z tym ma pytanie ...

    Czy ktoś próbował uruchomić programik ze stronki
    http://mikrokontrolery.blogspot.com/2011/03/podlaczenie-karty-pamieci-sd.html
    ja próbowałem na m8 i ... jest error FR_NOT_READY

    (w oryginale jest m16 ale to niczego nie zmienia :))
  • #4 13109142
    mickpr
    Poziom 39  
    Temat niedziałającej karty SD pojawia się ostatnio co drugi prawie dzień.
    W 90% problem wynika albo z tego, że zastosowano inną niż SD kartę (np. SDHC) - błąd rozmiaru bufora, albo nie działa wcale komunikacja przez SPI.
    Najprościej (jeśli nie masz debuger'a)
    - podłącz sobie Atmegę do terminala na PC przez przejściówkę (RS232)
    - w kodzie programu umieść odpowiednie komunikaty (np. miejsca gdzie pojawiają się kluczowe wartości z poszczególnych funkcji)
    - sprawdź gdzie program dochodzi, do których funkcji wchodzi, jakie zwraca wartości (a jakie powinien)

    W ten sposób możesz w dość prosty sposób sprawdzić dlaczego nie działa 90% programów.
    Lakoniczne stwierdzenie:
    zbynio_k napisał:
    ja próbowałem na m8 i ... jest error FR_NOT_READY
    niewiele nam mówi.
    Nie pokazałeś ani schematu (podłączenia do MCU), ani nie podałeś co to za karta (SD czy SDHC), jak sformatowana itd..
    Nie wiemy też jakim przeróbkom uległ ten kod (wszak jest na kompletnie inny MCU).
  • #5 13109205
    zbynio_k
    Poziom 10  
    Dzięki mickpr,
    więc nie jestem nowością :(,
    karta microSD- sformatowana pod WinXP - FAT

    "Lakoniczne stwierdzenie" - tak, dla TEGO konkretnego przykładu
    podłączenie dla m8 dokładnie jak w schemacie z pierwszego postu.

    Moim zdaniem, jeśli nawet format karty byłby niekompatybilny, to ten error nie powinien się pojawić (powiedzmy 'krzaczki' na LCD'ku) - mogę się mylić.

    Spróbuję jeszcze innej biblioteki (choć nie bardzo wierzę w powodzenie) ale będę walczył.

    Założę "pułapki' z komunikatami na LCD'ku (niestety nie mam JTAGa)
    co jednak wymaga zrozumienia bibliotek - a TO dopiero PO 3.Królach :D .

    Postaram się NIE odpuścić tematu - bo to do mojego projektu

    pozdrawiam

    i dla wszystkich Do Siego 2014 roku :)
  • #6 13109816
    mickpr
    Poziom 39  
    zbynio_k napisał:
    podłączenie dla m8 dokładnie jak w schemacie z pierwszego postu
    Czy pin CS jest zewnętrznie podciągany?
    Jaki kwarc/ jaka częstotliwość?
    Gdzie masz kod?
    Jakie fusebity?
    zbynio_k napisał:
    moim zdaniem, jeśli nawet format karty byłby niekompatybilny, to ten error nie powinien się pojawić (powiedzmy 'krzaczki' na LCD'ku) - mogę się mylić
    Mylisz się - w przypadku złej konfiguracji procedury po prostu nie działają (a nie jak myślisz - że "zwracają śmieci").
    zbynio_k napisał:
    spróbuję jeszcze innej biblioteki (choć nie bardzo wierzę w powodzenie) ale będę walczył
    Bardziej potrzebna ci jest konsekwencja. Pokaż schemat, pokaż kod - pomożemy.
  • #7 13110679
    zbynio_k
    Poziom 10  
    Na razie dzięki za wskazówki,
    tematu nie zamykam - spróbuję powalczyć samodzielnie.

    Na pewno wrócę do tego

    pozdrawiam
  • #8 13110976
    tmf
    VIP Zasłużony dla elektroda
    Zazwyczaj jeśli procek jest zasilany z 5V a karta SD z 3,3V to wszystko działa poprawnie. Jeśli masz wątpliwości to zawsze możesz obniżyć zasilanie procka, np. do 4V (nie wpłynie to znacząco na max taktowanie) lub do 3,3V i wyrzucić bufor. Jak znam kolegę Dondu to nieprzetestowanego programu/schematu by na stronie nie umieszczał.
    Pamiętaj też, że nie każda karta microSD musi wspierać tryb SPI - mam kartę microSD Kingstona, która w tym trybie po prostu nie działa. Zgodnie ze standardem obligatoryjnie tryb SPI muszą wspierać normalne karty SD - sprawdź więc na zwykłej czy masz problem.
  • #9 13111426
    mickpr
    Poziom 39  
    tmf napisał:
    Jeśli masz wątpliwości to zawsze możesz obniżyć zasilanie procka, np. do 4V (nie wpłynie to znacząco na max taktowanie) lub do 3,3V i wyrzucić bufor.
    Właśnie.
    Wszak masz Atmegę 8L (więc bufor jest zbędny).

    Ja np. przetaktowałem swoją Atmegę32L (zasilaną 3,3V) z 8 na 11,059MHz (niewiele mniej niż standardowe 16MHz - prawda?) i działa z kartą SD (bez żadnego bufora) od kilkunastu miesięcy bez problemu. Może to będzie dla ciebie jakieś rozwiązanie?
  • #10 13113762
    zbynio_k
    Poziom 10  
    Witam,
    byłem pewien, że mam ATMega8L ale mój błąd - to ATmega8-16PU,
    więc obniżenie napięcia nie wchodzi w grę (Vcc min 4,5V).

    Nie zamierzam polemizować, bo także wydaje mi się, że dondu
    zamieszcza tylko sprawdzone układy i programy na blogspocie.

    Mam tylko jedną uwagę - podany projekt jest dla AS6 (którego nie znam),
    ja używam AVRStudio4 i dla poprawnego skompilowania projektu potrzebne było
    'zainkludowanie' HD44780.h w pliku main.

    Mam kartę microSD SanDisk'a 4GB - sprawdziłem, obsługuje interfejs SPI.

    Bardzo się myliłem, myśląc, że temat karty microSD zrobię 'z marszu'.
    Wskazówki i sugestie kolegów zmusiły mnie do baczniejszego przyjrzenia się
    kartom pamięci (tu: microSD).

    Na początek więc, MUSZĘ zapoznać się komendami obsługującymi komunikację i
    znaleźć miejsce, w którym się 'sypie'.

    Znalazłem również taką ciekawostkę - EP 12/2007
    "Karty SD mogą być wyposażone w mechanizm ograniczania poboru
    energii w czasie bezczynności. Na przykład karty SanDisk przechodzą
    w stan uśpienia, jeżeli po zakończeniu komendy przez 5 ms nie zostanie
    przesłana kolejna komenda. Karta jest wybudzania, kiedy host zacznie wysyłać
    do niej komendę."
    Oraz to, że DataOut karty SD jest Open Drain (w materiale j.w.) i mam nadzieję,
    że nie dotyczy to kart microSD :).

    Dzięki za dotychczasowe uwagi i sugestie, pozdrawiam.
  • #12 14966820
    zbynio_k
    Poziom 10  
    witam ponownie po dłuuuuuuugiej przerwie,
    właśnie zakupiłem slot microSD do druku i ... wracam do tematu
    sprawdzę wszystkie odpowiedzi w tym temacie i mam nadzieję, że 'zagra'

    jeśli nie, to będę kontynuował temat

    pozdrawiam serdecznie
  • #13 15101149
    zbynio_k
    Poziom 10  
    po wielu niepowodzeniach mimo przeszukania paru ton netu
    założyłem nowy temat
    ten można zamknąć
REKLAMA