П3.1.6. Коротко о fuse-битах МК компании Atmel
Проблема fuse-битов в 8-разрядных
МК компании Atmel стала одной из самых обсуждаемых на
форумах, посвященных этим МК, особенно наиболее популярным ATtiny 2313, ATMega8 и ATMega16, что явилось причиной разработки так называемых fuse-калькуляторов. Один
из них создан упоминавшимся выше А. В.
Беловым. Он имеет графический интерфейс (см. рис. П3.1.23) и рассчитан на перечисленные МК, включая и ATMega161 (выбирается на 1-ом шаге в верхней строке), но пока работает только с
ATtiny2313. Во второй строке выбирается: шаг 2 — вид программирования:
последовательное или параллельное (обратите внмание
на ошибку в англ. названии);
3 — источник синхронизации: внутренний (RC-генератор), кварц, пьезокварц или
внешний; 4 — частота генератора; 5 — выбор CKDIV (включать/не включать); 6 —
выбор CKOUT; 7 — включать/не включать debugWIRE; 8 —
запрет/разрешение стирания EEPROM; 9 — сторожевой таймер (включить/не
включать); 10 — внешний вход сброса (отключить или не отключать); 11 — режим
BOD; 12 — режим самопрограммирования (да-нет); 13 — время выхода источника питания на рабочий
режим (50—100 мс); 14 — защита от копирования. На заключительном 15-м шаге
вызывается окно PonyProg на рис. П3.1.21 с заказанными fuse-битами.
Рис. П3.1.23.
Fuse-калькулятор Белова
Однако ошибки при манипуляциях с fuse-битами
не исключены. При этом, как правило, МК не опознается наиболее простым ISP-программатором
и многим кажется «погибшим». У автора также было три покойника ATtiny2313 и
многочисленные попытки их «оживить», в том числе и с помощью программатора AVReal с рекомендуемыми на различных форумах приемами и BAT-файлами,
не увенчались успехом. Удалось это сделать только после приобретения
программатора SableProg, являющегося USB-клоном
STK500 (разработка магнитогорцев). Для этого после
включения кнопкой VTG напряжения
питания МК
(индицируется светодиодом VTG программатора) на
закладке Fuses в окне параллельного программирования (PP/HVSP) AVR Studio (рис. П3.1.24) кнопкой Read производится чтение fuse-битов.
Для одного МК в строке SUT_CKSEL было сообщение о неопределенном (undefined) состоянии этого параметра. В выпадающем списке
этой строки было выбрано Int. RC Osc. 8 MHz Start-up time 14 CK +4.1 ms и после нажатия кнопки Program МК принял свое
первоначальное («живое») состояние. В двух других МК в этой строке было
сообщение Int. RC Osc. 128 kHz Start-up time 14 CK +64 ms.
Действительно, при макетировании была предпринята попытка использовать внутренний генератор на 128 кГц путем рекомендуемой в [15] установки битов конфигурации CKSEL из диапазона
0110—0111. После внесения аналогичных изменений в строке SUT_CKSEL оба МК
ожили. Тот факт, что использование генератора на 128 кГц приводит к
неработоспособности МК, не вполне ясен, поскольку в списке SUT_CKSEL он
имеется в трех вариантах (см. рис. П3.1.25).
Рис. П3.1.24. Окно параллельного программирования
Рис. П3.1.25. Список режимов тактирования МК ATtiny 2313