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

Zabezpieczenie avr przed zablokowaniem przy programowaniu

Sław1980 11 Maj 2012 07:55 1815 9
REKLAMA
  • #1 10883546
    Sław1980
    Poziom 17  
    Witam. W nawiązaniu do problemu z tematu https://www.elektroda.pl/rtvforum/topic2286646.html#10860308 mam pytanie. Czy w jakikolwiek sposób można zabezpieczyć procesor przed omyłkowym programowaniem bez zasilania układu? Może jakieś rezystory na linii programowania czy coś podobnego?
  • REKLAMA
  • #2 10883648
    McMonster
    Poziom 32  
    Może ściągając pin SCK do masy tranzystorem sterowanym z wejścia RESET? Bez zegara na SPI układ się nie zaprogramuje.
  • #3 10883650
    piotrva
    VIP Zasłużony dla elektroda
    Np. bramki logiczne AND na liniach programatora - jedne linie podpięte do programatora-procesora, a drugie wejścia podpięte do VCC płytki i ściągane jakimś rezystorem do masy. Teoretycznie powinno zadziałać. Ale i tak najlepszym rozwiązaniem jest OSTROŻNOŚĆ.

    Dodano po 3 [minuty]:

    McMonster napisał:
    Może ściągając pin SCK do masy tranzystorem sterowanym z wejścia RESET? Bez zegara na SPI układ się nie zaprogramuje.

    Tak? A jak będziesz chciał wykorzystać ten pin do czego innego podczas normalnej pracy? Może to też być przyczyną zwarcia w układzie i uszkodzenia układu - raczej nie polecam.
  • REKLAMA
  • #4 10884079
    McMonster
    Poziom 32  
    piotrva napisał:
    Np. bramki logiczne AND na liniach programatora - jedne linie podpięte do programatora-procesora, a drugie wejścia podpięte do VCC płytki i ściągane jakimś rezystorem do masy. Teoretycznie powinno zadziałać. Ale i tak najlepszym rozwiązaniem jest OSTROŻNOŚĆ.

    Dodano po 3 [minuty]:

    McMonster napisał:
    Może ściągając pin SCK do masy tranzystorem sterowanym z wejścia RESET? Bez zegara na SPI układ się nie zaprogramuje.

    Tak? A jak będziesz chciał wykorzystać ten pin do czego innego podczas normalnej pracy? Może to też być przyczyną zwarcia w układzie i uszkodzenia układu - raczej nie polecam.


    Przepraszam, skrót myślowy. Chodziło mi w skrócie zablokowanie sygnału SCK do mikrokontrolera, gdzieś w innym wątku widziałem podobny problem (programowanie wielu AVR z jednego złącza ISP), ale znaleźć go teraz nie mogę.
  • REKLAMA
  • #6 10885825
    McMonster
    Poziom 32  
    Właśnie o temat z tego drugiego linka mi chodziło.
  • #7 14225947
    Sław1980
    Poziom 17  
    No więc znalazłem sposób żeby zminimalizować opcję zablokowania procesora. Najprostszym sposobem jest przed zaprogramowaniem odczytać ustawienia fusebitów jeśli coś będzie źle podłączone wyskoczy błąd po którym instynktownie sprawdza się zasilanie. Zdażyło się raz że mimo braku zasilania mikroprocesor podał informację na temat fusebitów więc dla pewności przed programowaniem staram się ze dwa razy kliknąć opcję "odczyt" i jak do tej pory pomysł sprawdza się w 100% :) Może to i mało profesjonalne ale działa ;)
    Dzięki wszystkim za pomoc i pozdrawiam.
  • REKLAMA
  • #8 14225981
    dondu
    Moderator na urlopie...
    Sław1980 napisał:
    Zdażyło się raz że mimo braku zasilania mikroprocesor podał informację na temat fusebitów ...

    Stało się tak zapewne dlatego, że zasilał się pasożytniczo przez diody zabezpieczające piny mikrokontrolera. :)
  • #9 14226144
    tmf
    VIP Zasłużony dla elektroda
    Sław1980 napisał:
    No więc znalazłem sposób żeby zminimalizować opcję zablokowania procesora. Najprostszym sposobem jest przed zaprogramowaniem odczytać ustawienia fusebitów jeśli coś będzie źle podłączone wyskoczy błąd po którym instynktownie sprawdza się zasilanie. Zdażyło się raz że mimo braku zasilania mikroprocesor podał informację na temat fusebitów więc dla pewności przed programowaniem staram się ze dwa razy kliknąć opcję "odczyt" i jak do tej pory pomysł sprawdza się w 100% :) Może to i mało profesjonalne ale działa ;)
    Dzięki wszystkim za pomoc i pozdrawiam.


    No można po raz kolejny wynajdywać koło na nowo. Ale nie prościej skorzystać z sensownego programatora (np. Atmel-ICE, Dragon, AVRISP itd.) i sensownego softu (np. Atmel Studio), ktore razem działają tak, że jeśli nie ma Vcc na urządzeniu programowanym lub jest ono poza specyfikacją, to AS wyrzuca błąd i nie podejmuje nawet próby programowania? Bo bez obrazy, ale twój sosób jest co najmniej dziwny. Jeśli przed każdym programowaniem mam pamiętać, aby najpierw testowo odczytać fusebity, to równie dobrze, a nawet lepiej mogę pamiętać, żeby sprawdzić czy podpiąłem Vcc. Poza tym, jak pisze kolega Dondu, MCU może być zasilany pasożytniczo i twoja metoda nie zadziała, nawet jeśli odczyt ponowisz i 100 razy - wszystko zależy od programowanego układu.
REKLAMA