Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Подробности
Последовательное программирование AVR есть по сути использование стандартного последовательного интерфейса SPI в специфических целях, причем следует учитывать, что в некоторых моделях (например, АТтеда64 и АТтеда128) контакты собственно SPI с выводами программирования не совпадают. Процесс последовательного программирования начинается с того, что на вывод SCK подается напряжение уровня "земли", далее на /RESET — короткий положительный импульс, и затем последний также оставляют в состоянии низкого уровня не менее чем на 20 мс (можно предварительно подключить эти выводы к низкому уровню, а затем включить питание контроллера). При этом микросхема переходит в режим ожидания команд программирования. Отсюда понятно, почему снижается помехоустойчивость — такое сочетание уровней вполне может возникнуть в процессе эксплуатации из-за наводок на выводы разъема программирования.
У автора этих строк в контроллере, расположенном в цехе со множеством работающих механизмов, при срабатывании мощного пускателя в нескольких метрах от устройства стиралась память программ! Правда, исправить ситуацию оказалось довольно просто — установкой дополнительных "подтягивающих" резисторов, как это было описано в разделе "Особенности практического использования MKAVR" главы 1.

Если вы работаете только с одним типом микросхем, но хотите тиражировать отлаженное изделие без лишних разъемов на плате, то вам ничего не стоит
Последовательное программирование поддерживают не все контроллеры AVR из семейства Tiny. В отличие от последовательного, параллельный способ программирования применяется для микросхемы, извлеченной из устройства, поэтому ее требуется обязательно устанавливать на панельку. Параллельные программаторы, как правило, в той или иной степени универсальны, и подходят для множества различных программируемых чипов, начиная от микросхем ПЗУ (в том числе и компьютерной BIOS) и заканчивая большинством МК.
Например, показанный на рис. 5.2 популярный AutoProg поддерживает около 4000 типов микросхем. Такие программаторы, естественно, относительно дороги (не самый дорогой в своем классе AutoProg продается почти за 9000 руб.), что и понятно — представьте, сколько труда вложено в программное обеспечение с поддержкой такого количества чипов. Экономически целесообразны они для тех, кто много работает с различными семействами микросхем, а также для изготовления серийной продукции с отлаженной программой, в которой разъемы ISP-систем будут только мешать. Для отладки универсальные программаторы неудобны — приходится часто вытаскивать и вставлять микросхему в панельку с риском повредить и то и другое, а для некоторых типов корпусов это может быть вообще исключено, если не предусмотрено соответствующего переходника.

изготовить отдельный программатор на основе ISP-системы. Правда, "оживить" чипы AVR, в которых по ошибке были неправильно запрограммированы fuse-биты, отвечающие за источник тактового сигнала (об этом см. в главе 2), можно только либо с помощью параллельного программатора, либо с помощью схемы с источником внешнего тактового сигнала.

И тот и другой способ программирования не составляет никакого секрета и подробно излагается в описании любого AVR. Так что в принципе программатор может быть изготовлен самостоятельно — как в виде аппаратного устройства, обычно подключаемого через СОМ-порт, так и в чисто программном виде, с подключением кристалла через LPT. Причем Atmel даже приводит в своих рекомендациях типовую схему простейшего ISP-программатора— см. "аппноту" AVR910, которая в PDF-формате содержит схему, а asm-файлы включают исходные коды "прошивки". Программу для ПК, впрочем, придется писать самому, на основе описания процесса программирования (или доставать где-нибудь готовую, например, извлекать из AVR Studio) — программатор лишь транслирует команды.

Конечно, изготовление такого программатора самостоятельно — дело очень "на любителя", потому что затраченные усилия отнюдь не соответствуют результату. Программатор можно приобрести в самой Atmel, хотя это и нецелесообразно по ряду причин — долго, т. к. его нужно заказывать "из-за океана", и дорого (зато поддержка AVR Studio обеспечена). Дешевенькое "наколеноч-ное" устройство такого типа можно приобрести рублей за 300 через Интернет, а цена "более фирменных" ISP-систем не выходит за пределы примерно 30 долларов. Автор этих строк много лет пользуется программатором AS-2 фирмы Argussoft, который непосредственно вставляется в СОМ-порт (на рис. 5.3 он показан без соединительного кабеля). Есть и аналогичная модификация AS-3, которая работает с USB. Программатор позволяет "проши вать" прямо в системе многие микросхемы Atmel (не только AVR), причем интерфейс управляющей программы на русском языке очень нагляден, что, в частности, дополнительно предохраняет от неверной установки fuse-битов. Поддерживается пакетная работа <(когда стирание, запись и проверка объединяются в одну операцию), а также имеется приятная функция перепрошивки самого программатора, если он вдруг начинает сбоить. На рис. 5.4 показано окно программы-загрузчика к программатору AS-2.

& [Unspecified] - AS2 In-System Piugcammei 111 I /
01 02 03 04 05 06 07 08 09 OR 0B 0C 00 0E OF
0123456789ABCDEF



     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru