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

Atmega8 - Czy poprawnie podłączyłem LED-y w moim pierwszym projekcie?

rotnemed 07 Cze 2014 13:16 2241 16
REKLAMA
  • #1 13686604
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Witam, zaczynam zabawę z elektroniką i próbuje poskładać wg schematu swój pierwszy projekt (miganie LED-ami) z mikrokontrolerem atmega8. Proszę o sprawdzenie, czy wszystko jest dobrze połączone. Zamieszczam zdjęcie schematu, oraz zdjęcie płytki.
    Załączniki:
    • Atmega8 - Czy poprawnie podłączyłem LED-y w moim pierwszym projekcie? schemat.png (13.26 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Atmega8 - Czy poprawnie podłączyłem LED-y w moim pierwszym projekcie? Zdj__cie0400.jpg (1.19 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 13686688
    ArturAVS
    Moderator
    Posty: 26206
    Pomógł: 2296
    Ocena: 7767
    Z grubsza jest ok. Dodałbym kondensator ok. 10nF od pinu reset do masy. Do mikroswitcha port ma włączony pullup? Kwarcu zewnętrznego nie ma, więc uważaj przy programowaniu Fuse bit.
  • #3 13686753
    TheWiktus
    Poziom 19  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    O ile dobrze kojarzę to nie powinno się tak realizować microswitchy - rezystor do +5V i wykrywamy masę.
    Masz też jasne diody, jaki jest ich prąd, bo atmega ma dość niską obciążalność portów, może by jej tak nie katować i dodać te tranzystory ?
  • #4 13686829
    kisielos12
    Poziom 26  
    Posty: 828
    Pomógł: 74
    Ocena: 41
    Wszystko jest OK, możesz śmiało programować.
    Przy programowaniu polecam Ci program MKAvrCalculator. Z nim nie zablokujesz procesora z powodu złych fusów :)

    Pozdrawiam
  • Pomocny post
    #5 13686916
    szczywronek
    Poziom 28  
    Posty: 678
    Pomógł: 142
    Ocena: 217
    Zamiast straszyć fuse-bitami, pozwolę sobie zwrócić uwagę na zwarte diody (zakładam, że to typowa płytka stykowa i wszystkie "dziurki" w wierszu są zwarte) ;)

    @TheWiktus - możesz rozwinąć myśl o microswitch'u? I od razu tą o "katowaniu" pinów Atmegi prądem ~3.5mA też...

    I jeszcze jedno - na tej płytce "zasilającej" są oznaczenia "+", "-". Nie znam tego ustrojstwa, ale jakby nie patrzeć oznaczenia nie odpowiadają szynom na płytce stykowej - polecam koledze Autorowi sprawdzić czy czasem nie będzie miał zmienionego +5V i masy.
  • REKLAMA
  • #6 13689747
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Dziękuje wszystkim za odpowiedź.

    Niestety nie mam pojęcia, czy port do microswitcha ma włączony pullup:(.

    @szczywronek - rzeczywiście napięcie było zmienione; zmieniłem stronami tą płytkę zasilającą i napięcia wydają się być teraz ok, oraz zmieniłem ustawienie LED-ów (zamieszczam zdjęcie).

    Ściągnąłem też program mkAVR Calculator i mam problem z wykryciem AVR.
    Programator to USBasp

    Komunikat konsoli AVRDUDE:
    avrdude.exe: set SCK frequency to 93750 Hz
    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: error: programm enable: target doesn't answer. 1 
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions
    avrdude.exe: Device signature = 0x000000
    avrdude.exe: Yikes!  Invalid device signature.
    avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07
    
    avrdude.exe done.  Thank you.
    Załączniki:
    • Atmega8 - Czy poprawnie podłączyłem LED-y w moim pierwszym projekcie? Zdj__cie0401.jpg (1.09 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #7 13689823
    szczywronek
    Poziom 28  
    Posty: 678
    Pomógł: 142
    Ocena: 217
    Napięcia teraz są ok :) LED'y chyba też (zdjęcie nie jest zbyt wyraźne).

    AVRDude krzyczy, że nie może ustawić częstotliwości i prosi o aktualizację firmware programatora (staaara wersja nie miała opcji programowego ustawiania częstotliwości; niestety różni "producenci" dalej sprzedają usbasp z starym oprogramowaniem).
    Jak wpiszesz komunikat błędu ("cannot set sck period. please check for usbasp firmware update") w szukajkę, to znajdziesz sporo tematów z tym problemem.
  • #8 13690147
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Narazie doczytałem, że aby zmienić firmware potrzebny jest drugi programator.
    Czy jest jakiś inny sposób, aby zmienić firmare mając tylko jeden programator?
  • #9 13690262
    szczywronek
    Poziom 28  
    Posty: 678
    Pomógł: 142
    Ocena: 217
    Na 99% nie da rady bez drugiego programatora. Napisz jaki masz dokładnie ten usbasp. Jeśli ma zworkę spowalniającą transmisję ('slow sck'), to generalnie nie ma większego problemu - założysz zworkę i będzie działać.
  • #10 13690511
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Kupiłem go w zestawie z płytką na allegro. Wiem o nim tylko tyle ile jest na nim napisane, bo instrukcji żadnej nie było.

    USBASP V2.0
    LC Technology
    Załączniki:
    • Atmega8 - Czy poprawnie podłączyłem LED-y w moim pierwszym projekcie? Zdj__cie0403.jpg (746.2 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Atmega8 - Czy poprawnie podłączyłem LED-y w moim pierwszym projekcie? Zdj__cie0402.jpg (806.37 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #11 13691207
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    Mam chyba identyczny programator i ruszył dopiero na ProgISP 1.72. Jak nie znajdziesz, daj maila to Ci podeśle.
  • #12 13691297
    TheWiktus
    Poziom 19  
    Posty: 378
    Pomógł: 9
    Ocena: 8
    Jeśli chodzi o microswitche, wewnętrzne rezystory podciągające nieraz sprawiły mi sporo problemów,niby działają, ale lepiej zawsze dorzucić swoje tak dla pewności.
    Co do diody one mają nominalny prąd w okolicach 25-30mA, ty im ograniczasz prąd znacznie, bardziej tymi rezystorami 1k, będą świeciły, ale nie z pełną jasnością, nie wiem, może tak ma być.
  • #13 13691733
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Podłączyłem wszystko od nowa, i tera z bez problemu wykrywa AVR w mkAVR Calculator oraz w ProgISP 1.72 :D
    Tylko Atmel Studio 6.2 nie widzi tego programatora (jest do wyboru tylko simulator).

    Edit: Udało mi się wgrać hex-a przez mkAVR Calculator, lecz nic się nie dzieje.
    Myślę, że kod w C był dobry, ponieważ go skopiowałem z poradnika.
  • REKLAMA
  • #15 13697857
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Tzn mam ustawić wewnętrzny oscylator na 8 MHz?

    Kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #16 13698578
    kisielos12
    Poziom 26  
    Posty: 828
    Pomógł: 74
    Ocena: 41
    rotnemed napisał:
    //częstotliwość zegara
    #define F_CPU 1000000L


    Kompletnie niepotrzebne
    Sam program wygląda dobrze, polecam Ci gorąco ten filmik. Obejrzyj go i razem z Mirkiem próbuj składać procka.


    rotnemed napisał:
    Tzn mam ustawić wewnętrzny oscylator na 8 MHz?

    Dokładnie tak, po tym ustawieniu nie będziesz miał problemu z wgrywaniem programu od razu przez środowisko, np poprzez Eclipsa, kurs do niego znajdziesz na kanale do którego link załączyłem wyżej ;)


    Pozdrawiam :)
  • #17 13715340
    rotnemed
    Poziom 8  
    Posty: 19
    Ocena: 1
    Przepraszam, że dopiero teraz odpisuję ale miałem problemy z Internetem.
    Wszystko działa, dziękuje bardzo wszystkim.

    Pozdrawiam.

Podsumowanie tematu

✨ Użytkownik rozpoczął projekt z mikrokontrolerem ATmega8, polegający na miganiu LED-ami, i prosił o sprawdzenie poprawności połączeń. Otrzymał kilka wskazówek dotyczących podłączenia, w tym zalecenie dodania kondensatora do pinu reset oraz użycia zewnętrznego kwarcu. Wskazano również na konieczność użycia rezystorów pull-up dla microswitchy oraz na ograniczenie prądu LED-ów, aby nie przeciążać portów mikrokontrolera. Użytkownik miał problemy z programowaniem, związane z firmware programatora USBasp, co wymagało aktualizacji. Po poprawieniu połączeń i ustawieniu oscylatora na 8 MHz, udało mu się wgrać program, który działał poprawnie.
Wygenerowane przez model językowy.
REKLAMA