ПоддержкаПоиск по сайтуКорзина |
Программирование микроконтроллеров
Программирование микроконтроллеровТермин программирование микроконтроллеров обозначает процесс записи (программирования) информации в постоянное запоминающее устройство (ПЗУ) микроконтроллера. В общем случае, помимо программирования микроконтроллеров, в практике встречается программирование микросхем (мс.) памяти и программирование логических матриц. Как правило, программирование микроконтроллеров и микросхем памяти производится при помощи специальных устройств – программаторов. Хороший программатор позволяет не только программировать (записывать), но и считывать информацию, а в ряде случаев, производить и другие действия с мс. и информацией находящейся в ней (стирание, защита от чтения, защита от программирования и т.п.). Используя различные признаки, все многообразие мс. со встроенным ПЗУ можно систематизировать следующим образом: 1. По функциональному назначению 1.1. Микросхемы памяти; 1.2. Микроконтроллеры с внутренним ПЗУ; 1.3. Микросхемы программируемой логики (программируемые матрицы). 2. По возможности программирования 2.1. Однократно программируемые - устройства допускающие единственный цикл программирования; 2.2. Многократно программируемые (перепрограммируемые) - устройства допускающие множество циклов программирования (перепрограммирования). 3. По допустимым способам программирования 3.1. Микросхемы, программируемые в специальном устройстве – программаторе. Для осуществления необходимой операции (запись, стирание, чтение, верификация и т.п.), подобные мс. вставляются в специальную колодку программатора, обеспечивающую электрический контакт со всеми выводами микросхемы. Для реализации выбранного режима, программатор формирует в соответствии со спецификацией производителя необходимые последовательности сигналов, которые через колодку подаются на определенные выводы программируемого микроконтроллера (микросхемы). 3.2. Микросхемы, поддерживающие режим внутрисхемного программирования (“ISP mode”), и программируемые непосредственно в плате пользователя. 3.3. Микросхемы, поддерживающие режим внутреннего самопрограммирования. Подобные микросхемы допускают выполнение необходимой операции (запись, стирание, чтение, верификация и т.п.) непосредственно в устройстве пользователя, без использования какого либо программатора. При этом устройство пользователя должно быть разработано с учетом специфических требований данного режима. Программирование микроконтроллера подразумевает заполнение внутренней памяти микроконтроллера нужной информацией. В зависимости от типа программируемого микроконтроллера, внутренняя память микроконтроллера обладает своей структурой и организацией. В общем случае, внутренняя память микроконтроллера это: память данных, память программ, регистры специального назначения (fuse - биты) - содержимое которых определяет режимы работы микроконтроллера и/или его периферии. Таким образом: программирование микроконтроллера - это заполнение каждой области памяти своей специфической информацией. Каждый программируемый микроконтроллер обладает своим индивидуальным набором допустимых режимов: Некоторые программируемые микроконтроллеры не имеют отдельного режима «стирание». Для них стирание прежней информации в памяти происходит в теневом режиме, при каждом новом цикле программирования микроконтроллера; Некоторые программируемые микроконтроллеры поддерживают различные режимы ограничения доступа. Выбор режима ограничения доступа производится при программировании микроконтроллера. В зависимости от выбранного режима, либо все ПЗУ микроконтроллера, либо его определенные части могут быть:
Говоря о программируемых устройствах, можно считать общепринятой следующую систему мнемонических обозначений:
Универсальный программатор - основные понятия для начинающихПрограмматор это программно аппаратное устройство, предназначенное для записи (программирования) информации в ПЗУ микроконтроллеров, микросхем памяти, PLD. Программатор должен обеспечивать и возможность считывания информации из ПЗУ. Наряду с основными режимами записи и чтения, многие программируемые микросхемы имеют ряд дополнительных режимов: стирание, защита от чтения, защита от программирования и т.п. Принято считать, что программатор поддерживает микросхему, если он обеспечивает работу с микросхемой во всех режимах, предусмотренных разработчиком данной микросхемы. Для выполнения своих функций, программатор, как минимум должен содержать: - колодку, в которую можно вставить выбранную микросхему. Колодка должна обеспечивать электрический контакт с выводами микросхемы; - интерфейс, позволяющий осуществлять ввод/вывод записываемой и считываемой информации; - программно аппаратные драйвера, способные формировать и считывать логические уровни и сложные тактовые сигналы. Рассмотрим некоторые классификации программаторов по следующим параметрам. По типу поддерживаемых устройств
Очевидно, чем более широк спектр поддерживаемых устройств, тем более сложная программно аппаратная реализация программатора. Аппаратная часть наиболее простых программаторов, позволяющих запрограммировать микроконтроллеры одной серии, как правило, представляет собой кабель и несколько резисторов, которые подключаются к одному из портов PC. Универсальный программатор строится на базе универсальных аппаратных драйверов. Аппаратные драйвера подключаются к выводам колодки, и должны обеспечивать: В общем случае, чем более универсальны аппаратные драйвера, и чем больше их количество - тем более универсален программатор. По способу программирования
Параллельный программатор. Для того, что бы произвести необходимые действия с микросхемой, ее надо вставить в колодку программатора. Затем, в программной оболочке программатора выбрать соответствующий тип поддерживаемой микросхемы, после этого, запустить на исполнение необходимый режим (программирование, чтение, стирание, защита, программирование фьюзов, и т.п.). Колодка программатора должна обеспечивать надежный электрический контакт между выводами микросхемы и аппаратными драйверами программатора. Как правило, универсальный программатор оснащается колодкой под DIP корпус микросхемы. Наиболее надежными и удобными для пользователя являются специальные колодки (сокетки) с нулевым усилием - (ZIF socket). Для программирования микроконтроллеров (памяти, PLD) с корпусами, отличными от DIP, необходимо использовать специальные переходные адаптеры. Внутрисхемный программатор. Внутрисхемное программирование возможно только тех устройств, которые рассчитаны на данный режим («ISP mode», In-System Programming). Как правило, подобные устройства имеют встроенные схемы, которые: Для поддержания режима внутрисхемного программирования, плата пользователя должна обеспечивать: Главным преимуществом внутрисхемного программирования является возможность объединения процесса программирования и тестирования, исключив отдельную фазу программирования микросхем перед окончательной сборкой устройства. Отличительной особенностью программаторов серии ChipProg-xx является то обстоятельство, что помимо поддержания параллельного режима программирования (программирования в колодке программатора), они поддерживают и режим внутрисхемного программирования. По подключению к компьютеру Как правило, для подключения современного программатора к PC используется либо параллельный порт (Line Print Terminal, LPT), либо порт USB. По количеству одновременно программируемых микросхем Как правило, универсальный программатор может работать одновременно не более чем с одной микросхемой. Для тиражирования микросхем выпускаются программаторы копировщики. Так например, программатор ChipProg-G4 снабжен четырьмя ZIF сокетками, и позволяет в асинхронном режиме программировать до 4 микросхем одновременно. Другой возможностью существенно увеличить скорость тиражирования партий микросхем – воспользоваться функциональными возможностями некоторых программаторов. В частности, универсальные программаторы серии ChipProg-XX с USB интерфейсом предоставляют возможность мультипрограммирования. Любое количество USB программаторов может быть подключено к одному управляющему компьютеру через USB порты, либо через USB HUB. По дополнительным функциональным и сервисным возможностям Различные программаторы, подчас существенно отличаются друг от друга по своим функциональным и сервисным возможностям. .Мы предлагаем следующие модели программаторов нашего производства |