Программатор громова для atmega8a-pu

Простейший программатор для ATmega8

В современных электронных схемах все чаще и чаще применяются микроконтроллеры. Да что там говорить, если сегодня не найти даже обыкновенную елочную гирлянду без микроконтроллера внутри – он задает различные программы иллюминации.

Я впервые столкнулся с микроконтроллерами, когда собирал свой первый импульсный металлоискатель Клон. Вот тогда-то и выяснилось, что контроллер без прошивки – это просто кусок пластмассы с ножками.

А чтобы залить нужную прошивку в АТМЕГу, никак не обойтись без программатора. Далее мы рассмотрим две самые простые и проверенные временем схемы программаторов.

Схема первая

С помощью этого программатора можно прошивать практически любой AVR-контроллер от ATMEL, надо только свериться с распиновкой микросхемы.

СОМ-разъем на схеме – это “мама”.

На всякий случай привожу разводку печатной платы для атмеги8 (скачать), хотя такую примитивную схему проще нарисовать от руки. Плату перед печатью нужно отзеркалить.

Файл печатной платы открывать с помощью популярной программы Sprint Layout (если она у вас еще не установлена, то качайте 5-ую версию или лучше сразу 6-ую).

Как понятно из схемы, для сборки программатора потребуется ничтожно малое количество деталек:

Вместо КТ315 я воткнул SMD-транзистор BFR93A, которые у меня остались после сборки микромощных радиомикрофонов.

А вот весь программатор в сборе:

Питание (+5В) я решил брать с USB-порта.

Если у вас новый микроконтроллер (и до этого никто не пытался его прошивать), то кварц с сопутствующими конденсаторами можно не ставить. Работа без кварцевого резонатора возможна благодаря тому, что камень с завода идет с битом на встроенный генератор и схема, соответственно, тактуется от него.

Если же ваша микросхема б/у-шная, то без внешнего кварца она может и не запуститься. Тогда лучше ставьте кварц на 4 МГц, а конденсаторы лучше на 33 пФ.

Как видите, я кварц с конденсаторами не ставил, но на всякий случай предусмотрел под них места на плате.

Заливать прошивку лучше всего с помощью программы PonyProg (скачать).

Прошивка с помощью PonyProg

Заходим в меню Setup -> Calibration -> Yes. Должно появиться окошко “Calibration OK”.

Далее Setup -> Interface Setup. Выбираем “SI Prog API” и нужный порт, внизу нажимаем “Probe”, должно появиться окно “Test OK”. Далее выбираем микроконтроллер “Device -> AVR micro ATmega8”.

Теперь втыкаем микроконтроллер в панельку программатора, и подаем питание 5 вольт (можно, например, от отдельного источника питания или порта ЮСБ). Затем жмем Command -> Read All.

После чтения появляется окно “Read successful”. Если все ок, то выбираем файл с нужной прошивкой для заливки: File -> Open Device File. Жмем “Открыть”.

Теперь жмем Command -> Security and Configuration Bits и выставляем фьюзы, какие нужно.

Тщательно все проверяем и жмем “OK”. Далее нажимаем Command -> Write All -> Yes. Идет прошивка и проверка. По окончании проверки появляется окно “Write Successful”.

Вот и все, МК прошит и готов к использованию!

Имейте в виду, что при прошивке с помощью других программ (не PonyProg) биты могут быть инверсными! Тогда их надо выставлять с точностью до наоборот. Определить это можно, считав фьюзы и посмотрев на галку “SPIEN”.

Схема вторая

Еще одна версия программатора, с помощью которого можно залить прошивку в микроконтроллер АТМЕГа (так называемый программатор Геннадия Громова). Схема состоит всего из 10 детатей:Диоды можно взять любые импульсные (например, наши КД510, КД522). Разъем – “мама”. Питание на МК (+5В) нужно подавать отдельно, например, от того же компьютера с выхода USB.

Все это можно собрать навесным монтажом прямо на разъеме, но если вы крутой паяльник и знаете, что такое smd-монтаж, то можете сделать красиво:

Программировать только программой Uniprof. Тут хорошее описание программы: http://www.getchip.net/posts/025-uniprof-universalnyjj-programmator-dlya-avr/

Алгоритм прошивки с помощью программатора Громова

Программатор с установленной микросхемой подключаем к СОМ-порту компьютера, затем запускаем Uniprof, затем подаем питание на микроконтроллер. И первым делом проверяем, читаются ли фьюз-биты.

Если все ок, выбираем файл с нужной прошивкой и жмем запись.

Будьте предельно внимательны и осторожны, потому что если глюканет при записи фьюзов, то МК либо на выброс, либо паять схему доктора (а она сложная). Если поменяете бит SPIEN на противоположный – результат будет тот же (к доктору).

Источник: http://electro-shema.ru/handmade/programmator-atmega8.html

Делаем COM программатор для AVR микроконтроллеров

Еще одним несложным, в плане изготовления, является COM программатор.

При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования.

Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В). Это и делает
схема COM программатора для AVR микроконтроллеров:

Данная схема программатора достаточно распространена и известна как программатор Громова. Название пошло от автора программы Algorithm Builder Геннадия Громова, который и предложил такую схему.

Чтобы собрать программатор Громова нам нужно следующее:

Диоды КД522, КД510, 1N4148 или им подобные. Резисторы можно использовать любые, какие найдете. В качестве шлейфа можно использовать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом.

Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.

Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:

Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства я рекомендую использовать разъемы BLS «мамы» на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компа — именно их я и взял) и штырьки PLS «папы» на плате.

Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем.

Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.

Собрать COM программатор не составит труда:

Я сознательно не даю печатной платы под этот программатор, так как схема проста и возня с разводкой и травлением платы просто себя не оправдывает.

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

Общие рекомендации:

— Так как режим Bitbang нестандартный для COM порта компьютера, то возможны сбои в работе (хотя у меня такого не было). Особенно это касается ноутбуков. Как вариант решения этой проблемы можно рекомендовать «поиграться» настройками COM порта (скорость, биты данных, варианты управления потоком, величины буфера …).

— Отдельный разъем для «земли» желательно подключить первым, чтобы уравнять потенциалы «земли» программируемого устройства и компьютера.

Для тех, кто не знает, если у Вас компьютер включен в обычную розетку, без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В.

Заключение:

— COM программатор Громова простой и надежный. Я не перестал пользоваться им даже собрав USB программатор (если какой либо микроконтроллер перестает программироваться USB программатором я обязательно перепроверю его на программаторе Громова).

— Так как программатор Громова собран на пассивных элементах он не требует для себя питания.

Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.

— Для пользователей Algorithm Builder есть приятный бонус! Этот программатор можно использовать для внутрисхемной отладки кристалла (программный JTAG).

Источник: http://www.GetChip.net/posts/delaem-com-programmator-dlya-avr-mikrokontrollerov/comment-page-3/

COM программатор Громова. Первая программа! — Сообщество «Электронные Поделки» на DRIVE2

Привет всем. Сильно не пинайте, делал впервые! Хотя пинайте. На ошибках люди учатся. Я понимаю что тема не нова, не знал с кем поделиться своими успехами. Хотелось получить советы от ГУРУ, решился написать в это сообщество.

Решился таки я осваивать помаленьку тему про микроконтроллеры семейства Atmel. Купил по паре моделей Atmega8a, Atmega16a, Attyni13a в DIP корпусе. Встал вопрос как прошить? Выбора особого не было, LPT разъема нет в ПК, остается USB и COM.

Конечно же USB удобней всего, прошивать с ноута и все такое… Понравился программатор USBasp, но для его работы, надо Мегу8 прошить, опять же нужен программатор. Решил пока таки USBasp отложить на некоторое время, в собрать простой как LPT программатор, всем известный COM программатор Громова.

Подробная инструкция по его сборке находится ВОТ ТУТ! Собственно собирается он легко, но аккуратность не помешает.

После того как программатор был собран, решил его опробовать. Взял Attiny13a, нашел пример простой работы микроконтроллера. Написал программу в CodeVisionAVR, проверил работу в PROTEUSе, все работает. Осталось залить прошивку в микроконтроллер (МК).

МК подключал к программатору через макетную плату, очень удобно и быстро, конечно в дальнейшем сделаю как полагается на плате, под различные МК. Подключил прогромматор как требовалось в DataSheet.

Питание 5v подавал на МК от USB (открезал старый провод от мыши!)

Пробовал прошивать тем же CodeVisionAVR, но чет не увидел он мой МК, мб конечно я настроил не правильно или еще что-то. Потом скачал PonyProg, тоже не увидел МК. Начал грешить что руки из попы, собрал не правильно программатор, перепроверил, нет все верно.

Скачал UniProf и О ЧУДО! МК определился на COM 1, как Attiny13! УРА! Все же теперь думаю чет не так в CodeVisionAVR настроил, потом разберусь как нить. Вообщем считал МК, пустой, все ячейки “—–“, открыл прошивку hex, появились записи. Нажал прошить, повалились ошибки.

Почитал инструкцию еще раз, оказывается надо было считать Fuse Bit и записать как они были ничего не меняя. Снова попытка прошить, и УРА! Прошился! После того как МК был успешно прошит, собрал схему со светодиодами и кнопкой для проверки, Чудесным образом все заработало, светодиоды по нажатию кнопки переключались по порядку, 1, 2, 3, и с начала 1, 2, 3.

.

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

Вот простой код программы:#include<\p>

#include<\p>

void main(void){char x = 0;PORTB=0x08;

DDRB=0x07;

while (1){if(PINB.3==0){x++;delay_ms(500);}switch (x){case 1:PORTB.0=1;PORTB.1=0;PORTB.2=0;break;case 2:PORTB.0=0;PORTB.1=1;PORTB.2=0;break;case 3:PORTB.0=0;PORTB.1=0;PORTB.2=1;break;default: x = 1;} // switch} // while

} // main

Источник: https://www.drive2.ru/c/1197125/

Программатор Громова cделай сам (DIY)

Опубликовано 15.01.2013 6:50:00

При желании работать с контроллерами, нам, как ни крути, придется обзавестись программатором. В данной статье рассмотрен простейший ISP программатор для микроконтроллеров AVR, работающий с удобной программкой для прошивки контроллеров UniProf.

Представляем вашему вниманию вариант нашей разводки программатора под смд компоненты.

На сайте разработчика можно увидеть принципиальную схему программатора.

Для изготовления программатора нам потребуется всего лишь:

три диода 1N4148

семь резисторов 1 кОм (1206)

один резистор на 1 кОм (1206)

три резистора 0 кОм (1206)

• разъем BD-9 (мама)

• светодиод 3мм

• гребенка 2.54 

• один ISP разъем (10 пин)

Распайку платы настоятельно рекомендую начинать с смд комплектующих.

Хочется отметить, что плата разведена таким образом, что большинство дорожек заходит под смд компоненты, что упрощает пайку и сводит к минимуму вероятность ляпнуть “соплю”.

Далее монтируем оставшиеся детали. 

При отмывке флюса стерлись черные плоски на диодах. Смотрим на принципиальную схему и монтируем в верном направлении.

Подключение программатора к микроконтроллеру

На программаторе установлен 10 пиновый разъем ISP

Назначение контактов ISP разъема:

1 – MOSI (выход данных для последовательного программирования) 2 – VCC +5V (Выход +5В, для питания программируемой платы от шины USB током до *200мА !!!) 3 – NC (Не подключен) 4 – GROUND (Общий или минус питания) 5 – RESET (Подключается к выводу RESET микроконтроллера) 6 – GROUND (Общий или минус питания) 7 – SCK (Выход тактирования данных) 8 – GROUND (Общий или минус питания)  9 – MISO (Вход данных для последовательного программирования)

10 – GROUND (Общий или минус питания)

Как уже было сказано ранее, программатор Громова поддерживает микроконтроллеры AVR с режимом последовательного программирования ISP ( In System Programming ), это контроллеры у которых есть порт SPI ( Serial Peripheral Interface )

Открываем даташит на интересующий нас контроллер, для примера возьму любимый камушек ATmega8. Ищем раздел Pin configurations, в нем смотрим какими ногами представлен порт SPI

Как мы видим, этими ногами являются выводы контроллера под номерами 1, 7, 8, 17, 18, 19, 20, 22, их и нужно подключить к соответствующим выводам программатора.

В случае если в контроллер уже была залита программа и в ней были выставлены фьюз биты на работу от внешнего кварца, то к ножкам XTAIL1 и XTAIL2 следует следует припаять кварц нужного номинала, и пустить через неполярные конденсаторы емкостью 18-22 пикофарада на землю.

Если программатор не выдает линию питания +5V, а на наш программатор её не выдает т.к. COM-порт её не имеет, то питать контроллер надо от внешнего источника. На плате программатора выведены 2 штырька для подачи питания через них. Для таких целей проще раз и навсегда обжать себе вот такой кабелёк:

На черных коннекторах остаются маленькие участки с открытым металлом, во избежание КЗ настоятельно рекомендую изолировать каждый коннектор термоусадочной трубкой.

Следует отметить что программатор поддерживает еще и консольную программку AVRdude.

Пример загрузки прошивки в контроллер можно посмотреть на примере заливки Arduino Bootloader'а здесь.

Хорошие статьи на данную тематику можно найти на сайтах http://easyelectronics.ru и http://www.getchip.net. 

Полный разбор программы UniProf можно так же найти на сайте http://www.getchip.net

В архиве лежит шаблон под ЛУТ и список деталей в формате Word

Открываем изображение => Печать => Во всю страницу

Для облегчения распайки smd компонентов с обратной стороны платы, где нет маркировки, приведу картинку. 

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.

Источник: http://zelectro.cc/DIY_Gromov_Programmer

Делаем простой USB программатор USBTinyISP

Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого Arduino долго пытался «вдохнуть» жизнь в «железяку». очень хорошо описаны мучения.

Конечно, самый простой вариант “” — это здорово! Но, в моем окружении (как я понимаю, и у многих) дома, на работе в компах и ноутбуках напрочь отсутствует LPT-порт! Да и COM-порт становиться достаточно редкой «экзотикой». Что же делать? Естественно, на сцене появляется вездесущий USB.

Да, готовый программатор для AVR легко можно купить.

Но цена на них неадекватно завышена (у нас в г. Минске, на радиорынке что-то около 30..50 у.е.). Как говорил Киса Воробьянинов — «ОДНАКО!!!». Хорошо, что есть братья-китайцы, с . Только придется прилично подождать.

Да и судя по последним тенденциям, ОГРОМНЫЙ поток посылок из Китая ОЧЕНЬ заинтересовал государственные органы… И боюсь, что в скором времени превратится в жалкий ручеек 🙁

Да и к тому же, как говорит мой хороший друг: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».

Спешу обрадовать, что затраты на изготовление — мизерные. Самые дорогие компоненты — это Attiny2313 (примерно 2$) и разъем USB.

Итак, приступим. Нам нужен программатор который максимально прост и относительно дешев, подключается по USB, и при этом, поддерживается всеми современными ОС (LINUX, WINDOWS, MAC OSX) через программу .

Изначально я рассматривал для повторения самый . Дальнейшие поиски меня привели к — !!! Стремясь к компактности, я выбрал для «клонирования» версию 1 (без буферной микросхемы). Ниже схема программатора.

Схема осталось оригинальной, за исключением перемычки для программирования (мне эта «фишка» абсолютно не нужна). А вот печатку я переделал под свои нужды.

(Номиналы деталей можно увидеть в SprintLayout при наведении курсора на нужный элемент)

Нам понадобится:— кусок текстолита 63х33 мм — МК Attiny2312 с колодкой под нее — Разъем USB (тип B) — Разъем 10х2 (как он правильно называется ???? Не знаю..) — 4 резисторa 1.5 кОм (smd, маркировка 152) — 1 резистор 1.5кОм (выводной 0.

125Вт) — 2 резисторa 33 Ом (smd, маркировка 330) — 1 резистор 10к (smd, маркировка 103) — 2 стабилитрона на 3.6В — 2 конденсатора 22 pF (smd) — 1 конденсатор 0.1 мF (smd) — 2 светодиода (зеленый и красный) — кварц на 12Mhz — электролитический конденсатор 100x16V

— самовосстанавл.

предохранитель (я выпаял из старой мат. платы). Если нету, можно поставить перемычку (на так и сделали).

— два штырька для перемычки Естественно, ЛУТ.После ЛУТаПосле травления:Мой любимый сплав РозеПаяем SMD элементыТеперь перемычки и оставшиеся элементыГотово!

Небольшое лирическое отступление. Давным давно, в 2000-х годах у меня один приятель жаловался со сложностями в поиске НОРМАЛЬНОЙ работы (он работал водителем). Дело в том, что у него был на тот момент очень маленький стаж вождения :). Чувствуете подвох? На нормальную работу без стажа не берут. Стажа нет, потому что на работу не берут… И так замкнутый круг.

Так и в нашем случае, для изготовления программатора нужно запрограммировать контроллер… т.е. нужен программатор. Слава богу, это нужно проделать всего один раз. Выходов несколько: — берем пиво и навещаем приятеля с программатором 🙂 — ищем компьютер с LPT-портом и паяем «5-проводков»

— нету LPT, но есть COM? Прекрасно, делаем !

— есть люди, предлагающие свои услуги по прошивке МК за небольшую «денюжку» — другие варианты

У меня ситуация более, чем шикарная — у меня уже был программатор . Так, что вся процедура заняла не более минуты. «Прошиваем» МК с помощью AVRDUDE. (Все необходимое для этого сложено в архив и находиться в каталоге Firmware).

avrdude.exe -p t2313 -c avr910 -P COM12 -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m
Кому менее повезло и пришлось прибегнуть к «5 проводкам» (кстати, официально он называется DAPA):
avrdude.exe -p t2313 -c dapa -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m вот, вариант когда программатор USBTinyISP используется для прошивки себе подобного, а-ля «овечка Долли»:
avrdude.exe -p t2313 -c usbtiny -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Почему вариант с AVRDUDE более предпочтителен для начинающих? При выполнении вышеприведенных команд сразу же прошиваются и нужные фьюзы, т.е. ухера.. «убить» микроконтроллер достаточно сложно.

Итак, устанавливаем на плату свежепрошитый микроконтроллер. Еще раз советую проверить изготовленную плату на качество пайки, отсутствие «коротышей» и тому подобных неприятностей.

И только если ВЫ на 100% уверены, подключаем наш программатор к разьему USB. После сообщения об обнаружении нового оборудования (речь идет о Windows), ставим как обычно драйвера.

Они сложены в архиве в папке usbtinyisp w32 driver v1.12.

Проверяем, что все хорошо, заглянув в список оборудования:Если Вам удалось увидеть такую же картинку, то поздравляю! Все готово. У Вас теперь есть USB программатор для AVR!!! Не знаю как Вы, но мне ОЧЕНЬ захотелось сразу же опробовать изделие в действии. А давайте прошьем бутлодер в Ардуино.Запускаем Arduino IDE, [Сервис]->[Программатор]->[USBTinyISP]Жмем [Сервис]->[Записать загрузчик] Буквально проходит 7 секунд, мерцание красного светодиода на программаторе… и ОПА!!! Все готово. Получите, распишитесь :)А теперь небольшой БОНУС, расширяющий область применения нашего программатора. А именно, маленький адаптер для DIP корпусов наиболее распространеных AVR контроллеров. Мне приходилось иметь дело с ATTiny13/45 — 8 ножек, Attiny 2313 (тут смайлик)- 20 ножек, Atmega 8/48/168 — 28 ножек. За основу берем схему соединения колодок (схема откуда-то из инета):
Для простоты я не использовал сигналы тактирования XT1. (Для всяких неприятных случаев, у меня есть собранный :)) И еще, я не ставил на адаптер колодку под Atmega16 (DIP-40). Пока у меня не возникало необходимости в программировании таких контроллеров.
Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта :)Приклеиваем (для удобства) соответствующие надписи:И вот, все в сборе, программатор и адаптер! Пользуйтесь на здоровье.

Весь материал (печатку, прошивку, драйвера и фото) для повторения можно забрать одним архивом .

Источник: http://robocraft.ru/blog/2948.html

USBASP: USB AVR программатор для микроконтроллеров ATmega, ATtiny

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»

Программатор USBASP — устройство, распиновка, подключение, прошивка

Программатор USBASP

Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи: — программатор — соответствующее программное обеспечение для записи данных в МК

Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем.

Имеется много разных схемотехнических решений этого программатора, программатор можно собрать самому или купить (стоимость — 2-3 доллара). При самостоятельной сборке следует учитывать, что собранный программатор необходимо будет прошить сторонним программатором.

Мы рассмотрим наиболее «навороченную» версию программатора:

Характеристики программатора: — работает с различными операционными системами — Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера  — архив в конце статьи) — скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек — имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой) — поддерживает два напряжения питания программатора — 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах)

— питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА)

Назначение джамперов:
разъем JP1 — предназначен для перепрошивки микроконтроллера программатора (для перепрошивки — необходимо замкнуть контакты)
разъем JP2 — напряжение питания программатора — 5 Вольт или 3,3 Вольта (по умолчанию — 5 Вольт, как на фотографии).

Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC).

разъем JP3 — определяет частоту тактирования данных SCK: разомкнутый — высокая частота (375 кГц), замкнутый — низкая частота (8 кГц)
Подробнее о разъеме JP3
Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер.

Если у микроконтроллера установлена частота тактирования более 1,5 мГц — джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц — необходимо закоротить выводы джампера — снизить скорость программирования, иначе запрограммировать микроконтроллер не получится.

К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.

Если вы будете пользоваться программой AVRDUDE_PROG, выложенной на сайте, то о перемычке можно забыть

Программатор поддерживается следующим программным обеспечением: — AVRdude — AVRdude_Prog — Bascom-AVR — Khazama AVR Prog

— eXtreme Burner AVR

Работать с таким программатором очень просто — соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера — программатор готов к работе.
Распиновка 10-контактного кабеля программатора USBASP:

1 — MOSI — выход данных для последовательного программирования 2 — VCC — выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА — чтобы не сжечь порт USB) 3 — NC — не используется 4 — GND — общий провод (минус питания) 5 — RST — подключается к выводу RESET микроконтроллера 6 — GND 7 — SCK — выход тактирования данных 8 — GND 9 — MISO — вход данных для последовательного программирования

10 — GND

Установка драйверов для программатора USBASP

Установка драйвера для программатора USBASB очень проста: — подсоедините программатор к USB порту компьютера, при этом в диспетчере устройств появится новое устройство «USBasp» с желтым треугольником и восклицательным знаком внутри, что означает — не установлены драйвера — скачайте и разархивируйте файл «USBasp-win-driver-x86-x64-ia64-v3.0.7» — запустите файл «InstallDriver» — будут автоматически установлены драйвера для программатора — проверьте диспетчер устройств — желтый треугольник должен исчезнуть (если нет, щелкните правой кнопкой по устройству «USBasp» и выберите пункт «Обновить»

— программатор готов к работе

FUSE-биты при программировании USBASP AVR:

Архив «usbasp.2011-05-28» содержит папки: = BIN: — win-driver — драйвера для программатора — firmware — прошивка для микроконтроллеров Mega8, Mega88, Mega48

= circuit — схема простого программатора в PDF и Cadsoft Eagle

При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой.

По умолчанию CKOPT сброшен и стабильная  работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц).

Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).

Архив «USBasp-win-driver-x86-x64-ia64-v3.0.7» предназначен для установки драйверов, как указано в статье

  usbasp.2011-05-28 (518,9 KiB, 9 370 hits)

  Скачать “USBasp-win-driver-x86-x64-ia64-v3.0.7” (10,9 MiB, 18 588 hits)

Скачать с ЯндексДиска

Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине сайта «МирМК-SHOP»
Перейти на страницу магазина

Программирование микроконтроллеров AVR фирмы Atmel

1. Микроконтроллеры — первый шаг
2. Системы счисления: десятичная, двоичная и шестнадцатиричная
3.

Логические операции, логические выражения, логические элементы
4. Битовые операции
5. Прямой, обратный и дополнительный коды двоичного числа
6.

Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny

Источник: https://microkontroller.ru/programmirovanie-mikrokontrollerov-avr/usbasp-usb-avr-programmator/

USBasp программатор микроконтроллеров AVR на Atmega8 своими руками

В данной статье мы опишем „шаг за шагом” этапы изготовления USBasp программатора для микроконтроллеров AVR. В отдельных статьях приведем описание установки драйверов для операционных систем Windows XP и Windows 7 (x64/x86). В конце поста размещена ссылка с необходимой документацией для изготовления программатора USBasp своими руками.

Программатор USBasp, благодаря своей простоте в изготовлении и использовании недорогих и широкодоступных элементов, стал очень популярным среди радиолюбителей. Его параметры работы не уступают профессиональным и дорогим программаторам микроконтроллеров AVR.

Основные характеристики программатора USBasp

  • Работает с несколькими операционными системами – Linux, Mac OS X и Windows – включая Windows 8!
  • Не требует внешнего питания.
  • Умеет программировать со скоростью вплоть до 5kB/s
  • Есть вариант (Switch 2) снижения скорость программирования – для процессоров с кварцем меньше 1,5 Мгц
  • Обеспечивает напряжение для программирования (Switch 1) 5 вольт
  • Указание работы программатора с помощью светодиода

Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:

  1. Выбор схемы/рисунка печатной платы
  2. Перенос рисунка печатной платы на фольгированный стеклотекстолит
  3. Травление печатной платы в растворе хлорного железа
  4. Сверление отверстий
  5. Монтаж элементов (пайка)
  6. Программирование Atmaga8 программатора
  7. Подключение программатора к компьютеру
  8. Установка драйверов – Windows XP, Windows 7
  9. Выбор программы с поддержкой USBasp

Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl. Прошивка микроконтроллера программатора также является его авторством.

Оригинальная схема программатора:

В данном случае за основу была выбрана оригинальная схема. Поскольку использование перемычек в оригинальной схеме не совсем удобно, было принято решение использовать DIP переключатели. Так же были изменены некоторые значения резисторов.
Более того, в оригинальной схеме линии TxD и RxD выведены на разъем ISP, хотя это не нужно (точнее не используются на практике).

Ниже приведена схема с внесенными изменениями:

Строительство USBasp программатора

Существует много версий печатной платы данного программатора, некоторые можно найти на официальном сайте USBasp. Однако, была сделана своя на основе выше представленной схемы.

К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.

Ниже результат печатной платы:

Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.

Список элементов используемых в USBasp программаторе:

  • R1: 10к
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2к2
  • C1, C2: 22п
  • C3: 10мк
  • C4: 100н
  • LED1: Красный светодиод на 20мА
  • LED2: Зеленый светодиод на 20мА
  • D2, D3: стабилитроны на 3,6В
  • X1: Разъем USB, тип B
  • SV1: Гнездо под разъем IDC-10
  • Q1: Кварц 12МГц, корпус HC49-S
  • SW1: Dip переключатель трехпозиционный
  • IC1: Atmega8  (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)

Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (лазерно-утюжной технологии). Как это делать описывать не будем, поскольку данной информации в сети много.

Вкратце скажем, что сначала рисунок в масштабе 1:1 печатается на глянцевой бумаге, затем он накладывается на очищенную и обезжиренную медную сторону стеклотекстолита и фиксируется с помощью бумажного скотча. Далее бумажная сторона тщательно разглаживается утюгом на 3-ке. После все это дело вымачивается в воде и аккуратно очищается от бумаги.

Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:

После завершения процесса травления необходимо удалить тонер ацетоном.

Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.

Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.

Первый запуск USBasp программатора

Теперь, когда все детали спаяны, остается только «прошить» микроконтроллер Atmegę8 самого программатора. Для этого нужен отдельный программатор, это может быть, например, STK 200 (LPT порт), STK500 и т. д. LPT программатор подключается к USBasp через разъем IDC-10.

Обратите внимание, что распределение пинов в разъеме оригинального программатора (USBasp) находится справа, в то время как в версии, описываемой в этой статье – слева:

Распределение, показанное на рисунке справа, соответствует тем, которые применяет компания Atmel в своих оригинальных программаторах. Такое распределение уменьшает риск возникновения помех во время программирования в случае применения длинных проводов от программатора к контроллеру, так как каждая сигнальная линия экранирована массой, кроме MOSI.

На время программирования включите режим SELF путем переключения DIP переключателя № 3 в положение ON. Благодаря этому появляется возможность запрограммировать Atmega8. После завершения программирования, положение переключателя (3) должна быть переведено в состоянии OFF.

Последнюю версию прошивки можно скачать с официального сайта. Рекомендуем версию для Atmega8, которая находится в архиве: usbasp.2011-05-28.tar.gz.

Обратите внимание, чтобы перед программированием Atmega8 необходимо выставить фьюзы которые имеют следующие значения:

  • # для Atmega8: HFUSE=0xC9 LFUSE=0xEF
  • # для Atmega48: HFUSE=0xDD LFUSE=0xFF

В случае успешного программирования, подключаем программатор к USB разъему компьютера, при этом должен загореться красный светодиод, а компьютер должен оповестить об обнаружении нового оборудования.

Установка драйверов USBasp программатора

Способ установки драйверов программатора описан в отдельных статьях, там же имеются и сами драйвера. Ниже приведены прямые ссылки на эти статьи:

  • Установка драйверов для программатора USBasp под Windows XP
  • Установка драйверов для программатора USBasp Windows 7 x64/x86

Программы для работы программатора USBasp

Самой популярной программой, поддерживающей программатор USBasp, это консольная программа AVRdude. Так же существует множество производных программ, использование которых намного удобнее. Они представлены в статье Сравнение программ для поддержки программатора USBasp.

Скачать прошивку, рисунок печатной платы и драйвер USBasp программатора (скачено: 1 256)

Оригинал статьи

Источник: http://fornk.ru/2619-usbasp-programmator-mikrokontrollerov-avr-na-atmega8-svoimi-rukami/

Программатор Громова. Микроконтроллеры для начинающих :

Программатор Громова – это устройство, которое предназначено для считывания информации. На сегодняшний день с его помощью можно записывать данные с различных запоминающих накопителей. Работать программаторы способны на различных платформах. Тип подключения устройства зависит от используемой платы.

К основным элементам программатора можно отнести адаптер и модулятор. По характеристикам они могут довольно сильно отличаться. Тестировать микроконтроллеры при помощи программатора есть возможность. Блоки-редакторы для устройств подходят различные. Их основной задачей является корректировка данных.

Схема простого программатора

Схема программатора включает в себя адаптер саморегулируемого типа. Модулятор чаще всего используется многоканальный. За счет этого форматы устройство способно поддерживать разнообразные. Микросхемы использоваться могут различных конфигураций.

Их пропускная способность должна составлять минимум 5 мк. Дополнительно следует учитывать, что в устройстве имеется преобразователь. Ширина пропускания в данном случае зависит от мощности резисторов. Конденсаторов в системе чаще всего используется два.

Устанавливаются они, как правило, у модулятора, и играют роль контактного входа.

Как сделать программатор?

Чтобы сделать программатор Громова своими руками, потребуется использовать адаптер, а также модулятор. Для быстрого считывания информации резисторы необходимо подбирать мощные.

Нагрузку они должны выдерживать на уровне 4 А. Показатель номинального напряжения в цепи обязан составлять 20 В. Чтобы уменьшить частоту помех, некоторые устанавливают аналоговые конденсаторы.

Емкость их зависит от типа используемого модулятора.

Если рассматривать саморегулирующуюся модель, то вышеуказанный параметр обязан находиться на отметке 4 Ом. Для того чтобы запись данных была стабильной, преобразователи подбираются с операционным усилителем. Все это также позволит повысить частоту устройства. В последнюю очередь важно припаять порты для подсоединения программатора к персональному компьютеру.

Модель со встроенным редактором

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

Однако встречаются и исключения. Модуляторы используются обычно многоканального типа. В свою очередь, адаптер подходит только средней мощности. Пропускная способность его обязана составлять 3 мк. Все это позволит параметр порогового напряжения держать на уровне 15 А.

Устройства с аналоговыми адаптерами

Простой программатор с аналоговым адаптером позволяет успешно справляться с низкочастотными колебаниями. Использоваться для тестирования микроконтроллеров он может. Также его часто применяют для чтения данных на основе двоичного кода.

Модуляторы в таких устройствах используются только инвертирующие. Пропускная способность их в среднем равняется 5 мк. Дополнительно следует отметить, что напряжение они способны выдерживать примерно 4 В. К недостаткам таких устройств следует отнести малый параметр напряжения.

Связано это с резким повышением частоты прибора на входе.

Функции современных программаторов

Современные программаторы отличаются высокой мощностью. Обрабатывать они способны двоичный код довольно просто. Также следует отметить, что платформы для них используются разнообразные. Некоторые модели специально созданы для записи данных.

В данном случае функция обработки информации у них находится на втором месте. Если говорить про тестирование, то все программаторы могут использоваться для этого.

Модели с операционными усилителями способны работать с программами, у которых предусмотрено расширение DDS.

Микроконтроллеры с плоским диффузом

Микроконтроллеры для начинающих данного типа отличаются повышенной полосой пропускания. При этом вводная частота в устройстве может достигать 33 Гц. Используются такие модели для чтения данных с различных носителей. Подсоединение микроконтроллера осуществляется через линейные порты. Еще одна особенность таких устройств заключается в использовании низкочастотных адаптеров.

Все это позволяет быстро считывать данные. К недостаткам можно отнести большую амплитуду колебаний. В связи с этим для некоторых платформ данные устройства не подходят. Дополнительно следует упомянуть, что резисторы в них используются только кассетного типа. Параметр отрицательного сопротивления в данном случае зависит от емкости конденсаторов.

Модели с двоичным кодом

Программатор Громова данного типа способен похвастаться высоким параметром порогового напряжения. Если рассматривать модели с аналоговыми адаптерами, то этот показатель доходит до 15 В. В свою очередь, саморегулируемые элементы устанавливаются довольно редко. Для повышения показателя чувствительности некоторые применяют многоканальные модуляторы.

Для пятиэлектродных усилителей они подходят идеально. Чтобы отрицательное сопротивление в цепи поддерживать на отметке в 4 Ом, некоторые специалисты используют в устройствах модельные резисторы. В свою очередь конденсаторы применяются, исходя из параметра номинальной частоты. Подключение программатора осуществляется через USB-порт.

Цифро-аналоговые микроконтроллеры

Данные микроконтроллеры для начинающих на сегодняшний день активно используются для чтения программ с расширением DDS. Порты в этом случае устанавливаются линейного типа. Модуляторы по параметрам довольно сильно отличаются.

Если подбирать устройства на 5 Гц, то микросхема устанавливается многоканального типа. Для соединения портов применяется коаксиальный кабель, который отличается хорошей пропускной способностью.

Параметр порогового напряжения в таких устройствах достигает 30 В.

Адаптеры чаще всего используются полупроводниковые. Для усиления инвертации они подходят хорошо. Однако следует учитывать, что с низкочастотными колебаниями они справляются довольно плохо.

Таким образом, чтение информации на некоторых платформах может быть затруднительным. Отрицательное сопротивление в таких устройствах обычно колеблете в районе 4 Ом. Нагрузку микроконтроллер обязан выдерживать в таком случае на уровне 6 А.

Операционные усилители для программаторов данного типа используются довольно редко.

Двухпроводные программаторы

Программатор Громова данного типа работает на базе импульсного адаптера. Модуляторы в устройствах используются различные. Пропускная способность их должна составлять минимум 4 мк.

При этом параметр отрицательного сопротивления в среднем находится на уровне 5 Ом. Резисторы чаще всего используются широкополосные. За счет этого номинальное напряжение устройства способны выдерживать 30 В.

Для тестирования микроконтроллеров такие приборы подходят плохо. Однако для записи они используются довольно часто.

Также следует отметить, что они хорошо подходят для большинства платформ. Электромагнитные колебания, как правило, в системе возникаю малые. Выходные триоды на программатор Громова устанавливаются редко. Однако для стабильной работы часто специалистами применяются пятиэлектродные усилители. За счет них удается повысить параметр проводимости сигнала до нужного уровня.

Использование векторных резисторов

Векторные резисторы на программатор Громова устанавливаются довольно часто. Параметр пропускной способности у них колеблется в районе 5 мк. За счет этого считывание данных с жестких дисков происходит довольно быстро. Для тестирования микроконтроллеров программаторы на вышеуказанных резисторах применяться могут.

Также следует отметить, что модуляторы в данном случае устанавливаются мультисистемные. Параметр порогового напряжения у них достигает 5 В. Степень искажения у представленных устройств незначительная. Чтобы уменьшить амплитуду колебаний, дополнительно в некоторых моделях установлены емкостные конденсаторы. Порты для таких устройств используются разнообразные.

Использование стрикционных преобразователей

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

В данном случае приходится использовать различные усилители. На основных платформах такие устройства работать способны. Резисторы для преобразователей подбираются вспомогательного типа.

Напряжение они максимум обязаны выдерживать в 4 В.

За счет этого параметр отрицательного сопротивления в цепи может достигать 6 Ом. Модуляторы для преобразователей подбираются разных типов. В данном случае многое зависит от производителя. Если рассматривать модели для тестирования микроконтроллеров, то модуляторы чаще всего используются диодные. Параметр проходимости сигнала у них доходит в среднем до 5 мк.

Программаторы на микросхеме РР202

Программатор для прошивки данного типа является довольно распространенным. Модуляторы для таких устройств подходят только импульсного типа. В свою очередь, адаптеры можно подбирать разные. В данной ситуации важно добиться высокой стабильности устройства. Резисторы чаще всего устанавливаются высокоомные. За счет этого чувствительность устройства значительно повышается.

При этом параметр проводимости сигнала зависит от типа конденсаторов. В некоторых моделях они используются аналогового типа. За счет этого параметр порогового напряжения удается поддерживать в системе на уровне 30 В. Однако показатель отрицательного сопротивления зависит от скорости обработки данных.

Модели на микросхеме РР300

Универсальный программатор данного типа способен работать на платформах SSW. За счет этого на сегодняшний день он пользуется большим спросом. Преобразователи в нем используются довольно редко. Однако исключения все же бывают. Особой стабильностью такие модели не выделяются. В среднем параметр отрицательного сопротивления у приборов составляет 3 Ом.

Все это говорит о том, что процесс обработки данных происходит довольно быстро. Резисторы чаще всего используются с операционными усилителями. Все это необходимо для повышения полосы пропускания. Минимум этот параметр в устройствах составляет 4 мк.

Устройства с последовательным портом

Первый универсальный программатор с последовательным портом был изготовлен не так давно. Проблема его заключается в слабой чувствительности.

За счет этого электромагнитные колебания в сети бывают довольно значительные. Все это в конечном счете отображается на качестве чтения данных с носителей.

На сегодняшний день эта проблема была решена производителями за счет усиления пропускной способности.

Резисторы в устройствах обычно устанавливаются вакуумного типа. Для повышения промежуточной частоты используются коммутируемые конденсаторы. Параметр отрицательного сопротивления в системе зависит от мощности модулятора. Если рассматривать многоканальные аналоги, то у них вышеуказанный параметр способен доходить до 3 Ом. В таком случае операционные усилители использовать не обязательно.

Источник: https://www.syl.ru/article/207473/new_programmator-gromova-mikrokontrolleryi-dlya-nachinayuschih

Делаем COM программатор для AVR микроконтроллеров

Делаем COM программатор для AVR микроконтроллеров.:
Еще одним несложным, в плане изготовления, является COM программатор.

При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования.

Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В). Это и делает

схема COM программатора для AVR микроконтроллеров:

Данная схема программатора достаточно распространена и известна как программатор Громова. Название пошло от автора программы Algorithm Builder Геннадия Громова, который и предложил такую схему.
Чтобы собрать программатор Громова нам нужно следующее:

Диоды КД522, КД510, 1N4148 или им подобные. Резисторы можно использовать любые, какие найдете. В качестве шлейфа можно использовать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству. Для внутрисхемного программирования Atmel рекомендует стандартные разъемы, но так как наши устройства не предназначены для частого перепрограммирования, я использую разъемы BLS «мамы» на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компа – именно их я и взял) и штырьки PLS «папы» на плате. Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.
Собрать COM программатор не составит труда:
Я сознательно не даю печатной платы под этот программатор, так как схема проста и возня с разводкой и травлением платы просто себя не оправдывает.

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

Общие рекомендации: – Так как режим Bitbang нестандартный для COM порта компьютера, то возможны сбои в работе (хотя у меня такого не было). Особенно это касается ноутбуков. Как вариант решения этой проблемы можно рекомендовать «поиграться» настройками COM порта (скорость, биты данных, варианты управления потоком, величины буфера …). – Отдельный разъем для «земли» желательно подключить первым, чтобы уравнять потенциалы «земли» программируемого устройства и компьютера. Для тех, кто не знает, если у Вас компьютер включен в обычную розетку, без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В.

Заключение:

– COM программатор Громова простой и надежный. Я не перестал пользоваться им даже собрав USB программатор (если какой либо микроконтроллер перестает программироваться USB программатором я обязательно перепроверю его на программаторе Громова). – Так как программатор Громова собран на пассивных элементах он не требует для себя питания. Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.

– Для пользователей Algorithm Builder есть приятный бонус! Этот программатор можно использовать для внутрисхемной отладки кристалла (программный JTAG).

Источник: http://getchip.blogspot.com/2012/09/com-avr.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}