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

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

Iluzion 29 Gru 2014 19:04 1323 11
  • #1 14268735
    Iluzion
    Poziom 9  
    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 / 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 14268942
    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 14269052
    Iluzion
    Poziom 9  
    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 14269062
    Konto nie istnieje
    Konto nie istnieje  
  • #5 14269122
    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 14269124
    Iluzion
    Poziom 9  
    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: text
    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 14269511
    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 14269590
    Iluzion
    Poziom 9  
    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 14269613
    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 14269665
    Iluzion
    Poziom 9  
    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 14269789
    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 14269958
    Iluzion
    Poziom 9  
    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.
REKLAMA