Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

102 Часть /. Общие принципы устройства и функционирования Аtте/ AVR ны тому обстоятельству, что с само . го начала предусматривали возможность в том числе и программирования прямо в устройстве. Все АVR, конечно, поддерживают и возможность загрузки программы через от­ дельный (параллельный) программатор, как наиболее универсальный способ. При отсутствии источника внешнего тактового сигнала параллельный программатор является единственно возможным способом оживить контроллер, если в нем слу­ чайно были неправильно запрограммированы конфигурационные ячейки (см. далее в этой главе). Но параллельный программатор - сложное универсальное устройст­ во, которое обычно рассчитано на многие тысячи разновидностей микросхем, стоит немалых денег, и приобретать его только для этой цели, мягко говоря, нецелесооб­ разно. Для полноты картины отметим, что, помимо всего этого, для многих моделей есть еще один способ программирования - с помощью JTAG, стандартизированного (IEEE Std 1 .1 49. 1 - 1 990) интерфейса для загрузки, отладки и тестирования микро­ контроллерных устройств, о котором мы уже упоминали. Но мы не будем здесь на нем останавливаться - в любительских конструкциях он не применяется . Поэтому мы перейдем сразу к последовательному способу программирования «прямо в схе­ ме» с помощью ISР-программаторов. ISР-программаторы Сокращение ISP расшифровывается как In-System Programmer (внутрисистемный программатор) . Программирование при этом производится через последовательный интерфейс, аналогичный по устройству интерфейсу SPI, потому названия выводов программирования такие же, как и у этого интерфейса: MISO, MOSI и SСК. В большинстве контроллеров выводы программирования совпадают с выводами собственно SPI, но не у всех, так что надо быть внимательными. Для очистки со­ вести отметим также, что последовательное программирование поддерживают не все контроллеры AVR из семейства Tiny, но сейчас из т.аких остался, кажется, только один ATtiny28L (который ущербен еще и в других отношениях), потому можно спокойно об этом ограничении забыть . ISР-программаторы не предполагают отдельного устройства для подсоединения и питания программируемой микросхемы, а заканчиваются обычным плоским кабе­ лем с двухрядным гнездовым разъемом типа IDC, который подсоединяется к спе­ циально предусмотренной штыревой части, располагаемой на плате вашего макета. Питание на программатор при этом поступает от самой схемы, поэтому в разъеме есть отдельная линия питания . Если вы не хотите загромождать готовую схему лишними элементами, то несложно соорудить отдельную платку с панелькой и таким разъемом и, при необходимости что-либо йзменить, загружать через нее исправленную программу в контроллер, извлеченный из схемы (или просто соорудить временный программатор на макет­ ной плате, - о чем рассказано далее) . Мы уже упоминали в главе 4, что много раз так делать не рекомендуется, поскольку можно повредить выводы микросхемы в DIР-корпусе .

RkJQdWJsaXNoZXIy MTExODQxMg==