Skip to main content

ATtiny13A недоступен для внутрисхемного (ISP) программирования

Далеко не всегда причина невозможности запрограммировать микроконтроллер кроется в кривых руках. Случается и так, что даже успешный опыт программирования не гарантирует успешной прошивки контроллера, при совпадении определенных условий.

Именно такая ситуация случилась со мной совсем недавно: запас микроконтроллеров ATtiny13A был пополнен в местном магазине, платы разведены  и напилены, все распаяно и готово к программированию. И подвох ожидал там, где его в принципе не должно было быть - контроллер не увиделся программатором по ISP. Сложно запутаться в 8-ми ногах, из которых две - питание. И тем не менее, все было перепроверено, на пинах для программирования убрана периферия (например, заподозрены RC-фильтры в затягивании фронтов), но ситуация не изменилась.

Контроллеров было пять. Один запаян в плату, а остальные проверены "на весу". И у всех результат один - программатор их не видит. Что сразу стало заметно при проверке, и позволило выбрать дальнейшую тактику - вывод RESET болтается в воздухе, не имея внутренней подтяжки. Как обычный вход. Но когда фьюз RSTDISBL не активен (настройка фьюзов с завода), вывод RESET подтянут внутренним резистором, и при поданном питании на этом выводе должно быть напряжение питания.

Если же вывод RESET болтается в воздухе, это может означать только одно - фьюз RSTDISBL = 0, пин RESET настроен как обычный пин порта ввода/вывода, а следовательно, достучаться по ISP до контроллера не получится. Есть конечно еще один вариант, когда партия просто бракованная, и контроллеры в принципе не работоспособны. И здесь поставить точку может только параллельный программатор, ему совершенно без разницы, как настроены фьюзы.

Новость хорошая - в параллельном программаторе контроллер увиделся. Значит он исправен.

Попробуем разобраться, в чем же дело. Читаем конфигурацию.

Нас интересуют фьюзы:

  • Fuse High Byte: 0xF8
  • Fuse Low Byte: 0xF6

Далее, самый беспристрастный судья - даташит.

Вот и причина - у микроконтроллера из магазина, во-первых, вывод RESET настроен как обычный пин порта (RSTDISBL = 0), и во-вторых, чтобы уже наверняка, отключено программирование по SPI (SPIEN = 1). Это гарантированно делает невозможным программирование по "пяти проводкам - MISO/MOSI/SCK/RESET". А это ведь основная аудитория программирующих, гораздо меньше людей имеют параллельный программатор.

Фьюзы были изменены на заводские, и все прекрасно заработало внутрисхемно.

Резюме:

Конечно первым делом проверьте монтаж устройства. Убедитесь, что программатор исправен, и работает с другими МК. И только когда Вы целиком и полностью уверены что все сделали правильно, можно начать подозревать сам контроллер. Случается и такое. Всех благ.


Загрузки
Значок
SinaProg 1.7.5.10

Простая и удобная графическая оболочка для AVRdude.

4 комментарии в “ATtiny13A недоступен для внутрисхемного (ISP) программирования”

  1. Спасибо за статью. Полезный опыт. Сам столкнулся с несколькими Tiny13 из магазина с установленным CKSEL на внешний тактовый генератор и залоченными Lock Bits. В моём случае на Reset питание было, а 2й ноге не было - это вход внешнего такта.

    1. Приветствую. Я бы совсем не удивился, будь это микроконтроллеры от наших маленьких китайческих друзей. Вот там чего только не было: и фьюзы на внешнее тактирование (это вообще самое простое), и таймеры, произвольно сбрасывающие содержимое счетных регистров, и перемаркировка корпусов... Но эти МК приобретались в местном магазине, который закупался у официальных поставщиков (по крайней мере, на тот момент). И отбраковка там в принципе была делом невероятным. А тут новые микросхемы в блистере, и такая история. Поэтому и нужно быть готовым ко всему. 🙂

      1. Так как прошить его? как чем исправить? купил таких 50шт, а прошить не могу

        1. Если дело именно во фьюзах, то исправить ситуацию может только параллельный программатор, о чем и сказано в статье. Либо можно собрать "fusebit doctor" (это устройство, сбрасывающее фьюзы МК по умолчанию). Просто посмотрите в поиске, о чем идет речь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *