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.

ATTINY2313 - Przestał odpowiadać

Fastum 30 Kwi 2013 09:48 2607 24
  • #1 30 Kwi 2013 09:48
    Fastum
    Poziom 9  

    Witam
    Na zaliczenie projektu postanowiłem wykonać zegarek z kilkoma dodatkowymi funkcjami. A że miałem z góry określony typ mikrokontrolera muszę korzystać z ATTINY2313. Program odmierzający czas wczoraj skończyłem wszystko działało jak należy. Po dodaniu zewnętrznego kwarcu 4Mhz, włączyłem cały układ żeby sprawdzić czy poprawnie odmierza czas. Jakieś 40 minut pracował bez jakichkolwiek problemów i w pewnym momencie wykrzaczył się i wyświetlacz lcd pokazuje bliżej nieokreślone znaki, które co jakiś czas się zmieniają. Programator USBASP wogóle nie czytał mikrokontrolera, po czym dzisiaj nagle magicznie znów mogłem go normalnie zaprogramować. Po podłączeniu wszystkiego na nowo problem znów się powtórzył dziwne znaczki i brak jakiejkolwiek komunikacji z ATTINY. Całość zasilam wykorzystując LM7805, który sprawdzał się przy poprzednich projektach, napięcie zasilające utrzymuje się na równym poziomie 5V.
    Moje pytania:
    1) Co mogło spowodować takie problemy?
    2) Czy jest jakiś prosty sposób na sprawdzenie ATTINY?
    3) Jeśli to jednak wina zasilania, może znacie jakieś lepsze rozwiązanie?

    Pozdrawiam

    0 24
  • #3 30 Kwi 2013 16:27
    Fastum
    Poziom 9  

    Dziękuje za zainteresowanie :)
    Na szybkości narysowałem schemat mojego "projektu":
    ATTINY2313 - Przestał odpowiadać
    Różni się jedynie tym że znalazłem w eaglu jedynie AT90S2313 ale układ pinów jest praktycznie taki sam.Ogólnie opieram się na projekcie znalezionym na stronie:
    http://www.swharden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/
    Programista ze mnie początkujący także miejcie wyrozumiałość patrząc na ten kod:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    Mam nadzieję że trochę rozjaśniłem mój problem ponieważ chciałbym dalej rozwijać mój pożal się boże projekt:P Wszelkie pomysły jak i konstruktywna krytyka mile widziane:)
    Podaję również resztę plików z których korzystam

    0
  • #5 30 Kwi 2013 17:10
    Fastum
    Poziom 9  

    Podłączenie rezystora nic nie dało :/
    Coś wnioskuję że ubity scalak. Mam drugi identyczny i bez problemu wykrywa go programator. Jednak chciałbym uniknąć zamordowania kolejnej ATTINY, zanim znów odpale całość po raz setny sprawdzę połączenia :P Mam nadzieję że wspólnymi siłami znajdziemy jakieś rozwiązanie problemu.
    A tak nawiasem dondu dzięki za pkt przydadzą się :)

    0
  • #6 30 Kwi 2013 17:14
    dondu
    Moderator Mikrokontrolery Projektowanie

    Nie ma za co, mnie one nie są potrzebne :)

    W układzie jak na schemacie nie "zamordujesz" mikrokontrolera.
    Być może niechcący przestawiłeś fusebity ... ?

    Wrzuć jeszcze zdjęcia.

    Dalsza analiza z mojej strony dopiero po 19:00.

    0
  • #7 30 Kwi 2013 19:01
    Fastum
    Poziom 9  

    Fusy ustawiam i wrzucam hex za pomocą mkAVR Calculator
    ATTINY2313 - Przestał odpowiadać
    Właśnie wydaje mi się że jednak coś z nimi jest nie tak... No bo kolejna attina nie odpowiada :/ Za to trzecia już z kolei którą nie ustawiałem na pracę z zewnętrzynym kwarcem programuje się chociaż po podłączeniu wyświetlacz pokazuje jedynie jakieś śmieci... powoli zaczyna mi brakować pomysłów :/
    Może kwarc uwalony?

    0
  • #8 30 Kwi 2013 19:14
    SylwekK
    Poziom 29  

    Jeszcze jedno, na schemacie przed 7805 jest 33uF. Nie wiem skąd podajesz napięcie i jak dobrze ono jest odfiltrowane, ale na własnej skórze przekonałem się kiedyś, że tam też dobrze jest wstawić (obok tego 33uF) 0,1uF. Bardzo prawdopodobne że jakieś zakłócenie wykrzacza Ci procka. U mnie działy się takie rzeczy, że już w desperacji chciałem nawet z projektu zrezygnować i coś mnie podkusiło... jeden malutki 0,1uF na głównym zasilaniu poczynił cud :)

    0
  • #9 30 Kwi 2013 19:23
    bobeer
    Poziom 28  

    AVR raczej nie uległ uszkodzeniu, przynajmniej mi się nigdy nie udało ubić " na śmierć" ukontroler. Za to miałem kilka przypadków przestawienia fusebitów i zablokowania procesora na programowanie szeregowe. Przypadki takie były związane z:
    1.Problem połączeń między programatorem a kontrolerem.
    2.Wyprowadzenie reset procesora wisiało w powietrzu (zawsze warto dać rezystor 1-10k).
    3.Problemy z zegarem / napięciem procesora podczas programowania (generowanie błędów przesyłu danych).

    Domyślam się, że nie masz programatora równoległego, więc ostatnia deska ratunku, to podanie sygnału zegara zewnętrznego, i nadzieja, że przestawiły się fusy od oscylatora, a nie np. od resetu/dw

    0
  • #10 30 Kwi 2013 19:23
    domansolarpower
    Poziom 13  

    A czy attiny2313 ma możliwość wewnętrznego podciągania resetu? :)

    Czym to zasilasz dokładnie (impulsówka, trafo+mostek, bateria)?

    0
  • #11 30 Kwi 2013 19:31
    Fastum
    Poziom 9  

    Zasilam to z trafa, próbowałem też bezpośrednio z usb ale nicość... a na dodatek wyświetlacz krzaczy ale tylko wtedy jak podłączę attinę. Nie mam teraz czasu ale jak wrócę postaram się wrzucić jakieś zdjęcia.

    0
  • #12 30 Kwi 2013 21:42
    glecki
    Poziom 20  

    Kolego
    Jestem takim samym samym amatorem jak Ty.Ale:
    Jeśli przestawiam fusebity to jakoś dość często mam problem.Korzystam teraz z procka Atmega 162,Win XP,programator STK 200.Fusebity ustawione OK i po programowaniu procek nie odpowiada.Dlatego stworzyłem Fusebit Doctor i po problemie.Na 10 programowań fusebitów 2 są do du.......y.Myślę,że to wina Xp-ka.Ale jak coś nie działa uruchamiam fusebit doctor i zaczyna wszystko działać ok.Dodam,że moje układy zasilam z portu USB komputera.

    0
  • #13 01 Maj 2013 11:07
    Fastum
    Poziom 9  

    O fusebitach czytałem i wiem że źle ustawione to spory problem. Tylko że nie wydaje mi się żeby były źle ustawione, bo Attine programowałem bez problemu wszystko działało jak należy przez jakieś 40 min później pokrzaczyło na wyświetlaczu i brak jakiejkolwiek komunikacji ze scalakiem. Chyba fusebity same z siebie się nie przestawiają?
    Mam jeszcze jedną Attine ale po wgraniu jakiegokolwiek programu (który wcześniej działał) wyświetlacz pokazuje jedynie takie coś:
    ATTINY2313 - Przestał odpowiadać
    Teraz w jakiś sposób muszę sprawdzić ten wyświetlacz i dowiedzieć się co jest przyczyną.

    0
  • #14 01 Maj 2013 11:13
    glecki
    Poziom 20  

    Drogą dedukcji:jeśli na dwóch prockach ten sam wyświetlacz krzaczy to obstawiał bym wyświetlacz.Podłącz do pinu jakąś diodę Led ,napisz jakiś prosty program i będziesz wiedział czy działa.Napisz jeszcze co się dzieje gdy odepniesz LCD,czy komunikacja z procesorem jest OK,czy normalnie daje się programować.Mało prawdopodobne,aby uszkodzony wyświetlacz uszkadzał kontroler.
    Powodzenia

    0
  • #15 01 Maj 2013 12:01
    domansolarpower
    Poziom 13  

    Taki sam wyświetlacz mi padł - sam z siebie :) Warto mieć ich więcej niż 1 szt.
    Przy okazji (choć to pewnie mało istotne) z noty katalogowej wynika że przy kwarcu 4 MHz zaleca się - 12-22 pF a nie 33 pF.
    Mi usbasp zablokował raz procka przy zwykłym wgrywaniu hexa, był chwilowy błąd podłączenia i fusy się poprzestawiały :)
    Mi się wydaje że to wina zasilania :)

    0
  • #16 01 Maj 2013 12:37
    Fastum
    Poziom 9  

    Jako że wczesna faza projektu wszystko składam na płytce prototypowej, wszystkie połączenia postanowiłem wykonać od zera. O dziwo wyświetlacz ruszył :) Wszystkie dotychczas napisane programy działają jak tak jak trzeba, chociaż na razie nie dodaje zewnętrznego kwarcu bo jakoś nie mam zaufania do swojego, którego wylutowałem z innego układu. Kupię nowy i zobaczymy :P

    0
  • #17 01 Maj 2013 12:47
    domansolarpower
    Poziom 13  

    Skoro to zegarek to precyzyjniej by było wystartować z jakimś RTC np. pcf8583 :) Wtedy na procku możesz dać i wewnętrzny oscylator 1-8 MHz :) A i podtrzymanie bateryjne takiego zegarka łatwo da się zrobić :) Albo pobieranie czasu z DCF to by prowadzącego zajęcia mogło zaskoczyć :D

    0
  • #18 01 Maj 2013 14:25
    Fastum
    Poziom 9  

    Jak będę przerabiał układ dla siebie dodam na pewno parę bajerów :P A prowadzący i tak będzie zaskoczony bo zrobił 5 zajęć na 2 mogliśmy coś zaprogramować a reszta jak to powiedział "róbta co chceta" to jest polibuda :|

    0
  • #19 01 Maj 2013 15:23
    glecki
    Poziom 20  

    Płytka stykowa to jest koszmar.Miałem ,testowałem dwa razy i wylądowała w koszu.Moim zdaniem niezbędne minimum to płytka uniwersalna solidnie polutowana.Goldpiny dobre i uniwersalne rozwiązanie.A PCF podany powyżej to archaik.Mam,testowałem i leży bezużyteczny.Jak ktoś chce mogę wysłać komuś za cenę elementów.Stosuję teraz DS 1307 i jestem bardzo zadowolony.Zapisujesz ,odczytujesz.Żadnych przeliczeń itp jak w PCF-ie. Płytkę stykową wyrzuć bo nie będziesz wiedział czy program źle napisany,czy gdzieś nie ma styku.

    0
  • #20 01 Maj 2013 16:08
    domansolarpower
    Poziom 13  

    Może i archaik ale działa :D

    0
  • #21 01 Maj 2013 16:13
    glecki
    Poziom 20  

    Oczywiście Kolego masz rację.Ale jeśli mam poświęcać kupę czasu na naukę przeliczania roku i dnia tygodnia, to rezygnuję i wolę się zająć bardziej konstruktywnymi zagadnieniami.PCF-a uczyłem się 3 dni i chodziło to jako-tako a DS odpaliłem w 3 godziny i żadnych problemów z odczytem roku czy dnia tygodnia.Oczywiście jest to moje subiektywne odczucie i każdy wybierze sobie najbardziej odpowiedni RTC.

    0
  • #22 01 Maj 2013 16:23
    domansolarpower
    Poziom 13  

    Podałem go tylko jako przykład. Myślę że autor tematu jeśli chciałby zastosować jakiś RTC to przed zakupem zrobił by jakiś choćby minimalny "research" i wybrał by odpowiedni dla siebie :) Nie ma się co spierać o poziomy trudności bo to rzecz względna i dla każdego indywidualna :)

    edit:

    Właśnie znalazłem twój temat dotyczący DS1307 który się zaczyna od słów:

    Cytat:
    Po paru dniach walki skończyły się pomysły.Procesor Atmega162 i moduł zegara RTC Tiny z układem zegara DS1307.;myślę ze będę reklamował moduł.


    Jak to się ma do tych 3 godzin? :)

    edit2: Odpowiem tu żeby nie robić zbytniego offtopa - jeśli chodzi o płytki stykowe:

    Kto co lubi :) Nie raz ułatwiły życie i zaoszczędziły wielu godzin a nie raz te wiele godzin zjadły na przerwanych połączeniach :) Są rzeczy które każdy sam musi przetestować na własnej skórze i sam sobie odpowiedzić czy mu to pasi czy nie :)

    0
  • #23 01 Maj 2013 16:28
    glecki
    Poziom 20  

    Oczywiście Kolego masz rację.
    Konstruktywna dyskusją jest dla mnie jak piękna kobieta.Lubię się nią zajmować.Nie cierpię odpowiedzi typu:jak możesz tego nie wiedzieć itp.
    A jakie masz zdanie o płytkach stykowych.Tak dla potomnych.

    0
  • #24 01 Maj 2013 20:31
    dondu
    Moderator Mikrokontrolery Projektowanie

    glecki napisał:
    Płytka stykowa to jest koszmar.Miałem ,testowałem dwa razy i wylądowała w koszu.M ... Płytkę stykową wyrzuć bo nie będziesz wiedział czy program źle napisany,czy gdzieś nie ma styku.

    Gdy ktoś młotkiem nie umie się posługiwać, to palce ma porozbijane.
    Znam człowieka, który nawet Goździka do ruiny doprowdził.
    Ale czy to oznacza, że Goździk był kiepski, czy może jego kierowca?


    @Fastum

    Prosiłem byś wrzucił zdjęcia, ale nie miałem na myśli samego wyświetlacza, tylko cały Twój układ.

    W pętli głównej, na samym początku wywołujesz funkcję czas_lcd().
    W jakim celu za każdym obiegiem pętli?

    0
  • #25 02 Maj 2013 09:14
    glecki
    Poziom 20  

    Kolego Dondu
    Posługując się Twoją terminologią:jeśli młotek jest niewygodny w użyciu to mam nim pracować mimo wszystko i się męczyć,czy szukać innego narzędzia?Poz tym,założyciel postu szuka przyczyny złego działania układu,a tu jak sam widzisz problemem jest płytka stykowa.Forum służy do wypowiadania swoich opinii ,a moja na temat płytek stykowych jest właśnie taka.
    Kolego Domansolarpower
    Podałem szacunkowy czas,który był mi potrzebny do opanowania obsługi poszczególnych RTC.A,że z braku należytej staranności popełniłem błąd to inna sprawa.

    0