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.

ATmega8 +USBasp - Nie wiem gdzie robię błąd-minutnik na ATMEGA8

Jackziom 31 Sie 2012 21:06 3156 19
  • #1 31 Sie 2012 21:06
    Jackziom
    Poziom 23  

    Witam!

    Otóż wykonałem minutnik z tej strony i nie działa- nic się nie dzieje: Minutnik

    Płytkę wytrawiłem bez problemów, wszystkie elementy na swoim miejscu, wszystkie o poprawnych wartościach wg. schematu. Ekran LED ten sam co na zdjęciach tylko czerwony a nie żółty Ekran- różni się tylko kolorem diod- czerwone zamiast żółtych.

    Informacje:

    Posiadam programator USBasp z podstawką i taśmą ISP IDC 2x5pin. Na programatorze znajduje się rezonator 12MHz a na podstawce 8MHZ- tak było fabrycznie. Zainstalowałem programator wg. instrukcji i wszystko prawidłowo. Jako, że projekt jest gotowy to chciałem wgrać wsad .hex, użyłem do tego programu Extreme Burner AVR v1.2. Otworzyłem mój plik .hex, wszystko pomyślnie, programator wraz z ATmegą8A na podstawce był już podłączony... Wybrałem CHIP-> ATmega8 oraz Setting->Programming Mode-> ISP. Następnie kliknąłem Write All, wczytało się, czerwona dioda na programatorze się świeciła i pojawił się komunikat o powodzeniu operacji. W ustawieniach programu nic nie zmieniałem. Wyjąłem µC do podstawki w płytce, podłączam zasilanie 4,5V i... nie działa! Na płytce od minutnika jest rezonator 32,768 kHz- wg zaleceń ze strony.

    Bardzo proszę o pomoc, bo nie wiem na prawdę co robić! Na płytce wszystko położone ok! Sprawdzałem bardzo dokładnie...

    Przesyłam zdjęcia płytki:

    ATmega8 +USBasp - Nie wiem gdzie robię błąd-minutnik na ATMEGA8

    0 19
  • #2 01 Wrz 2012 04:18
    dondu
    Moderator Mikrokontrolery Projektowanie

    Zacznijmy od tego, że autor nie zadbał o wymuszenie stanu wysokiego pinu RESET, ani poprzez zewnętrzny rezystor ani w programie. Dodaj rezystor 4,7k-10k pomiędzy pin RESET a Vcc. Szczegóły tutaj: http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html

    Na początku programu jest komentarz:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Jeżeli nie przestawiłeś fusebitów w nowej ATmedze, to masz ustawioną na 1MHz. Ale to raczej nie jest przyczyną nie działania - co najwyżej będzie działał 8x wolniej.

    4,5V to najniższe napięcie graniczne dla tego mikrokontrolera. Powinien działać, ale dobrze by było utrzymać je bliżej 5V. Do testów możesz go zasilać z USBasp, o ile masz taką opcję. Napisz dokładnie jak zasilasz ten projekt.

    0
  • #3 01 Wrz 2012 10:53
    Jackziom
    Poziom 23  

    To moja pierwsza zabawa z uC, wiem mogłem zacząć od prostszych rzeczy, chociaż ten projekt też nie jest jakoś specjalnie trudny.

    Nurtuje mnie jedna rzecz- autorowi działa a mi nie... On zasilał to z ogniwa 18650 czyli po naładowaniu miał max. 4,3V. Tak przy okazji to na zdjęciach jego projektu rezystory R6 i R7 mają wartość nie 10k tylko 100k- taka ciekawostka.

    A teraz do rzeczy: Na schemacie coś jest nie tak ponieważ PIN RESET idzie zarówno po ścieżce jak i w schemacie do GND... Nie wiem, może jestem zmęczony, ale tracę wątek.
    Schemat jest poprawny? Proszę o sprawdzenie.

    Dodano po 20 [minuty]:

    Podłączyłem wyjście JP1 do USB- nie działa...

    0
  • #4 01 Wrz 2012 11:55
    1477378
    Użytkownik usunął konto  
  • #5 01 Wrz 2012 12:39
    Jackziom
    Poziom 23  

    To jest opcja Configure AVR Clock... W programie Extreme Burner AVR

    1. Calibrated Internal RC Oscilator

    2. Option- 8MHz

    3. Start up time- co mam wybrać?

    Dobrze w ogóle myślę, czy to gdzie indziej jest?

    0
  • #6 01 Wrz 2012 12:56
    1477378
    Użytkownik usunął konto  
  • #7 01 Wrz 2012 13:03
    Jackziom
    Poziom 23  

    marcin387 napisał:
    Napisz jakiego programu używasz do programowania ATmegi. Nie chce tu reklamować żadnych programów do bezpiecznego ustawienia fusebitów. Pytaj jak czegoś nie jesteś pewien.


    Używam Extreme AVR Burner v1.2. Wsad .hex miałem gotowy więc pozostało go tylko wgrać tym programem. W tym programie jest opcja configure AVR clock:

    ATmega8 +USBasp - Nie wiem gdzie robię błąd-minutnik na ATMEGA8

    Dziękuję wam za zainteresowanie!

    0
  • #8 01 Wrz 2012 13:38
    1477378
    Użytkownik usunął konto  
  • #9 01 Wrz 2012 14:03
    Jackziom
    Poziom 23  

    marcin387 napisał:
    Wydaje mi się że Low Fuse masz ustawić na E4 zamiast E1. Podkreślam że wydaje mi się, jestem trochę zmęczony po nocce, więc upewnij się na 100% czy tak ma być. Jeśli masz jakieś wątpliwości to lepiej zaczekaj aż ktoś inny to potwierdzi. Nie chcę żebyś zablokował sobie procka. Co do poprzedniego mojego postu to wydawało mi się że odpowiadam na trochę inne pytanie, więc później go zmieniłem.


    Ok, poczekam. A tak na marginesie spytam z czystej ciekawości, jakbym podłączył odwrotnie zasilanie w minutniku to z ATmegą stanie się coś?

    0
  • #10 01 Wrz 2012 14:22
    1477378
    Użytkownik usunął konto  
  • Pomocny post
    #11 01 Wrz 2012 22:05
    Coolkk
    Poziom 11  

    Tak jak już napisałem w mailu lepiej nie łączyć ze sobą pinów gniazda ISP (SV2 na schemacie). Na zdjęciu widać m.in. że RST jest podłączony do masy drucikiem.

    Fuse bity możesz ustawić na:
    Low: 94
    High: D9
    Na E1 może wyświetlacz dziwnie mrygać.

    Zasilanie podłączaj pod JP1, a pod BUZZ brzęczyk lub głośnik.
    Na 4.5V bez problemu będzie działał. Kłopoty zaczynają się od 3V w dół :D

    @dondu: Masz może jeszcze jakieś uwagi do schematu? Sam też zajmuję się elektroniką hobbystycznie, więc wszelkie uwagi będą mile widziane.

    PS. Fajnie, że ktoś trafił na moją stronę :)

    0
  • #12 01 Wrz 2012 23:52
    Jackziom
    Poziom 23  

    Coolkk napisał:
    Tak jak już napisałem w mailu lepiej nie łączyć ze sobą pinów gniazda ISP (SV2 na schemacie). Na zdjęciu widać m.in. że RST jest podłączony do masy drucikiem.

    Fuse bity możesz ustawić na:
    Low: 94
    High: D9
    Na E1 może wyświetlacz dziwnie mrygać.

    Zasilanie podłączaj pod JP1, a pod BUZZ brzęczyk lub głośnik.
    Na 4.5V bez problemu będzie działał. Kłopoty zaczynają się od 3V w dół :D

    @dondu: Masz może jeszcze jakieś uwagi do schematu? Sam też zajmuję się elektroniką hobbystycznie, więc wszelkie uwagi będą mile widziane.

    PS. Fajnie, że ktoś trafił na moją stronę :)


    Jak widzisz kolego, świat jest mały... Przecięcie tych wszystkich drucików nad JP1 dało małe rezultaty... Urządzenie dało oznaki życia- tylko, że dziwnie pracuje, w ogóle nie tak jak powinno ale cyfry są... może dlatego, że za dużo przestawiałem. Wezmę nową ATmegę- bo mam tego ćwierć szuflady, wgram .hex i powiem co i jak. Dzięki za zainteresowanie autorze ;) jak i forumowicze!

    Dodano po 6 [minuty]:

    Coolkk napisał:

    Na E1 może wyświetlacz dziwnie mrygać.

    Aha zapomniałem...
    No właśnie...mrygał.

    0
  • #13 02 Wrz 2012 04:21
    dondu
    Moderator Mikrokontrolery Projektowanie

    Coolkk napisał:
    @dondu: Masz może jeszcze jakieś uwagi do schematu? Sam też zajmuję się elektroniką hobbystycznie, więc wszelkie uwagi będą mile widziane.

    Niewielkie:
    1. Pilnuj minimalnych podłączeń i filtracji zasilania - parę groszy, a daje pewność działania.
    2. Tranzystor do buzzera dawaj NPN.


    Coolkk napisał:
    PS. Fajnie, że ktoś trafił na moją stronę :)

    Jak projekt fajny i w dodatku dajesz źródła programu to i chętni do skorzystania się znajdują - gratuluję :)

    0
  • #14 02 Wrz 2012 11:41
    drzasiek
    Specjalista - Mikrokontrolery

    Jackziom napisał:
    To moja pierwsza zabawa z uC, wiem mogłem zacząć od prostszych rzeczy, chociaż ten projekt też nie jest jakoś specjalnie trudny.

    No właśnie stąd wynikają twoje problemy.
    Kopiowanie gotowych projektów to kiepski sposób na naukę, no ewentualnie można poćwiczyć robienie płytek i lutowanie. Ale nie wiem, czy o to Ci chodziło.
    Chcesz się nauczyć programować mikrokontrolery, znajdź jakiś kurs od podstaw(których jest od groma), który pokaże Ci krok po kroku jak podłączyć mikrokontroler, jak skompletować środowisko programistyczne, jak napisać i zaimplementować pierwszy program. Zaczynaj od prostych rzeczy, ale które zrobisz sam a nie skopiujesz od kogoś.

    0
  • #15 02 Wrz 2012 13:08
    Jackziom
    Poziom 23  

    drzasiek napisał:
    Jackziom napisał:
    To moja pierwsza zabawa z uC, wiem mogłem zacząć od prostszych rzeczy, chociaż ten projekt też nie jest jakoś specjalnie trudny.

    No właśnie stąd wynikają twoje problemy.
    Kopiowanie gotowych projektów to kiepski sposób na naukę, no ewentualnie można poćwiczyć robienie płytek i lutowanie. Ale nie wiem, czy o to Ci chodziło.
    Chcesz się nauczyć programować mikrokontrolery, znajdź jakiś kurs od podstaw(których jest od groma), który pokaże Ci krok po kroku jak podłączyć mikrokontroler, jak skompletować środowisko programistyczne, jak napisać i zaimplementować pierwszy program. Zaczynaj od prostych rzeczy, ale które zrobisz sam a nie skopiujesz od kogoś.


    Wiem, wiem! Chciałem po prostu trochę od zewnątrz bez wnikania w technikę poznać środowisko w jakim się to obraca. Czego potrzebuję, jak działa, co trzeba wybrać itp. Trochę później jak znajdę czas biorę się za naukę programowania, a jak się spodoba to w przyszłości czas pokaże... Poza tym potrzebowałem zabawki zbudowanej samemu i odnalazłem stronę kolegi-autora. Tym bardziej, że projekt jest bardzo dostępny.

    0
  • #16 03 Wrz 2012 11:12
    Jackziom
    Poziom 23  

    @Coolkk Mam pytanie, zrobiłem tak jak kazałeś... i mam kilka pytań:

    1. Czy te 20 minut po włączeniu minutnika jest ustawione domyślnie?

    2.Czy najmniejszą jednostką możliwą do ustawienia czasu jest minuta?

    3. Po przyciśnięciu kombinacji sprawdzenia napięcia baterii nieaktywne segmenty godziny i minut migają z częstotliwością ok. 1Hz. To jest normalne?

    0
  • Pomocny post
    #17 03 Wrz 2012 18:01
    Coolkk
    Poziom 11  

    1. 20 minut jest ustawione domyślnie w kodzie (zmienne timeleft i timeset). Można to prosto zmienić na inny czas lub ustawić aby zapisywało ostatnio ustawioną wartość.

    2. Tak - można ustawiać z dokładnością do 1 minuty. Jeśli chodzi o zastosowanie jako minutnik do gotowania to nie ma potrzeby ustawiać dokładniej. Można wyświetlić ilość sekund klikając trzeci przycisk (czyli jest np. 12 minut, a potem pokazuje np. 32 sekundy = 12min 32 sek). Tutaj też sposób ustawiania możesz dowolnie dopasować w kodzie, ale z tym by było więcej roboty.

    3. Chyba wiem o co chodzi - przytrzymanie klawiszy pokazuje napięcie przez 1 sekundę. Potem wraca do wyświetlania pozostałego czasu i jak wykryje że dalej są naciśnięte to znowu pokazuje napięcie. Stąd właśnie jest to miganie, ale nie mam pomysłu jak to lepiej rozwiązać bez przerywania odliczania. Mi to nie przeszkadza, bo napięcie sprawdzam raz na 2 miesiące i od roku jest ciągle w normie :)

    Jedyną zmianą którą bym ci polecił to dodanie pierwszej cyfry, tak aby pokazywało w formacie 88:88. Ja mam uszkodzoną pierwszą diodę w wyświetlaczu, dlatego wyświetlam maksymalnie 18:88 - ale i tak super wygląda :)

    0
  • #18 03 Wrz 2012 20:02
    Jackziom
    Poziom 23  

    Coolkk napisał:
    1. 20 minut jest ustawione domyślnie w kodzie (zmienne timeleft i timeset). Można to prosto zmienić na inny czas lub ustawić aby zapisywało ostatnio ustawioną wartość.

    2. Tak - można ustawiać z dokładnością do 1 minuty. Jeśli chodzi o zastosowanie jako minutnik do gotowania to nie ma potrzeby ustawiać dokładniej. Można wyświetlić ilość sekund klikając trzeci przycisk (czyli jest np. 12 minut, a potem pokazuje np. 32 sekundy = 12min 32 sek). Tutaj też sposób ustawiania możesz dowolnie dopasować w kodzie, ale z tym by było więcej roboty.

    3. Chyba wiem o co chodzi - przytrzymanie klawiszy pokazuje napięcie przez 1 sekundę. Potem wraca do wyświetlania pozostałego czasu i jak wykryje że dalej są naciśnięte to znowu pokazuje napięcie. Stąd właśnie jest to miganie, ale nie mam pomysłu jak to lepiej rozwiązać bez przerywania odliczania. Mi to nie przeszkadza, bo napięcie sprawdzam raz na 2 miesiące i od roku jest ciągle w normie :)

    Jedyną zmianą którą bym ci polecił to dodanie pierwszej cyfry, tak aby pokazywało w formacie 88:88. Ja mam uszkodzoną pierwszą diodę w wyświetlaczu, dlatego wyświetlam maksymalnie 18:88 - ale i tak super wygląda :)


    U mnie jest tak:

    a) Maksymalny czas jaki można ustawić to 12h. Nie wiem, może to błąd?

    b) Widzę, że minutnik jest zaprojektowany tak by świeciło się jak najmniej segmentów= oszczędność energii- coś w tym jest chociaż wizualnie nie jest to wygodne. Chodzi mi o to, że po wybraniu np. 3 minut i wciśnięciu START zaczyna migać dwukropek, pod środkowym przyciskiem jest podgląd sekund, a na minutach wtedy pozostaje 0:02 ponieważ już odliczana jest 3 minuta więc pozostały jeszcze 2 pełne. Zrozumiałe, lecz podglądając inne konstrukcje było to zrealizowane w ten sposób- odliczanie wyświetlało minuty i sekundy które upływają na ekranie.

    0
  • Pomocny post
    #19 03 Wrz 2012 20:16
    Coolkk
    Poziom 11  

    Tak, to jest w porządku. Właśnie dlatego, że nie działa mi pierwszy segment (1 cyfra) to nie mogłem tam wyświetlać minut i sekund, więc zrobiłem osobno. Jak czujesz się na siłach możesz śmiało przerabiać :)

    Podpowiem, że trzeba zmienić na coś w stylu: show_time(timeleft*60+sekundy)
    (ale nie mam jak tego teraz sprawdzić)

    0
  • #20 25 Wrz 2012 22:48
    Jackziom
    Poziom 23  

    Wszystko już gra. Wystarczyło poprawić fusebity tak jak wyżej autor podaje, oraz nie robić zworek tak jak na moim zdjęciu, bo są to piny do programatora- nie mają znaczenia w kwestii działania urządzenia. Na stronie projektu pojawił się nowy wsad do ATmegi który wyświetla minuty i sekundy, zmieniła się też skala ustawiania czasu. Polecam i zamykam!

    0