за Fyuz
Сега, защо съм се дължи на неуспехите на фърмуера.
Фактът, че клетките от паметта има atmegi отговорен за опции за конфигуриране на всички MK - Fyuz бита.
Pro fyuz бита, както обикновено, могат да бъдат прочетени в DiHalta.
Бих добавил, че бита MC ATmega8 Fyuz подредени в две байт - старши Fyuz-байт (високи _fuses) и по-малкият Fyuz-байт (low_fuses)
И ATmega168 има и допълнителен Fyuz-байт (extended_fuses)
Ако програмиране MK причинява катастрофа, а след това с определена вероятност (аз съм бил няколко пъти =) в тези клетки може да получите в кошчето, в резултат на galyutsinirovaniyu или неизползваеми.
Те се шият специални команди за всеки 3 байта + 1bayt данни ( "пиша където" + ", за да напише"), т.е. вероятността намеса ще съвпадне точно един от тях е малка, но когато фърмуер ненадеждни програмист (или в условия на силна намеса) директно Fyuz бита, вероятността за получаване в кошчето си значително увеличен (правим Ние обслужваме команда, за да запише Fyuz и ако по някакъв начин чудо проби poherit данни за маршрут по-лесно (те могат да бъдат произволно) и MK щастлив shavaet шум етер)
Най-неприятното Fyuz:
клетка RSTDISBL
писмено да го "0" прави продукцията rezet в нормален крак и
флаш IC за SPI ще бъде невъзможно (първо програмиране трябва да бъде "натиснат до земята" RESET - подаде "0")
клетка SPIEN
написването й, "1" е забранено от програмирането SPI. Те пишат, че
програмиране чрез сериен порт, това поле не е на разположение, така че ние не изглежда заплашително, но проверете nehochetsya =)
Клетките CKOPT и CKSEL
отговорен за времето на наблюдение и може да се изправи до такова положение, че
контролерът ще чакаме външен часовник сигнал или не е в състояние да се разклаща кварц.
Първият и вторият лекува само паралелно programmatrom (и JTAG може да помогне)
Вторият третира "времето на палеца" (няколко пъти помага =). Дъб в XTAL1 (при atmegi8 - 9 фута) с игла (или отвертка неизолирани) и shote както обикновено - чрез SPI (не за първи път ще се =) - със сигурност можете да използвате външен часовник, но това е, ако тя е или не е твърде мързеливи, за да се направи =)
Повреди по време на програмиране Fyuz почивка, заключване на бита (бита, отговорни за EEPROM защита) и на буутлоудъра могат да причинят проблеми с прост лечение (чрез SPI) поставят обратно.
Процес butlodera фърмуера се състои от четири етапа:
Отключване секцията буутлоудъра като цяло, по подразбиране, всички паметта и така atmegi
на разположение за четене / запис.
Инсталиране fyuz бита - настройва МС да работят в Arduino.
Firmware всъщност butlodera
Запис Lock бита. защитна секцията товарач на самостоятелно презаписваеми (обикновено буутлоудъра могат да променят или дори се издържат)
atmega8.bootloader.programmer (по подразбиране: STK500) протокол, използван butloderom.
atmega8.bootloader.path (по подразбиране: ATmega8) път, когато файлът е butlodera
atmega8.bootloader.file (по подразбиране: ATmegaBOOT.hex) всъщност, буутлоудъра
Сега най-забавната част:
atmega8.bootloader.unlock_bits (По подразбиране: 0x3F) стойност писмено до заключване-байт, за да отключите раздел butlodera. Това изчиства всички заключващи битове в един т.е. позволява никакви промени в раздела за кандидатстване и butlaodera.
atmega8.bootloader.high_fuses (по подразбиране: 0xCA) стойност се записва висши Fyuz-байта.
atmega8.bootloader.low_fuses (по подразбиране: 0xDF) стойности са написани в ниско байт Fyuz
atmega8.bootloader.lock_bits (По подразбиране: 0x0F) стойност написано в раздела за заключване-байт за блокиране butlodera - не за четене / запис раздел буутлоудъра (програмист разбира се, че може, но не агресивни или самоубийство скица буутлоудъра не мога =)
Помислете за това, което е написано в бита Fyuz MK: