Oprava pojistek

Ahoj,

Při programování Atmega8 jsem bouhužel zlovil špatné pojistky low C8 high D9.

Teď v eXtreme Burner vypisuje chybu “Cannot Communicate with Target Chip !”

Takže jsem postupoval podle cs.wikibooks.org/wiki/Programujeme_jedno%C4%8Dipy#Postup_opravy_pojistek
vše na nepajivím poli. Do “doktora” jsem nahrál program, který jsem si zkopiloval z souboru na tom webu, vše připojené, takže jsem odpojil reset, ale led blikla odhadem na 50 ms namísto jimi zmiňované 1s, nemocná atmega stále nefunovala, takže jsem do doktora nahrál soubor v hex, který je na tom webu, dioda se rozsvítí na cca 1s, ale nemocná Atmega stále nefunguje.

Nevíte kde by mohl být problém?
Díky za odpovědi.

Problém je v tom, že netušíš, cos tam nasypal za pojistky. Co se léčby týká, můžeš mít špatný kontakt, špatně zapojené ATmegy, napětí na resetu mimo toleranci, prostě cokoliv. To, že Ti přeprogramování v bastlpoli nefunguje může mít spousu příčin.

K pojistkám - high jsi tam nasypal default a kdyby ses podíval do datasheetu, tak by jsi zjistil, že RESET sis nezablokoval. Tudíž ISP programování je stále možné.

Když se ale podíváš na low, tak zjistíš, že sis :

  1. nastavil BODLEVEL na 2,7V

  2. povolil BOD
    Tohle je OK, jen nesmí napájecí napětí klesnout pod 2,7V, jinak se MCU drží v resetu.

  3. nastavil startup time delay na 6 CK
    S použitím BOD je to OK

  4. nastavil systémové hodiny na External clock
    To znamená, že systémové hodiny si bere z pinu XTAL1. Stačí, když si naprogramuješ tu ATmegu, co měla fungovat jako doktor, aby kmitala některým pinem a ten připojit na XTAL1 u nemocné ATmegy. Pak stačí připojit programátor a přeprogramovat pojistky tak, aby běžena na IntRC a máš opraveno.

Ale tohle všechno by ses dozvěděl, kdyby sis DŮKLADNĚ prošel datasheet od ATmega8.