piątek, 1 kwietnia 2011

Pułapki AVR: Fusebity SPIEN i RSTDISBL


Autor: Dondu

Artykuł jest fragmentem cyklu: Pułapki mikrokontrolerów AVR

Problem z fusebitami SPIEN i RSTDISBL pojawia się w przypadku:
  • zabawa z fusebitami,
  • świadome ich użycie. 


RSTDISBL

Tomator.pl
Po drodze wyłączam RESET, bo jest mi nóżka potrzebna do czegoś innego...
No i mogę go tak zaprogramować tylko raz :-(


Tomator pisze o wyłączeniu funkcji RESET pinu PB5 w mikrokontrolerze ATtiny13. Wyłączał funkcję RESET tego pinu, za pomocą fusebitu RSTDISBL:

Rys. ATtiny13

Problem polega na tym, że niektóre z fusebitów nie można wyzerować za pomocą niektórych programatorów. W tabelce przy RSTDISBL mamy przypis nr 4, który pod tabelką wyjaśnia, że:

ATtiny13 datasheet str. 103
Gdy zaprogramujesz fusebit RSTDISBL, będziesz musiał używać programatora wysokonapięciowego, by móc ponownie zaprogramować mikrokontroler.


Zobaczmy jak to jest w ATmega8:

Rys. ATmega8


ATmega8 datasheet str. 223
Gdy zaprogramujesz fusebit RSTDISBL, będziesz musiał używać programatora równoległego, by móc zmieniać fusebity lub ponownie zaprogramować mikrokontroler.



SPIEN

Ten bit odpowiada, za możliwość programowania za pomocą programatora szeregowego. Podobnie jak RSTDISBL nie można przywrócić jego ustawienia domyślnego (wyzerowany czyli zaprogramowany), przy użyciu niskonapięciowego programatora szeregowego (najpopularniejsze programatory)

Jednak w przypadku fusebitu SPIEN projektanci AVR'ów wprowadzili dodatkowe zabezpieczenie (specjalnie lub nie) polegające na tym, że za pomocą z niskonapięciowego programatora szeregowego nie można zmienić ustawić tego bitu (jedynka czyli niezaprogramowany). innymi słowy w większości przypadków nawet gdybyś chciał, to nie zmienisz tego fusebitu:

Rys. ATmega8

Ale jeżeli dysponujesz odpowiednim programatorem, możesz ten bity ustawić blokując możliwość programowania szeregowego. Dopóki jest to świadomy wybór dopóty nie ma problemu :-)


Zobacz pozostałe pułapki AVR

1 komentarz:

  1. Prosto i dokładnie napisane. Nie ma ogólników tylko konkrety np "za pomocą z niskonapięciowego programatora szeregowego nie można zmienić ustawić tego bitu". Gdyby było "za pomocą USBASP nie można zmieniać tego bitu", to pojawiłyby się pytania. Wiedząc o istnieniu HVPP lub HVSP tamto pełniejsze zdanie ma sens. Dzięki za ten i inne artykuły!

    OdpowiedzUsuń