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

Podłączenie karty SD/MMC do Atmega

maximus22_kr 19 Lis 2011 01:48 9192 27
  • #1 10155169
    maximus22_kr
    Poziom 18  
    Witam
    Czy wartości elementów podane na schemacie poniżej będą prawidłowe do poprawnej pracy Atmega z kartą SD ?

    Podłączenie karty SD/MMC do Atmega

    Oprócz tych spotkałem się jeszcze z 1,8k/3,3K ( projekt Kolegi Duch ) oraz 5K/10K (na płytce EVB4.3 )
  • #2 10155204
    opamp
    Użytkownik obserwowany
    Kolego wartości nie są krytyczne a dzielnik napięcia w skrócie 1/3 do - 1/2 żeby zbić napięcie 5V do logiki 3.3V. Każda wartość dla sumy rezystancji 10 - 15k będzie dobra :)
  • #3 10155807
    mirekk36
    Poziom 42  
    opamp napisał:
    Kolego wartości nie są krytyczne a dzielnik napięcia w skrócie 1/3 do - 1/2 żeby zbić napięcie 5V do logiki 3.3V. Każda wartość dla sumy rezystancji 10 - 15k będzie dobra :)


    Kolego, wartości tych rezystorów i ich staranne dobranie są o tyle krytyczne, że zdecydowanie najlepiej jak najszybciej zastąpić je choćby scalakiem 74HC125 i mieć sięty spokój z ich dobieraniem. A tak w ogóle to dobieranie nie polega na zbijaniu, tylko precyzyjnym dobraniu rezystorów tak żeby dało radę w miarę jak najlepsze zbocza sygnałów osiągnąć a w efekcie jeszcze możliwość uzyskiwania dobrych prędkości SPI. W przypadku w/w scalaka w ogóle nie ma takich problemów.
  • #4 10155879
    maximus22_kr
    Poziom 18  
    wiem, że można 74HC125, ten układ jest używany na płytce modułu LAN EVB, który kupiłem oraz w schemacie modułu bluetooth. Ale płytkę mam już wykonaną - wzorowałem się na schemacie EVB 4.3 i na powyższym schemacie, więc pozostaje tylko dobrać właściwie rezystory.

    Na płytce EVB 4.3 działa to ok - zarówno softwarowe i hardwarowe SPI - jest problem z większymi kartami od 1 Gb w dórę.
  • #5 10155941
    mirekk36
    Poziom 42  
    Dziwne, ja w tym temacie:

    https://www.elektroda.pl/rtvforum/topic2133447.html

    nie mam najmniejszego problemu z kartami większymi niż 2GB. Właśnie na końcu napisałem post że PetitFat nawet pięknie działa z kartami SDHC 4GB oraz 8GB przy użyciu FAT32. A dodam, że korzystam z bardzo dużej prędkości SPI bo aż 12MHz !!! (kwarc 24MHz a do tego ustawiony bit SPI2X przy podziale FCLK/2) ;)

    Oczywiście przy tych rezystorkach to mógłbym o takich osiągach zapomnieć.
  • #6 10158292
    maximus22_kr
    Poziom 18  
    Póki co to pozostanę na dzielniku 1,8 K / 3,3k

    Do Kolegi Mirka mam pytanie o podłączenie tego układu 74HCT125. Czy poniższy schemat jest poprawny ?
    i do czego podpiąć zasilanie układu 74HCT125 ? 3,3V czy 5V, bo na Elektrodzie znalazłem dyskusję , że trzeba zasilić z 3,3V, a ma schemat użycia 74HCT125 z układem ENC28J60 i tam jest podpięte do 5V

    Podłączenie karty SD/MMC do Atmega
  • #8 10158385
    mirekk36
    Poziom 42  
    Tak tylko Panowie dodam, że hmm sorki pomyliłem się z symbolem układu. Nie 74HC125 (chociaż ten też by jeszcze działał przy zasilaniu 3,3V nawet jeśli przekroczy się dopuszczalne napięcie wejściowe powyżej VCC+0,5V) a już NA PEWNO NIE 74HCT125

    Zdecydowanie trzeba użyć 74LVC125 !!!!
  • #9 10158559
    maximus22_kr
    Poziom 18  
    no to z tym 74LVC125 będzie problem, chyba że Kolega Mirek ma swoje sprawdzone źródło - w TME mają w katalogu, ale brak na stanie.

    Znalazłem jedynie tutaj
  • #12 10159937
    mirekk36
    Poziom 42  
    aaadamw napisał:
    a może 74LVC245? Też powiniec działać i jest w TME


    Jak najbardziej również się nadaje do takiego celu w 100% (też korzystam niejednokrotnie z tej wersji tego scalaka w takim celu). No tylko, że tutaj pozostanie 5 wolnych buforków i ciut większa obudowa jest. Ale w sumie do jednokrotnego użycia to co to za różnica ?
  • #13 10161621
    maximus22_kr
    Poziom 18  
    Faktycznie jest dostępny. Można prosić o schemat jego podłączenia ? Ściągnąłem już PDF do tego układu - nie wiem jak podłączyć DIR i OE

    Obudowa mnie nie przeraża i tak jest tylko w SMD
  • #14 10162678
    mirekk36
    Poziom 42  
    OE to aktywacja całego scalaka, nie pamiętam noty ale zdaje się sterowane jest to wejście stanem niskim więc można go na stałe do GND. A DIR ? no weź zajrzyj do noty PDF ;) .... ustalasz kierunek przepływu albo od wejść A do B lub od B do A w zależności czy na DIR podasz 0 czy 1 i w zależności jak sobie to podłączysz. Masz prostą tabelkę stanów w PDF.
  • #15 10163543
    maximus22_kr
    Poziom 18  
    Z OE masz rację - ściągnąłem PDF do konkretnie 74LVC245A

    tabelka jest mniej więcej taka:
    OE T/R An Bn
    L L A=B Inputs
    L H Inputs B=A

    Czy dla A jako wejście OE ma być L , a DIR ma być H

    Głupie pytanie - jak w Eagle wyświetlić podłączenie GND i VCC ? bo domyślnie nie wyświetla i jednocześnie podłącza do VCC 5V, a nie o to tutaj chodzi.

    Poniższy schemat będzie OK ?
    Podłączenie karty SD/MMC do Atmega
  • #17 10163685
    maximus22_kr
    Poziom 18  
    kilka płytek już zaprojektowałem i zostały wykonane w Satland, jakoś do tej pory nie miałem problemów z brakiem wyprowadzeń zasilania - ale kiedyś musi być pierwszy raz.

    W załączniku PDF do tego LVC
    A jeśli chodzi schemat to OK ?
  • #20 10164053
    mirekk36
    Poziom 42  
    Chociaż w zasadzie to wejście OE też można byłoby podłączyć pod sygnał CS, ale teraz schemat wygląda merytorycznie OK. Na przyszłość tylko poćwicz jeszcze samo rysowanie i zobacz jak się korzysta z narzędzia typu LABEL w Eagle ;)
  • #21 10164565
    maximus22_kr
    Poziom 18  
    A co Kolega myśli o
    SN74LVC4245ADW

    Cena trochę wysoka, ale do okazjonalnego wykorzystania powinien być OK
  • #23 10182586
    maximus22_kr
    Poziom 18  
    Skoro już jesteśmy przy dopasowaniu poziomów, to czy ten 74LVC245 nada się do pracy z ENC28J60 ?
    Na Ebay Chińczycy sprzedają moduły z ENC28J60 po 24 zł z wysyłką, ale jak widać z zdjęć na ich aukcjach brakuje układu dopasowującego poziomy.

    Na Elektrodzie znalazłem taki schemat

    Podłączenie karty SD/MMC do Atmega

    jest tam co prawda 74AC125D, ale zasilany z 5V ( na 3,3V nie zadziała ), co chyba mija się z celem, jakim jest dopasowanie poziomów. Gdybym chciał go wykorzystać do zaprojektowania własnej płytki to wymieniając 74AC125D na 74LVC245 powinno działać.

    A i jeszcze jedno, 74LVC245 ma 8 wejść i 8 wyjść, więc chyba nic nie stoi na przeszkodzie, żeby jeden układ wykorzystać do karty SD i ENC28J60 ?
  • #24 10182748
    mirekk36
    Poziom 42  
    Tak nawiasem mówiąc, to mój schemat znalazłeś ;) .... i tu zwróć uwagę, że 74HC125 (bo taki użyłem a nie ten AC) .... jest i może być zasilany z +5V a nie z 3,3V. Zauważ w którą stronę idzie konwersja. W inną niż DO karty SD.

    Ale wydaje się, że jeden 74LVC245 uda się zastosować z powodzeniem i do ENC i do karty SD
  • #25 10183937
    maximus22_kr
    Poziom 18  
    Jeszcze mam pytanie do Kolegi

    Jakiś czas temu napisałem na Elektrodzie pytanie, czy Atmega328p wyrobi się zapisem SD. Jako, że nikt nie protestował mam już gotową płytkę.

    założenia były takie:
    PD0, PD1 - UART
    PD2 - przełączanie transmisji RS485
    PD3 - INT1 do układu PCF8574 ( podciągnięte rezystorem oczywiście )
    PC4, PC5 - I2C ( TWI ) pod EEPROM + PCF8563
    PC0, PC1, PC2, PC3 - linie danych wyświetlacza
    PB1, PB2 - linie E i RS wyświetlacza
    PB2 ( Pwm1b ) - podświetlanie wyświetlacza
    PD4, PD5, PD6, PD7 - programowe SPI dla karty SD

    Zegar i PCF8574 w przerwaniu działa OK.

    Dołożenie obsługi karty SD powoduje problem z wyświetlaniem czasu, ale dopiero w momencie wystąpienia żądania zapisu - sekundy się zatrzymują i po chwili przeskakują do przodu. W sumie to chyba najmniej uciążliwe.

    Konfigurację SPI mam taką:
    
    '******************** SPI Programowe
     Const Cmmc_soft = 1
     Config Spi = Soft , Din = Pind.5 , Dout = Portd.7 , Ss = Portd.6 , Clock = Portd.4
    
    
      ' Chip Select Pin  => Pin 0 of MMC/SD
       Config Pind.6 = Output                                   '6
       Mmc_cs Alias Portd.6                                     '6
       Set Mmc_cs
    
       ' SCK - Pin CLK  => Pin 1 of MMC/SD
       Config Pind.4 = Output                                   '4
       Set Pind.4                                               '4
       Mmc_portsck Alias Portd
       Bmmc_sck Alias 1
    
       ' MOSI - Pin DI => Pin 3 of MMC/SD
       Config Pind.5 = Output                                   '5
       Set Pind.5                                               '5
       Mmc_portmosi Alias Portd
       Bmmc_mosi Alias 2
    
       ' MISO - Pin  D0 => Pin 2 of MMC/SD
       Config Pind.7 = Input                                    '7
       Mmc_portmiso Alias Pind
       Bmmc_miso Alias 3
    
     Spiinit
    


    Podpięcie jest takie:
    CD/DAT3 - przez dzielnik do PD.6
    CMD/DI - przez dzielnik do PD.5
    DAT0 - bezpośrednio do PD.7
    CLK/SCLK - przez dzielnik do PD.4

    Zmienna Gbdriveerror daje 225 po każdej próbie zapisu.

    Czy takie wykorzystanie pinów do SPI programowego może sprawiać problemy ( wiem mogłem użyć sprzętowego ). Dodam, że na portach PD jest jeszcze UART, który zamierzam wykorzystać - na razie nie używam, staram się uruchomić obsługę kart SD.

    Dodam, że programowe SPI uruchomiłem z powodzeniem na Atmega32.

    Oj, coś mi się wydaje, że będzie konieczność zrobienia nowej płytki z sprzętowym SPI dla SD.
  • #26 10184059
    mirekk36
    Poziom 42  
    A jakiż mógłby to być tajemniczy powód żebyż to taki KOŃ jak ATmega328 miała się nie wyrobić z obsługą karty SD, skoro procki ATtiny się wyrabiają ;)

    Nie pomogę tu koledze za bardzo bo kolega pisze w Bascomie, którego już prawie nie pamiętam. (Narząd nieużywany zanika) ;)

    Na prawdę nie wiem w czy może też przeszkadzać programowe SPI ?

    Dlatego proponuję koledze, zamiast tworzyć dziesiątki płytek, które będą nietrafione i marnować czas i kaskę, odpalić to najpierw na jakimś układzie prototypowym, najlepiej jakimś sprawdzonym przez siebie zestawie uruchomieniowym albo nawet na płytce stykowej.
  • #27 10184121
    Mundi1970
    Poziom 24  
    W konfiguracji portów do AVRDOSA masz błędy, raczej powinno być tak:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #28 10186762
    maximus22_kr
    Poziom 18  
    Wszystkie peryferia ( poza kartą SD ) miałem "przerobione" na płytce testowej z Atmega8. Sam zapis na SD po SPI programowy ( użyłem PB.0 - PB3, zamiast sprzętowego PB4-PB.7 ) działał u mnie na Atmega32 na płytce testowej EVB4.3 z modułem GPS.

    Spróbuję jeszcze zmienić dzielnik z obecnie używanego 1,8K/3,3K na 5K/10K - taki był na płytce testowej EVB, co prawda nei widziałem tam stabilizatora na 3,3V, ale napięcie mierzone ma 3,7V

    Niestety to samo z innym dzielnikiem - przyjdzie poczekać na zamówione w TME 74LVC245

    Kolega Mundi1970 - niestety ten kod nie działa, jest nawet gorzej, bo nawet nie próbuje zapisać
REKLAMA