Пятница, 17.05.2024, 10:59
Приветствую Вас Гость | RSS
Главная | Программатор USBasp | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Практическая электроника

    Программатор USBasp

    Достаточно давно мною был собран программатор AVR910 из статьи. Но в процессе эксплуатации оказалось что он достаточно медленно загружает прошивку размером больше 2Кб. Приходится ждать минуту две и больше. Это совсем ни куда не годится. Решено было собрать простейший программатор USBasp. Несмотря на то что статей по этому поводу написано много, напишу свою. Схема данного программатора ниже.

    Официальный сайт данного проекта http://www.fischl.de/usbasp/. На официальном сайте можно скачать различные варианты разводки платы-на любой вкус как говорится. Там же прошивка, и драйвера. Разводку своей платы я брал с другого сайта, она принципиально ни чем не отличается. Слегка подкорректировал и выкинул лишние элементы. Мне не нужна перемычка Self programing. Она нужна раз при программировании микроконтроллера. Ни вижу смысла тратить целую перемычку, если можно припаять проводки к дорожкам. Для серийного производства(100штук в неделю например) она явно нужна. Питание отладочного устройства(Supply target) тоже реализовано по другому. Добавил защитные резисторы, на случай КЗ в нагрузке,ток не должен превысить 0,5A.Микроконтроллер я использовал atmega48, он дешевле. Разводка вот такая:

    Как всегда веселый картинки ЛУТа.Там немного пострадала надпись SCK.Пока я болтал по телефону, рука создала полигон на плате.Распечатал и удивился.

    Вытравленная плата с просверленными отверстиями.

    После лужения флюсом F5.

    А теперь начинается самое интересное. Программирование фузов и заливка прошивки. Программатор можно собрать с использованием atmega8, atmega88,atmega48.Для каждого микроконтроллера есть своя прошивка в архиве на сайте программатора. Какой выбрать микроконтроллер для программатора? Я выбрал тот который дешевле-atmega48.

     Самый ответственный момент это фузы! Если их не правильно зашить-можно "убить" микроконтроллер. На сайте откуда я брал  фузы, была картинка  которая ввела меня в заблуждение. В итоге чуть не убил микросхему. Сами судите:

    Cлева это то что было на сайте, с права это как нужно расположить фузы в ChipBlaster. Прошивал старым  программатором AVR910,о котором вначале говорил. После прошивки загорается красный светодиод.

     

     

    Давай все же разберемся с фузами, что бы не приключилось беды. Точнее мне пришлось это сделать, после того как я прошил по левой картинке. Как известно не запрограммированый фуз это такой fuze=1. Т.е. если мы не лезли туда куда не нужно, там стоит не запрограммированным fuse=1. Когда мы хотим установить фуз, значит нужно поставить галочку, тогда fuse=0.Судя по картинке с лева ни все так считают. В оффициальной документации от производителя микроконтроллера четко написано-не запрограммированным считается фуз=1. Вот из этого и будем исходить.  Вообще что нам нужно от этих фузов? Заставить работать микроконтроллер от кварцевого резонатора на 12мгц, а остальное для нас не так важно. По умолчанию для atmega48,atmega88 фузы стоят как то так:

    Что это значит? Ну все нам знать не обязательно, интересуют только секции CKSEL3,CKSEL2,CKSEL1,CKSEL0, и CKDIV8. Биты CKSEL3:0( CKSEL3,CKSEL2,CKSEL1,CKSEL0) задают источник от которого тактируется "процессор", т.е. его тактовая частота. Смотрим в даташит, в разделе System clock and clock options находим табличку.Видим:

    Так. Теперь нужно понять что у нас. Как было сказано фирмой atmel если  фуз не запрограмирован, т.е. галочки нет(в нормальных программах), тогда fuse=1. Смотрим и расписуем

    CKSEL3=0,CKSEL2=0,CKSEL1=1,CKSEL0=0. Глядим в табличку видим  Calibrated internal RC oscillator.  Ну а установка фуза СКDIV8, означает деление на 8. В итоге микроконтроллер работает на тактовой частоте в 1мГц. Глядим на схему видим кварц на 12мГц, похоже что такая растановка нам не годится.

    Вернемся к той картинке где у меня стоят фузы для разных программ. Слева программа в которой галочка означает фуз не запрограммирован(fuse=1), а с права галочка фуз запрограммирован(fuse=0). Все с точностью да на оборот.

    Давай разберемся как нужно их установить. CKSEL3=1,CKSEL2=1,CKSEL1=1,CKSEL0=1. BODLEVEL1=0.  Можно посмотреть в табличку выше что это значит. Вобщем будьте внимательны перед тем как программировать фузы-разберитесь со своей программой,что в ней значит галочка. Для USB AVR DUDE PROG V1.0 atmega48,atmega88 должно быть так:

    Сначала я обычно прошиваю программу, а потом фузы. Прошивка находится в архиве(я скачивал usbasp.2011-05-28) на официальном сайте в папке /bin/firmware. Это .hex файлы для соответсвующего микроконтроллера. Драйвера в /bin/win-driver. Правда там две папки и Readme. Читаем "With WinAVR version 20100110 or older, please use libusb_0.1.12.1". Ее я и поставил.

    Прошиваем микроконтроллер, зашиваем фузы. Ставим драйвера. Подключаем к USB. В диспетчере устройств должен появится  LibUSB-Win32 Device  USBasp. На Windows 7 32bit все отлично работает. Если устройство нашлось-значит все сделано верно. Программатор готов.

    Перемычка  используется для прошивки контроллеров у которых частота не превышает 1.5 МГц. Информацию для изготовления программатора я брал тут. Там все очень хорошо описано, рекомендую для ознакомления.

     А теперь вопрос как использовать данный программатор. На официальном сайте, да и по ссылке приведены программы поддерживающие данный программатор.Перебрав несколько программ я остановился на   USB AVR DUDE PROG V1.0 . В ней фузы задаются галочками, а не байтом. Мне не удобно смотреть в даташит, а потом сочинять байт. С галочками как то проще.Галочку поставил fuse=0. На самом деле все функции выполняет  консольные avrdude.exe, а USBASP_AVRDUDE_PROG.exe это GUI-Графический Юсер Интерфейс. Скачать все это дело можно тут.

    Запускаем GUI.

    Думаю, тут все понятно. Выбираем тип микроконтроллера. Путь к прошивке, или файлу eeprom, Нажимаем программирование, загружаем прошивку. Работает значительно быстрее AVR910.

     

     

     

     

     

     

    Бесплатный конструктор сайтов - uCozCopyright MyCorp © 2024