Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

"uŚciąga" - Atmega32, LCD i karta pamięci

dominon 13 Gru 2010 21:43 61102 134
  • #61 13 Gru 2010 21:43
    323493
    Użytkownik usunął konto  
  • #62 14 Gru 2010 23:42
    dominon
    Poziom 18  

    Mictronic napisał:
    Witam, mam pytanie co do obsługi kart.
    Z tego co słyszałem microSD nie posiadają zwykłego interface SPI ,ciekawe ze nie wykryłeś problemów z dwiema kartami.
    Jak dotąd w swoich projektach stosowałem zwykła kartę SD.
    Po włożeniu do slotu karty uSD przez adapterek "powiększający" ,AVRDOS nie do końca jakby ją inicjował.

    Natomiast ciekawą sprawą jest użycie watchdoga do inicjalizacji.
    Czyli w skrócie resetujesz proca aż zainicjuje kartę?Taka zabawa?:)
    Ja stosowałem tranzystor npn na masie karty i działało.

    Mam mały mętlik w głowie ,gdyż muszę zaprojektować hardware do podobnej ściągi na lcd z 3310,niestety nie stosowałem właśnie tej karty uSD.Może posiadam jakąś chińską kartę która nie ma pełnego wsparcia dla SPI?
    Jest może kolega w stanie rozwinąć ta kwestie?


    Jest to mój pierwszy projekt z zastosowaniem karty pamięci. W pierwszym poście w plikach do pobrania jest wykaz pinów karty SD i uSD. ja na tym bazowałem i potraktowałem ją jak zwykłą SD. Jest też kilka zmian w pliku bodajże mmc.bas Nie wiele więcej mogę na ten temat powiedzieć jeszcze wszystkiego nie sprawdziłem a zadziałało "od kopa".

    Co do inicjacji to nie musimy inicjować karty możemy używać samego zegarka. To tak na początek napisałem jednak inicjacja kary jest w procedurze więc można by ją wcisnąć do dowolnej części programu. Do tego nie użyłem wyprowadzeń odpowiedzialnych za informacje kiedy karta jest włożona. Dlatego będę musiał obejść to jakoś w przyszłości aby nie było problemów gdy wyjmiemy i ponownie włożymy kartę w trakcie pracy.

    grala1 napisał:
    Płytkę robiłeś termotransferem czy za pomocą Postiva 20?
    Jeżeli termotransferem to czy możesz podać swój przepis na płytkę dwustronną?
    Odnośnie lutowania uP to ostatnio lutowałem FT245RL transformatorówką. Atmega ma trochę większy odstęp między nóżkami więc powinno pójść łatwiej.


    A więc oto moje kilka uwag co do termo transferu.

    Używam papieru kredowanego o gramaturze 200. Nie jest to papier z Alledrogo gdyż na tamtym się zawiodłem. Ja kupuję w hurtowni pakowane po 150 arkuszy. I tyle w temacie papieru który ja używam. Żelazko ustawione na 3-ci stopień grzania (3 kropeczki, kreseczki czy co tam kto ma :) ).

    Płytka przeszlifowana pod wodą papierem ściernym o grubości ziarna 1000-1200.
    Następnie umyta mydłem porządnie wcierając i odtłuszczona Acetonem.

    Co do dopasowania dwóch warstw to robię to na oko. Wycinam dokładnie wydrukowany obraz płytki następnie docinam go dokładnie do linii. Przykładając do płytki dopasowuję rogi aby krawędzie papieru były równo względem siebie i na górze i na dole. Potem mocno trzymając kładę płytkę na żelazku tak żeby jej połowa była grzana. Gdy papier się przylepi przesuwam ją na środek i zaczynam jeździć po niej sporym łożyskiem potem odwracam i tak ok 10 min (ale to nie jest zasadą zależy od wielkości płytki).

    Następnie po zdjęci płytki mamy chwile dosłownie aby przygotować bardzo gorąca kąpiel. Płytka nie może w tej kąpieli zbyt szybko ostygnąć ponieważ toner stanie się kruchy. Z tego powodu woda powinna nas nawet parzyć (oczywiście nie na tyle aby nie dało się wytrzymać...).

    Łatwość zdejmowania papieru zależy od jego jakości temperatury grzania i tonera. Jedynie na temperaturę mamy tutaj wpływ, nawet z papierem mogą zdążać się różne rzeczy pomimo że pochodzi od jednego producenta.

    Co do trawienia to używam B327. Jeżeli mamy świeży roztwór to powinniśmy cały czas być przy płytce i non stop ja obracać i poruszać. Nie należy zostawić płytki po jednej stronie ponieważ wtedy jedna wytrawi się szybciej i zanim skończy się trawić druga na pierwszej pojawią się znaczne podtrawienia. Z używanym już roztworem mamy trochę łatwiej gdyż podtrawienia będą mniejsze. Jednak mimo wszystko też lepiej posiedzieć te kilkanaście minut...

    Toner zmywam Acetonem (rozpuszcza on nawet plastik więc radzę uważać gdzie odkłada się wacik lub szmatkę...). Ważne jest użycie znacznej ilości i szybkie i zdecydowane ruchy. Jeżeli nasz wacik jest już czarny lepiej wziąć następny aby nie wetrzeć tonera w płytkę (tego się już nie usunie !). Potem po wierceniu przeszlifuję jeszcze papierem ściernym pod wodą i odtłuszczam.

    To chyba tyle jeżeli coś jeszcze sobie przypomnę to na pewno dopiszę. Może komuś się przydadzą.

    Pozdrawiam Dominik P.

  • #63 28 Gru 2010 22:00
    LinkaKC
    Poziom 9  

    Myslałeś o wykonaniu jakiejś obudowy?

  • #64 28 Gru 2010 23:41
    dominon
    Poziom 18  

    LinkaKC napisał:
    Myslałeś o wykonaniu jakiejś obudowy?


    Tak myślałem i nawet wspominałem o tym na pierwszej stronie :).

  • #65 31 Gru 2010 12:50
    lukazim
    Poziom 1  

    Witam autora artykułu jak i pozostałych czytelników.
    Od razu mówię, że jestem laikiem w dziedzinie elektroniki.

    Od pewnego czasu dręczy mnie jeden problem.
    Mianowicie,
    czy jest możliwość wykonania 'małego, prostego urządzenia', które mogłoby pokazywać jakiekolwiek ruchome obrazki, czyli np. animacje, filmiki wczytywane z pendrajwa?
    czy w ogóle można gdziekolwiek dostać wyświetlacze o dowolnych wymiarach, np. 10x8 cm?
    czy jest możliwość np. podpięcia do takiego 'urządzenia' pendrajwa i czytanie z niego informacji?
    czy w ogóle jest coś takiego możliwe do wykonania w domowych warunkach?

    jeśli znajdzie się osoba, która potrafiłaby pomóc mi lub wyjaśnić pewne kwestie byłbym bardzo wdzięczny.

    oto mój mejl: lukazim(malpa)tlen.pl

    POZDRAWIAM

    P.S.
    bardzo fajny pomysł z tą konstrukcją.

  • #66 31 Gru 2010 15:22
    dominon
    Poziom 18  

    lukazim napisał:
    Witam autora artykułu jak i pozostałych czytelników.
    Od razu mówię, że jestem laikiem w dziedzinie elektroniki.

    Od pewnego czasu dręczy mnie jeden problem.
    Mianowicie,
    czy jest możliwość wykonania 'małego, prostego urządzenia', które mogłoby pokazywać jakiekolwiek ruchome obrazki, czyli np. animacje, filmiki wczytywane z pendrajwa?
    czy w ogóle można gdziekolwiek dostać wyświetlacze o dowolnych wymiarach, np. 10x8 cm?
    czy jest możliwość np. podpięcia do takiego 'urządzenia' pendrajwa i czytanie z niego informacji?
    czy w ogóle jest coś takiego możliwe do wykonania w domowych warunkach?

    jeśli znajdzie się osoba, która potrafiłaby pomóc mi lub wyjaśnić pewne kwestie byłbym bardzo wdzięczny.

    oto mój mejl: lukazim(malpa)tlen.pl

    POZDRAWIAM

    P.S.
    bardzo fajny pomysł z tą konstrukcją.


    Tak jest taka możliwość. Jeżeli by się nikt nie odezwał na maila proszę dać znać na PW.

  • #67 31 Gru 2010 18:01
    pier
    Poziom 23  

    Mam jedno pytanie które nie daje mi spokoju przy takich projektach.
    Jakie są zalety umieszczania procesora pod kątem 45 stopni na płytce?

  • #68 31 Gru 2010 18:10
    dominon
    Poziom 18  

    pier napisał:
    Mam jedno pytanie które nie daje mi spokoju przy takich projektach.
    Jakie są zalety umieszczania procesora pod kątem 45 stopni na płytce?


    W moim przypadku troszkę łatwiej mi się rozmieszczało elementy i połączenia "unrouted" nie były tak bardzo splątane. A poza tym niekiedy fajnie to wygląda :)

  • #69 08 Sty 2011 16:12
    pier
    Poziom 23  

    A jeszcze jedno.
    Jak Kolega robi wydruk do termotransferu? Najpierw drukowanie na atramentówce a później ksero czy od razu laserówką?

  • #70 08 Sty 2011 16:49
    dominon
    Poziom 18  

    pier napisał:
    A jeszcze jedno.
    Jak Kolega robi wydruk do termotransferu? Najpierw drukowanie na atramentówce a później ksero czy od razu laserówką?


    Od razu laserówką drukuje. Ksero nie odbija tak dokładnie i nie zawsze cały toner się przeniesie w trakcie wykonywania płytki. Szczególnie przy wąskich ścieżkach. Poza tym Kserowanie jest procesem na którym traci się trochę na jakości i warstwa toneru nie będzie nigdy tak gruba jak w przypadku bezpośredniego wydruku.

  • #72 10 Sty 2011 11:16
    leonow32

    Poziom 30  

    To chyba jest błąd w schemacie - jeżeli napięcie będzie wyższe to dioda się spali, bo nie ma rezystora, na którym nadmiar napięcia by się odłożył i "wygrzał" ;) mam rację?

    Przy zasilaniu z baterii o napięciu takim jakie jest pożądane, nie ma potrzeby stosowania stabilizatorów. Zamiast zenera do stabilizacji zasilania lepiej stosować np LM317 albo inne stabilizatory. Zener lepiej nadaje się do uzyskiwania napięć odniesienia, ale i na to też bywają lepsze sposoby ;)

  • #73 10 Sty 2011 13:10
    dominon
    Poziom 18  

    leonow32 napisał:
    To chyba jest błąd w schemacie - jeżeli napięcie będzie wyższe to dioda się spali, bo nie ma rezystora, na którym nadmiar napięcia by się odłożył i "wygrzał" ;) mam rację?

    Przy zasilaniu z baterii o napięciu takim jakie jest pożądane, nie ma potrzeby stosowania stabilizatorów. Zamiast zenera do stabilizacji zasilania lepiej stosować np LM317 albo inne stabilizatory. Zener lepiej nadaje się do uzyskiwania napięć odniesienia, ale i na to też bywają lepsze sposoby ;)


    Zenerka pełni rolę "bezpiecznika". Z powodu braku miejsca nie ma innego zabezpieczenia. Dioda spisuje się bardzo dobrze. Akumulator 3,6V dioda na 3,3V nic się nie grzeje i nie przepala. Fakt że trzeba uważać z napięciem gdy podłączamy zewnętrzne źródło tak jak wspomniał jeden z kolegów, ja używam tylko akumulatorka i stąd takie rozwiązanie.

  • #74 10 Sty 2011 13:25
    pier
    Poziom 23  

    Właśnie miałem takie obawy że czegoś tam brakuje.
    Próbowałem podłączać tak diodę na mojej płytce i niestety nie stabilizowała mi ona napięcia do tych 3.3V.
    Akku li ion po naładowaniu na 4.2V a więc chyba za dużo jak na ta diodę zenera?
    Jak poprawić ten układ stabilizacji aby działał poprawnie?

  • #75 10 Sty 2011 15:37
    dominon
    Poziom 18  

    pier napisał:
    Właśnie miałem takie obawy że czegoś tam brakuje.
    Próbowałem podłączać tak diodę na mojej płytce i niestety nie stabilizowała mi ona napięcia do tych 3.3V.
    Akku li ion po naładowaniu na 4.2V a więc chyba za dużo jak na ta diodę zenera?
    Jak poprawić ten układ stabilizacji aby działał poprawnie?


    Jeżeli uda Ci się upchać tam LM317 i parę rezystorów to wszystko powinno grać, a jak nie to trzeba by poszukać coś mniejszego do stabilizacji, można by użyć na przykład LM1117IMP-3.3 ten stabilizator jest w obudowie SOT223.

  • #76 10 Sty 2011 18:45
    pier
    Poziom 23  

    Ani Lm317 ani 1117 nie podoła temu zadaniu ponieważ będzie za mała różnica napięć między wejściem a wyjściem, max 0.9V. Spróbóje rozwiązania z dioda zenera 3.3V i rezystorem.

    A i jeszcze jedno. Rozwiązanie Kolegi nie pozwoli na pomiar napięcia bateri, ponieważ razem z jego spadkiem napięcie na nodze aref procesora także się obniży i to sfałszuje pomiar.
    Próbowałeś już mierzyć napięcie bateri w swoim układzie?

  • #77 10 Sty 2011 21:29
    dominon
    Poziom 18  

    pier napisał:
    Ani Lm317 ani 1117 nie podoła temu zadaniu ponieważ będzie za mała różnica napięć między wejściem a wyjściem, max 0.9V. Spróbóje rozwiązania z dioda zenera 3.3V i rezystorem.

    A i jeszcze jedno. Rozwiązanie Kolegi nie pozwoli na pomiar napięcia bateri, ponieważ razem z jego spadkiem napięcie na nodze aref procesora także się obniży i to sfałszuje pomiar.
    Próbowałeś już mierzyć napięcie bateri w swoim układzie?


    Tak co do mierzenia napięcia baterii się zgadzam. Trzeba to poprawić, ale jeszcze zastanawiam się czy nie zmienić czegoś jeszcze przy okazji.

  • #78 11 Sty 2011 23:46
    pier
    Poziom 23  

    Przeprowadziłem trochę testów na płytce stykowej i moim zdaniem najlepszym i w miarę prostym rozwiązaniem na pomiar napięcia akumulatora przez procesor będzie zastosowanie zewnętrznego napięcia odniesienia dla procesora.
    Zrobiłem takie na TL431, napięcie z niego podałem na nogę AREF procesora, na wejście ADC dzielnik z dwóch rezystorów 1Kohm i muszę powiedzieć że to jest to!
    Wprawdzie w raz ze spadkiem napięcia akumulatorka podświetlanie słabnie ale teraz procesor wie jakie ma napięcie i może zwiększyć wartość PWM-a i wszystko gra. Wie też kiedy wyłączyć układ aby nie rozładować aku poniżej bezpiecznej granicy.

    Wiem też że to dodatkowe elementy które trzeba dodać do układu ale to tylko trzy rezystory i TL431.

    Co Kolega o tym sądzi?

  • #79 12 Sty 2011 17:41
    dominon
    Poziom 18  

    pier napisał:
    Wiem też że to dodatkowe elementy które trzeba dodać do układu ale to tylko trzy rezystory i TL431.

    Co Kolega o tym sądzi?


    Jeżeli TL431 będzie w obudowie SOT23 (czyli w rozmiarze dotychczasowej diody Zenera) to myślę że to dobry pomysł i można by spróbować zaimplementować to w układzie.

    Dodam także że udało mi się odnaleźć projekt który wykorzystywał podobna technikę sterowania jednak posiadał dużo większe możliwości i przed jego autorem chylę czoła :)

    Niżej filmik i link do strony z projektem.


    Link


    Źródło

  • #80 12 Sty 2011 22:48
    pier
    Poziom 23  

    No niestety tl431 jest w obudowie SOP-8.
    Szukam do niego biblioteki do Eagle-a jak do tej pory bezskutecznie.

    A projekt z filmu bardzo ciekawy, już kiedyś go widziałem.
    Tylko nie wiem dlaczego w linku na stronie z projektem nie ma schematu ani kodu tylko jakieś pliki w formacie .rmv?

  • #81 12 Sty 2011 23:29
    dominon
    Poziom 18  

    pier napisał:
    No niestety tl431 jest w obudowie SOP-8.
    Szukam do niego biblioteki do Eagle-a jak do tej pory bezskutecznie.

    A projekt z filmu bardzo ciekawy, już kiedyś go widziałem.
    Tylko nie wiem dlaczego w linku na stronie z projektem nie ma schematu ani kodu tylko jakieś pliki w formacie .rmv?


    TL431 w TME widziałem w SOT23 to raz. A czy kolega podczas pobierania zwrócił uwagę na inne archiwa jakie są oprócz tego z plikami *.rmv? Ja ściągałem i mam i schemat i widok płytki z Eagle.

  • #82 13 Sty 2011 11:34
    pier
    Poziom 23  

    A racja jest TL431 w SOT23, dziwne bo w karci katalogowej nic nie ma o takiej obudowie.
    I pliki do tego projektu znalazłem.
    Można by się pokusić o zrobienie tego. Ciężko by było z lutowaniem.
    A jaki tam jest procesor bo na schemacie nie ma opisu?

  • #83 13 Sty 2011 11:41
    dominon
    Poziom 18  

    pier napisał:
    Można by się pokusić o zrobienie tego. Ciężko by było z lutowaniem.
    A jaki tam jest procesor bo na schemacie nie ma opisu?


    Procesor o ile dobrze pamiętam to Atmega644 w wersji niskonapięciowej. Ale podobno niektórzy próbowali zrobić układ na Atmega32 tylko w najmniejszej obudowie SMD, nie znalazłem jednak informacji czy próby zakończyły się sukcesem.

  • #84 15 Sty 2011 13:06
    323493
    Użytkownik usunął konto  
  • #86 15 Sty 2011 13:59
    dominon
    Poziom 18  

    Mictronic napisał:
    Witam, ile prądu może pobierać karta micro SD?


    To zależy od producenta i częstotliwości z jaką karta pracuje. Poniżej info. z przykładowej noty katalogowej.

    Natężenie pobierane przez układy wewnętrzne karty: max 10uA
    Natężenie w trybie "Stand By" (clock stop): max 0,6mA
    Natężenie w trakcie odczyt/zapis przy 25MHz: 15-25mA
    Natężenie w trakcie odczyt/zapis przy 50MHz: 30-45mA

    I drobnym druczkiem na dole strony:
    W trakcie operacji (zapis/odczyt) maksymalne natężenie może sięgnąć 100mA w czasie 1 sekundy.

  • #87 19 Sty 2011 20:53
    pier
    Poziom 23  

    A może Kolega zamieścić fragment programu który sprawdza jakie pliki txt (tzn. nazwy) są na karcie, ile ich jest i fragment który wybiera jeden plik txt i otwiera go?

  • #88 22 Sty 2011 17:58
    dominon
    Poziom 18  

    pier napisał:
    A może Kolega zamieścić fragment programu który sprawdza jakie pliki txt (tzn. nazwy) są na karcie, ile ich jest i fragment który wybiera jeden plik txt i otwiera go?


    Zamieszczam fragment o który kolega pytał, wszystko mieści się w jednej procedurze. Dodałem trochę komentarzy w razie niejasności proszę pytać. Niżej listing.

    Code:
    Listing: 4
    

    Sub Lista_plik
    Setfont Color8x8                                            'ustawienia czcionki
    Box(0 , 0) -(130 , 130) , White                             'ustawienie białego tła
    Waitms 100
    Cls                                                         'wyczyszczenei lcd tak dla pewności :P
    Do
       Obecny = 0                                               'poczatkowe ustawienia zmiennych
       Y = 1
       Plik_txt = Dir( "*.txt")                                 'podstawienie pod zmienna nazwy wyszukanego pliku
       While Len(plik_txt) > 0                                  'petla wyszukujaca pliki
          If Obecny = Wybrany Then                              'jezeli plik wybrany jest taki sam jak znaleziony
             Lcdat Y , 1 , Plik_txt , Blue , White              'zaznacz go na niebiesko
          End If
          Lcdat Y , 1 , Plik_txt , Red , White                  'jeżeli nie to na czerwono
          Y = Y + 8                                             'nastepna linijka LCD
          Incr Obecny                                           'zwiekrz o jeden liczbe znalezionych
          Plik_txt = Dir()                                      'szukaj dalej




       Wend

    'w ten sposob twozy sie lista plikow nastepne instrukcje nadpisuja ja w zależności od wciskanych przycisków
    'niestety na razie nie wyeliminowałem tego że zaznaczony plik potrafi "uciec" mysle ze wystarczy dolozyc
    'warunek zeby nie mozna bylo przekroczyc liczby wyszukanych plikow a jezeli to nastapi zeby wracal do pierwszego

       Obecny = 0
       Y = 1
       Plik_txt = Dir( "*.txt")
       While Len(plik_txt) > 0
          If Obecny = Wybrany Then
             Exit While
          Else
             Incr Obecny
             Y = Y + 8
             Plik_txt = Dir()
          End If
       Wend
       Lcdat Y , 1 , Plik_txt , Blue , White
       Call D_pad
       Select Case Pad
          Case 1:
             Decr Wybrany
             If Wybrany < 0 Then
                Wybrany = Obecny
             End If
          Case 2:
             Incr Wybrany
             If Wybrany > 16 Then
                Wybrany = 1
             End If
          Case 3:
             If Wybrany >= 0 Then
                Call Otworz_plik
             End If
          Case 4:
             Cls
             Exit Do
       End Select
    Loop
    End Sub


    Co do otwierania następuje ono poprzez prostą instrukcje która jest dokładnie opisana na stronie AVR-DOS'u. Całość jest dodana do kolejnej procedury w której jednocześnie nawiguję po pliku i zawijam go odpowiednio do wielkości LCD. Niżej linijka otwierająca plik który jest wybrany i przechowywany w zmiennej "Plik_txt". Zmienna ta ma typ "String*16" tak wiec nazwy nie mogą przekraczać 12 znaków. Znaczy format nazwy o maksymalnej długości wygląda tak: "xxxxxxxxxxxx.txt" poza tym więcej nie zmieści się w jednej linijce wyświetlacza przy podanej czcionce :)

    Code:
    Open Plik_txt For Binary As #1


    Pozdrawiam Dominik P.

  • #89 26 Sty 2011 18:53
    pier
    Poziom 23  

    Podglądając Kolegi program napisałem swoją procedurę która szuka plików tekstowych (dowolną liczbę) i wybiera jeden z nich do otwarcia.

    Code:

    Do
    S = Dir( "*.txt")
     While Len(s) > 0
      Tekst(licznik) = S
       If Licznik = Licznik1 Then
        Color = Darkblue
         Else
        Color = Black
       End If
       Lcdat Y , 0 , Tekst(licznik) , White , Color
        Y = Y + 8
         Incr Licznik
          S = Dir()
       Wend
       Si = Licznik
      Y = 1
     Licznik = 1

    If Gora = 0 Then Incr Licznik1
    If Dol = 0 Then Decr Licznik1
    If Licznik1 => Si Then Licznik1 = 1

    Lcdat 50 , 0 , Licznik1 , White , Black

    Waitms 150

    loop
    end

  • #90 27 Sty 2011 03:07
    dominon
    Poziom 18  

    pier napisał:
    Podglądając Kolegi program napisałem swoją procedurę która szuka plików tekstowych (dowolną liczbę) i wybiera jeden z nich do otwarcia.


    Ja sprawdzam stan przycisków w osobnej procedurze w pętli dopóki nie zostanie wciśnięty przycisk. Następnie również ustawiam odpowiednią zmienną. Potrzebowałem to ujednolicić żeby ciągle nie pisać odczytu w innych procedurach a wiadomo ta czynność powtarza się wielokrotnie...