Программаторы микроконтроллеров AVR
Неболшой обзор используемых на практике программаторов для микроконтроллеров AVR. AVR ISP Prorgammer и USB программатор AVR / 89S совместимый с AVR910.
AVR ISP Prorgammer

Программатор поддерживает следующие семейства кристаллов:
TinyAVR
ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L
AVR
AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535
MegaAVR
ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega169, ATmega8515, ATmega8535, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega329, ATmega3290, ATmega649, ATmega6490
Отличительные особенности:
- внутрисхемное программирование (не требуются дополнительные переходные панели, при этом выводы программирования используются в проекте)
- поддержка программатора популярными компиляторами AVRstudio, IAR AVR, Image Craft AVR.
- автоматическая верификация (100% гарантия соответствия зашитого кода исходному)
- высокая скорость программирования, возможность прошивки серийного номера кристалла
я долгое время удачно пользовался и продолжаю пользоваться этим надежным и простым программатором, работающим через LPT порт.
Схема этого простого, но надежного программатора:
Двусторонняя плата помещается в разъем:
Мне понадобился второй программатор, а описанный ниже USB программатор не мог шить нужный мне микроконтроллер. Поэтому я решил повторить этот LPT программатор.
Компьютерные тенденции таковы, что LPT порт скоро исчезнет. Поэтому пора присмотреть альтернативу.
Программатор микроконтроллеров AVR / 89S совместимый с AVR910 (USB программатор)
Посетив несколько магазинов, понял, что цену на программаторы лупят не скромные, поэтому принял решение заморочиться и сделать программатор сам. Пробороздив просторы Интернета, нашел несколько реализаций совместимые по командам с оригинальным программатором AVR910 ATMEL.Здесь http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm нашел наиболее подходящий вариант.
Убрав лишние детали, немного переделал схему программатора под себя. Получился вот такой винегрет:
Минус такой переделки - отсутствие предохранителя. Хотя, как показала практика, USB порт кротким замыканием спалить вряд ли удастся. По крайней мере, на моём компьютере не вышло, но экспериментировать не стоит. Светодиод VL3 сигнализирует о подачи питания на программатор через порт USB. Светодиоды VL1, VL2 сигнализируют о чтении / записи программатора. Джампер J1 – (MODify) служит для программирования микроконтроллера в новом программаторе. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК программы. После этот джампер необходимо разомкнуть и замкнуть джампер J2 - NORMal. Больше мы его не трогаем. С помощью джампера J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом - пониженная. Примечательная особенность, на вывод LED разъема ISP выведен меандр с частотой 1 МГц для "оживления" МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. ОЧЕНЬ полезная штука!
Прошивка FUSE BITS Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в "0") биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры , идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в "1").
Инсталляция Windows 2000/XP/Vista/Seven 32-bit
Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы. В архиве с прошивкой имеется папка "AVR910.Driver" в которой расположены три директории для разных вариантов операционных систем: -"2k_xp_32" - для операционных систем Windows 2000/XP 32-bit (используется штатный драйвер usbser.sys) -"vista_xp_32" - Для операционных систем Windows XP/Vista/Seven 32-bit(usbser.sys + lowbulk.sys[32-bit] от Osamu Tamura) -"vista_xp_64" - Для операционных систем Windows XP/Vista/Seven 64-bit(usbser.sys + lowbulk.sys[64-bit] от Osamu Tamura)
Особенности установки:
Windows 2000
В принципе, инсталляция не отличается от подобной для Windows XP, но есть одно НО - задержки в драйвере usbser.sys данной ОС портят цепочку команд от ПО на РС до программатора и, соответственно, цепь ответов обратно от программатора до ПО на РС... Проблему я пока не установил, но есть решение. Конечно не самое красивое, но работает надежно :-) Необходимо заменить файл usbser.sys в системных папках Windows 2000 на аналогичный от Windows XP. Это папки ...\winnt\system32\drivers\ и ...\winnt\system32\dllcashe\. Файл usbser.sys от Windows XP SP1 можно взять здесь. Естественно, что драйвер придется подменять загрузившись под другой ОС (например с загрузочного диска).
Windows XP/Vista/Seven 64 bit
Рекомендации по установке от Osamu Tamura (Recursion Co., Ltd.)
Чтобы использовать драйвера на 64 битной платформе, Вы должны отключить проверку цифровых подписей драйверов, нажимая функциональную клавишу F8 во время начала загрузки системы. Второй вариант, использование программы "Driver Signature Enforcement Overrider", которая подписывает драйвер как "testdriver" и активизирует "testmode", таким образом, Вы можете загрузить драйвер без реальной цифровой подписи. Вы можете найти более детальное описание на странице программы, пройдя по ссылке выше.
Установка: 1. Загрузить "Driver Signature Enforcement Overrider"; 2. Запустите DSEO (инсталляция не требуется). 3. Выберите "Sign a System File", нажмите кнопку "Next" и выберете файл avr910.usb.vista.xp.64.inf из директории ...AVR910.Driver/vista_xp_64/. 4. Выберите "Sign a System File" еще раз, нажмите кнопку "Next" и выберете файл lowbulk.sys из директории ...AVR910.Driver/vista_xp_64/. 5. Выберите "Enable Testmode" и нажмите кнопку "Next". 6. Перезапустите свой компьютер.
Оригинальные драйвера для AVR CDC от Osamu Tamura можно взять здесь.
Автор разработки: Рыжков Андрей aka PROTTOSS. Новокузнецк.
Вот что получилось у меня:
Программатор использую с программами AVRProg v.1.4 из пакета AVRStudio. На Windows XP Работают безотказно.
Программатор устанавливается как виртуальный Com-порт. Единственно, что нужно учесть, AVRProg проверяет порты от 1 до 4. Придется в диспетчере устройств передвинуть на порт до COM4, либо в настройках AVRStudio указать по какой порт искать программатор.
Схему, плату, прошивку и драйвера можно скачать здесь.
P.S. Когда мне нужно было прошить PWM контроллеры (AT90PWM3) то пришлось это делать с помощью старого доброго AVR ISP Prorgammer (через LPT порт), AVRProg v.1.4 не знает AT90PWM3. Не определенная ситуация складывается и с ATmega64. Поэтому, основным рабочим программатором у меня остается ЛПТешный AVR ISP Prorgammer.
P.S.P.S. Не так давно знакомый купил этот USBasp программатор
В статье AVRDUDE Windows описано ПО для работы с этими и другими программаторами.
Удачи!
Смотри также:
1. Есть один небольшой недочет - лампочка чтения работает вполнакала, по сравнению с лампочки записи. Это у всех так или только у меня???
2. Ещё хотелось бы узнать, где можно почитать про фьюзы, чтобы не убить мегу (с ними первый раз работаю, до этого имел большой опыт с пиками) ???
Собрал программатор AVR910 , прошил.
Определяется как неизвестное устройство. Win7 64b. Фьюзы проверял и перепрошивал раз 10 - результат не меняется.
Подскажите, в какую сторону копать?
Спасибо.
Единственный момент, этим программатором прошивал на другом компе с XP 32b.
Под Windows7 не тестировал.
1. Попробуйте для начала подключить к компьютеру с Windows XP.
2. Проверьте качество пайки. У меня один не хотел определяться, причина - плохая пайка.
3. Нет разницы каким программатором прошивать микроконтроллер.
У меня был целый набор траблов:
1. Всегда проверяйте, что вам дает продавец в магазине - в заказе перепутали и вместо кварца на 12 положили на 20.
2. Всегда проверйяте пайку - на глаз вроде все пропаяно, протыкал иголкой ножки МК, 3 не пропаяны.
3. Всегда отмывайте плату от флюса перед подключением.
Теперь остается вопрос выбора ПО, хочется программировать МК прям из редактора кода. После беглого изучения остановился на AVR studio 6, но как там настроить программатор и возможно ли это вообще?...
не подскажете как его воткнуть? просто его проводами вывел.
Додати коментар
Недавні записи
- 🇺🇦 FOC Board STM32F103RB 🧩
- STM32 Motor control SDK - керування оборотами мотора за допомогою потенціометра 📑
- Flask✙Gunicorn✙Nginx➭😎
- STM32 Motor control SDK - програмне керування обертам мотора
- STM32 Motor control SDK - як створити перший проект
- Vue SVG. Приклад побудови живого параметричного креслення
- Вимірювання моменту мотора
- Vue SVG - компонент. Приклад 📑
- Flask + Vue 🏁 Финальный пример 🏁
- Flask, CORS, JSON-файл. Пример#6
Tags
bldc brushless stm32 motor web html css flask atmega foc git java-script pmsm raspberry-pi python websocket mongodb esp8266 nodemcu st-link tim timer docker ngnix programmator ssd1331 ssd1306 wifi uart meteo bme280 bmp280 i2c gps mpu-6050 mpu-9250 sensors 3d-printer options usb barometer remap watchdog flash eeprom rtc bkp encoder pwm servo capture examples dma adc nvic usart gpio books battery dc-dc sms max1674 avr lcd dht11 piezo rs-232 rfid solar exti bluetooth eb-500 displays ethernet led smd soldering mpx4115a hih-4000
Архіви