Внутрисхемное программирование (ISP)
Самый популярный способ прошивать современные контроллеры. Внут-
рисхемным данный метод называется потому, что микроконтроллер в этот мо-
мент находится в схеме целевого устройства. Для нужд программатора в этом
случае выделяется несколько выводов контроллера (обычно 3…5, в зависимо-
сти от контроллера).
К этим выводам ISP подключается прошивающий шнур программатора и
происходит копирование («заливка») прошивки (рис. 4.1). После чего шлейф
отключается, и контроллер начинает работу. Посмотреть состояние выполнения
программы, регистров, флагов в большинстве устройств не удастся.
Рис. 4.1 – Внутрисхемный ISP-метод программирования
Фирменный простейший программатор AVRISP mkII фирмы AVR позво-
ляет прошивать через USB выход компьютера и стоит около 10$ (рис. 4.2).
Рис. 4.2 – Программатор AVRISP mkII
В AVR устройствах прошивка «заливается» по интерфейсу SPI и для ра-
боты программатора нужно четыре линии (отдельные ножки микроконтролле-
ра) и питание (достаточно только земли, чтобы уравнять потенциалы земель
программатора и устройства):
MISO – данные, идущие от контроллера (Master-Input/Slave-Output);
MOSI – данные, идущие в контроллер (Master-Output/Slave-Input);
SCK – тактовые импульсы интерфейса SPI;
49
RESET – сигналом на RESET программатор вводит контроллер в ре-
жим программирования;
GND – земля.
Сам же разъем внутрисхемного программирования может выглядеть по-
разному (рис. 4.3, 4.4) и обычно представляет собой всего лишь несколько
штырьков. Лишь бы на него было удобно надеть разъем.
Рис. 4.3 – Наиболее популярный стандарт из 10 пинов
Рис. 4.4 – Миниатюрный 6-контактный разъем для ISP
Для внутрисхемной прошивки контроллеров AVR существует не один де-
сяток разнообразных программаторов. Отличаются они в первую очередь по
скорости работы и типу подключения к компьютеру (COM/LPT/USB). И цене.
Самые простые дешевые программаторы могут работать только под Windows
XP, возможна зависимость от частоты процессора.
Внутрисхемное программирование, несмотря на все его удобства, имеет
ряд ограничений.
Микроконтроллер должен быть запущен, иначе он не сможет ответить на
сигнал программатора. Поэтому если неправильно выставить биты конфигура-
ции (FUSE), например, переключить на внешний кварцевый резонатор, а сам
кварц не поставить, то контроллер не сможет запуститься и прошить его внут-
рисхемно будет уже нельзя. По крайней мере до тех пор, пока МК не будет за-
пущен. Также в битах конфигурации можно отключить режим внутрисхемной
прошивки или перенастроить вывод RESET в обычный порт ввода-вывода (это
справедливо для малых МК, у которых RESET совмещен с портом). Такое дей-
ство тоже отключит программирование по ISP.
50
Do'stlaringiz bilan baham: |