Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Attiny2313 - [C] Po wgraniu programu programator nie wykrywa uC

Iluzion 29 Gru 2014 19:04 789 11
  • #1 29 Gru 2014 19:04
    Iluzion
    Poziom 7  

    Witam
    Chciałem wykonać małą centralkę alarmową (o ile można to tak nazwać) na początek chciałem uruchomić odczyt klawiatury matrycowej i wyświetlanie postępu wpisywania kodu. Wzorując się kursem języka C z jednej ze stron internetowych przerobiłem zamieszczony tam kod pod mojego Attiny2313 po skompilowaniu i wgraniu programu do uC program się uruchomił ale jak się można było spodziewać działał nie do końca tak jakbym chciał. Więc ponownie podłączyłem się z programatorem i pojawił błąd "Chip enable program error". Załatwiłem już w ten sposób kilka Tiny próbując programować m.in. na płytce stykowej na której już inne podobne programy działały. Nie mam już pomysłu w czym może być problem bo skoro zmieniłem "miejsce" programowania to wina leży w kodzie? Niestety nie znalazłem błędu na własna rękę.

    Żeby było wszystko jasne programuje w Atmel Studio 6.2, używam programatora USB ISP zakupionego w internecie i już wiele razy nim programowałem i nie było problemu. Wsad wrzucam za pomocą programu PROGISP (ver. 1.72).

    Kod programu (po przeróbkach i nie do końca działający jak trzeba) zamieszczam poniżej.

    tmf - poprawiłem znacznik syntax na prawidłowy, na przyszłość proszę poprawnie formatować kod

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Attiny działa na wewnętrznym kwarcu 8 MHz tak jak został przyniesiony ze sklepu (Fusebitów nie zmieniałem). Kompilator nie wyrzuca błędów.

  • #2 29 Gru 2014 19:49
    sulfur
    Poziom 24  

    Jeśli jesteś absolutnie pewny, że nie zmieniasz fusebitów to zgaduję, że wgranie programu niszczy mikrokontroler poprzez niepoprawny schemat.
    Możesz pokazać pełnyc schemat?
    Masz tam jakąś diodę lub czy możesz ją dodać, żeby udowodnić, że procesor działa i się nie programuje?

  • #3 29 Gru 2014 20:08
    Iluzion
    Poziom 7  

    Witam
    Specjalnie odznaczam programowanie fusebitów tak dla pewności, też miałem to na myśli, że układ niszczy procka ale najlepsze jest to, że on pracuje nadal i wykonuje program, teraz właśnie próbuje proste programy uruchamiać typu zapal diodę itp. i jak narazie jest możliwość wykrywania uC.

    A oto schemat:
    Attiny2313 - [C] Po wgraniu programu programator nie wykrywa uC

    Transoptor jest wyjęty z podstawki, a listwy przychodzą SV1 <-> SV2, SV3 <-> SV4,

  • Pomocny post
    #4 29 Gru 2014 20:11
    niveasoft
    Poziom 34  

    Cytat:
    Attiny działa na wewnętrznym kwarcu 8 MHz tak jak został przyniesiony ze sklepu (Fusebitów nie zmieniałem).

    Nowy procesor ze sklepu ma włączony podzielnik i pracuje na częstotliwości 1MHz.
    Bit włączający podzielnik nazywa sie CKDIV8 . Do zmiany FuseBit`ów podchodził bym jednak ostrożnie.
    Spróbuj innego programu do współpracy z tym procesorem.
    Przypominam sobie i miałem taki sam przypadek z tymi właśnie procesorami po pierwszym ich zaprogramowaniu.
    Naprawdę spróbuj innym programem. Na przykład Burn-o-matem lub MkAVRcalculatorem.
    Powtarzam. Miałem to samo. Trochę pokombinuj i procesory ruszą.
    Możesz spróbować dodać jakiś rezonator kwarcowy. Nie pamietam do końca o co chodziło ale właśnie tak się zachowywały że po zaprogramowaniu brak komunikacji. Może chińskie :D

  • #5 29 Gru 2014 20:22
    sulfur
    Poziom 24  

    O ile wiem buzzer należy traktować tak samo, jak przekaźnik. Możesz go tymczasowo usunąć lub nic nie sterować z programu?
    Nie pamiętam schematu zastępczego dla tranzystora bipolarnego pnp ale jeśli wypada niekorzystnie to masz szansę zasilić port zakłóceniem.
    Na pewno zasilasz programator zakłóceniem poprzez reset. Moim zdaniem rezystor 330 om jest w niewłaściwym miejscu.

  • #6 29 Gru 2014 20:22
    Iluzion
    Poziom 7  

    Witam
    Racja zapomniałem o dzielniku. Zgodnie z twoją sugestią spróbuje innym programem coś podziałać z tamtymi prockami, narazie czekają grzecznie w pudełku.

    Co do postępów uruchomiłem prosty program w tym układzie i wszystko działa dobrze, więc nie wiem czy jest możliwość aby program mógł w jakiś sposób uniemożliwić komunikację?

    Tu zamieszczam aktualny program testowy:

    Kod: C
    Zaloguj się, aby zobaczyć kod


    Tranzystor pnp również odłączyłem od układu.

    Buzzer był sterowany jedynie przy naciskaniu klawisza i po wpisaniu całego klucza, teraz pracuje niemal cały czas i nie ma negatywnego wpływu na komunikacje z programatorem.

    Masz na myśli rezystor R13?

    Spróbuje kolejne fragmenty pierwotnego kodu dodawać i zobaczę w którym momencie się wysypie.

    Zapomniałem dodać, ze narazie cały układ jest zasilany z programatora, zewnętrzne zasilanie nie jest podpięte.

  • Pomocny post
    #7 29 Gru 2014 21:33
    sulfur
    Poziom 24  

    Tak. Programator musi rozladować pojemność 100n i robi to w impulsie, ponieważ prąd rozładowania ogranicza tylko rezystancja ścieżek. Poprawnie powinno być tak, żeby rezystor R13 ograniczał prąd i w przypadku przycisku, i w przypadku programatora.

    Jak sobie popatrzysz na schemat zastępczy tranzystora pnp http://ea.elportal.pl/bipolarne.html rys 4.1.1 to wychodzi na to, że masz szansę zasilić procesor przepięciem powstałym w wyniku rozłączenia przekaźnika. Przez rezystor, ale zawsze. Na stronie dondu widziałem, że takie przepięcie może dojść nawet do 160V w impulsie.

  • #8 29 Gru 2014 21:50
    Iluzion
    Poziom 7  

    W takim razie zajmę się tym rezystorem aby ograniczony również był prąd rozładowania przez programator, ewentualnie usunę kondensator. Gdzieś doczytałem, że uC AVR mają wbudowany FDP, a zewnętrzny kondensator może być opcjonalny w wypadku gdy układ jest narażony na silniejsze zakłócenia.

    Teraz kwestia tego przepięcia jak go uniknąć, diodę D1 dodałem właśnie aby gasić przepięcia. Co jeszcze należałoby zastosować?

  • #9 29 Gru 2014 21:54
    sulfur
    Poziom 24  

    Moim zdaniem ta dioda jest po pierwsze w złym miejscu, po drugie jest za wolna.
    Sposób połączenia diody jest poprawny w przypadku sterowania tranzystorem npn. Przy pnp obawiam się, że nie działa tak, jak sobie to wyobrażasz.

  • #10 29 Gru 2014 22:00
    Iluzion
    Poziom 7  

    Wygląda na to, że schemat jest do gruntownej przeróbki, w takim razie należałoby wyłapać wszystkie błędy i niedociągnięcia zanim zacznę go przebudowywać. Najbardziej obawiam się sterowania transoptorem ponieważ pierwszy raz mam z nim do czynienia w moim projekcie i nie jestem do końca pewien czy ten układ by działał tak jak ja sobie tego życzę.

  • Pomocny post
    #11 29 Gru 2014 22:18
    sulfur
    Poziom 24  

    Ja trzy lata temu zrobiłem tak i działa do tej pory.
    Attiny2313 - [C] Po wgraniu programu programator nie wykrywa uC Attiny2313 - [C] Po wgraniu programu programator nie wykrywa uC Attiny2313 - [C] Po wgraniu programu programator nie wykrywa uC

  • #12 29 Gru 2014 22:51
    Iluzion
    Poziom 7  

    Zastosuje twoje rozwiązania, teraz tylko kwestia oprogramowania "centralki" ale już nad tym pracuje, póki co nie ma problemów. Jeśli się jakieś pojawią i nie będę wstanie sobie z nimi dać rady na pewno napiszę.

    Póki co dziękuję za porady

    Dokonałem paru poprawek w schemacie. Jedyne co mnie zastanawia to taka dioda Schottky'ego będzie dobra oraz czy transoptor jest będzie spełniał swoje zadanie.
    Attiny2313 - [C] Po wgraniu programu programator nie wykrywa uC


    Zastosowałem się do zaleceń sulfur i teraz układ działa bez zastrzeżeń, dodatkowo przeniosłem sterowanie przekaźnikiem na inny pin uC oraz dokonałem innych drobnych zmian w projekcie.

    Wszystkim dziękuję za pomoc.
    Temat uważam za zamknięty.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME