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][avr-gcc] - Zegar na Timer2 - problem z uruchomieniem.

pooson 22 Wrz 2014 23:00 1224 8
  • #1 22 Wrz 2014 23:00
    pooson
    Poziom 9  

    Witam serdecznie.

    Zazwyczaj większość problemów udaje mi się rozwiązać bez pisania na forum, jednak ten doprowadza mnie już do szewskiej pasji.
    Chcę zrobić zegarek na Atmega8A taktowanym wewnętrznym oscylatorem, z podłączonym kwarcem zegarkowym do wejść TOSC1/TOSC2 -bez powodzenia.
    Zawsze program staje na pętli

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Dotknięcie nóżki kwarcu powoduje wyjście z pętli, jednak timer dalej nie działa.
    Aktualny kod testowy:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Fusy:
    Low: 0xE4
    High: 0xD9

    Dioda na PB4 świeci się ciągle, upewniałem się na wiele sposobów, że program nie wychodzi z pętli w RTCInit();

    Trzy razy zmieniałem układy (raz nawet na Atmegę88p, oczywiście dostosowując kod), testowałem na 5 kwarcach w dwóch rodzajach (jedne zwyczajne 3x8mm, drugie mniejsze) od dwóch różnych dostawców - zawsze w tym samym miejscu program się zatrzymuje.

    Schemat płytki oraz jej layout:
    [Atmega8][avr-gcc] - Zegar na Timer2 - problem z uruchomieniem.

    [Atmega8][avr-gcc] - Zegar na Timer2 - problem z uruchomieniem.
    Na layoucie jest oznaczona niepołączona masa, jednak w zmontowanej płytce masa jest połączona obudową portu microusb.

    Testowa płytka obejmuje przylutowane przewody do pinów ISP kontrolera, wlutowane kondensatory filtrujące oraz kondensatory przy kwarcu 33pF (próbowałem bez kondensatorów i z kondensatorami od 18pF do 100pF).
    Przylutowanie kwarcu bezpośrednio do pinów mikrokontrolera niczego nie zmienia.

    Program pisany w Eclipse pod Windows 7, kompilowany za pomocą WinAVR-20100110, inne programy działają, tylko ten sprawia problemu.

    Nie wiem gdzie mogłem popełnić błąd i czego mam się chwycić... Może czas się wybrać do egzorcysty? ;)

    Nie mam niestety dostępu do oscyloskopu.

    Bardzo proszę o pomoc w rozwiązaniu tej zagadki.

    0 8
  • #2 23 Wrz 2014 00:54
    Dople
    Poziom 19  

    U mnie ten kod działa (na atmega8a PDIP, bez kondensatorów przy kwarcu).

    Próbowałeś sprawdzić jak się zachowuje układ, np. na płytce stykowej? Podłączałeś obudowę kwarcu do masy?
    Sprawdzałeś z domyślnym ustawieniem fusebitów?

    Reset wisi w powietrzu - rezystor by... nie zaszkodził. :)

    0
  • #3 23 Wrz 2014 21:05
    pooson
    Poziom 9  

    Sprawdziłem na domyślnych fusach - nic.
    Podłączyłem rezystory 4.7 i 8.2kOhm - nic.
    Na płytce stykowej nie mam jak sprawdzić - mam tylko atmegi w TQFP.
    Przyłożenie na stałe obudowy kwarcu do masy - nic.
    Wylutowałem układ MAX 1555 - nic
    Próbowałem użyć środowiska Arduino i biblioteki swRTC - też nic.

    Więc zostają chyba 3 opcje:
    - błędny layout płytki
    - źle skompilowany program
    - problem z programatorem (USBasp)

    @Dople - czy mógłbyś wysłać hexa na atmegę który u Ciebie działał?

    W spoilerze kod asm wygenerowany przez avrdude:

    Spoiler:
    Kod: asm
    Zaloguj się, aby zobaczyć kod

    0
  • #5 23 Wrz 2014 21:41
    pooson
    Poziom 9  

    Akurat takie rezystory miałem i według http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html powinny być ok.

    Za hexa dzięki, niestety po wgraniu nic się nie dzieje. Chyba wrócę do modeliny i plakatówek...

    Co ciekawe reszta uC wydaje się działać - póki nie miałem kwarcu napisałem obsługę wyświetlacza 7 segmentowego i działało.

    Dołączyłem schemat w Eagle, jeżeli ktoś byłby tak miły i zerknął, czy nie mam tam jakiegoś babola powodującego takie zachowanie.

    0
  • #7 25 Wrz 2014 19:36
    pooson
    Poziom 9  

    Kondensatory też w różnych konfiguracjach próbowałem....
    Nikt nie ma pomysłu co może być nie tak?

    0
  • #8 25 Wrz 2014 20:28
    excray
    Poziom 39  

    Może spróbuj w takim układzie:
    [Atmega8][avr-gcc] - Zegar na Timer2 - problem z uruchomieniem.

    0
  • #9 25 Wrz 2014 21:56
    pooson
    Poziom 9  

    Nie miałem pod ręką 8.2M, sprawdziłem na 4.7M. Również fiasko.

    0