Site Loader

Содержание

ATMega88 — GetChip.net

Устройство (контроллер) этой статьи предназначено для подсветки ступеней лестницы в темное время суток или в местах с плохим освещением. Устройство контролирует в зоне лестницы (коридора, элементов интерьера, …) входящих и выходящих людей и создает различные динамические световые эффекты в зависимости от положения людей (их количества, стороны захода и т.д.).   Теперь подробней. Написание этой статьи… Читать далее »

Раздел: Полезные устройства Метки: ATMega88

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

Раздел: ИК-управление Сенсоры Метки: ATMega88

Пришло время расширять функционал старых конструкций и создавать что-то новое и интересное. Для этих целей нам понадобится более «жирный» микроконтроллер. Я уже давно выбрал серию микроконтроллеров Atmega48,  Atmega88, Atmega168, Atmega328, да все никак руки до нее не доходили. Эта серия логическое продолжение популярного микроконтроллера ATmega8, совместима с ним по ножкам, но имеет улучшенную технологию, большую… Читать далее »

Раздел: Без рубрики Метки: 1WIR, ATMega88, SMD, SPI, UART

K-Line. Когда я разрабатывал эту схему хотелось сделать конструкцию максимально надёжную и простую для повторения. И решить взаимоисключающие требования надёжность/простота/цена. Теперь подробней: Пациент — автомобильная борт сеть. Автомобильная борт сеть очень капризная штука. Только непосвящённый уверен что там 12вольт постоянного тока. А на практике от 8-9 до 15-16 с ВЧ иголками амплитудой до 100! вольт. Фактически… Читать далее »

Раздел: Программаторы и преобразователи Метки: ATMega88

Я уже писал про фьюз биты / байты (fuse bits / bytes) микроконтроллеров AVR много статей назад.

Но, судя по большому количеству вопросов от читателей, тема не раскрыта полностью. В чем же проблема с установкой фьюз бит? Вроде бы есть картинка, на которой нарисовано какие галочки ставить, какие снимать – должно быть все просто. Но разработчики… Читать далее »

Раздел: Знания Программаторы и преобразователи Метки: ATMega88, ATTiny13, ATTiny2313, AVR, Как?

Наконец-то закончились праздники, и пришло время чего-нибудь сделать. Начнем, пожалуй, с необходимого устройства, облегчающего жизнь рядового электронщика – устройства связи с компьютером. Это нужно для того, чтобы передать данные в компьютер (температура с датчиков, положение дверей, частота вращения двигателя, таблица значений с регистратора …) или принять данные из компьютера (таблицы значений для вычислений, настоечные данные… Читать далее »

Раздел: Программаторы и преобразователи Метки: ATMega88, UART, USB

Первая из плат — это универсальная плата для микроконтроллера ATMega48/88/168. Плата совместима с ATMega8. На плате предусмотрено подключение внешнего кварца, но надо помнить максимальная частота кварца для ATMega48/88/168 – 20 МГц, а для ATMega8 – 16 МГц. Также на плате предусмотрено подключение разъемов для последовательного программирования. Все разъемы, которые я использую в своих платах, разъемы… Читать далее »

Раздел: Без рубрики Метки: ATMega88, SMD, Начинающим

Вот и пришло время для первой прошивки. Данная прошивка является тестовой. Она не производит ни каких полезных действий, кроме дрыганья ножками по определенному алгоритму. Этой прошивкой можно проверить работоспособность всего микроконтроллера и портов ввода-вывода в частности. Чтобы проверить микроконтроллер необходимо загрузить прошивку и посмотреть, что происходит на ножках. «Смотреть» можно или мультиметром, или простым пробником… Читать далее »

Раздел: Программаторы и преобразователи Метки: ATMega88, ATTiny13, ATTiny2313, Начинающим, Отладка

Данная отладочная плата для устройств на микроконтроллере AVR ATMega48/88/168 с часами реального времени (часовым кварцем). Как и предыдущие отладочные платы данная плата всего лишь заготовка будущего устройства. На плату установлены штырьки для подключения питания, программатора и часовой кварц. Часовой кварц «вешается» на ножки для подключения обычного кварца, поэтому микроконтроллер должен работать от внутреннего задающего генератора.… Читать далее »

Раздел: Без рубрики Метки: ATMega88, Начинающим, Отладка

Семейство микроконтроллеров ATMegaX8 наиболее оптимально по соотношению цена/функциональность. В семейство входят три микроконтроллера ATMega48, ATMega88, ATMega168. Все микроконтроллеры семейства идентичны, за исключением объема памяти. Соответственно 4/8/16кбайт Flash, 256/512/512байт EEPROM, 0.5/1/1кбайт SRAM. Микроконтроллер выпускается в двух вариантах – обычном (ATMega48/88/168) и с пониженным питанием (ATMega48V/88V/168V). За пониженное питание приходится платить понижением тактовой частоты микроконтроллера (более медленная… Читать далее »

Раздел: Знания Метки: ATMega88, AVR, Начинающим

Программатор USBASP для AVR микроконтроллеров 3.

3V/5V ATMega8, цена 74.95 грн

Для просмотра полного списка наших предложений  —  СКАЧАЙТЕ ПРАЙС 

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

для AVR микроконтроллеров ( ATMEGA8A 3.3V / 5V )

собран на ATmega8a, имеет светодиодную индикацию режима работы, переключатель 3,3В/5В.

Программная поддержка — AVRDUDE от версии 5.2 и выше.
Подключается через USB
Позволяет читать и писать AVR микроконтроллеры, EEPROM, прошивка фьюзов и битов блокировки.
Имеет подключение через ICSP (контроллер можно прошить прямо в плате)
5 Кб / сек — Максимальная скорость записи.
Программное обеспечение управляет SCK для работы с низкой тактовой частотой (<1,5 МГц).

10-контактный ISP интерфейс.
возможность программировать 3В и 5В схемы
Совместим с Linux, Mac OS X и Windows(xp,7,8, 86/64).

Софт:
AVRDUDE supports USBasp since 
BASCOM-AVR supports USBasp since v
Khazama AVR Programmer(рекомендуемая версия 1. 6.2)
eXtreme Burner — AVR is a Windows GUI Software for USBasp based USB AVR programmers.

Поддерживаемые устройства:

Mega серия — 
ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169

ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega64 ATmega640 ATmega644 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серия — 
ATtiny12 ATtiny13 ATtiny15 ATtiny25 ATtiny26
ATtiny45 ATtiny85 ATtiny2313

Другие- 
AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535 …

 

Комплектация

Плата программатора x 1
ISP Кабель x 1

Пример работы

Программатор работает быстро, имеет в комплекте длинный кабель.

 
Есть возможность менять внутренний софт (перепрошить программатор другой прошивкой). 
Например с его помощью можно создать виртуальный COM порт.
 (легко модернизируется в AVR910)

 

Обратите внимание на другие программаторы и зажим, которы также можно купить у нас-

Для просмотра полного списка наших предложений  — СКАЧАЙТЕ ПРАЙС 

 

    *(по прайсу всегда можно контролировать наличие того или иного компонента)

    *(прайс динамически меняется — скачивая по одной и той же ссылке всегда можно проследить что появилось нового и актуальные цены)


    
Заказать интересующие Вас компоненты можно по прайсу, или прямо у нас на сайте — Нажав кнопку КУПИТЬ 
    *(более детально о процессе покупки смотрите — Здесь)

 

Всегда постараемся ответить на Ваши  вопросы —    

 

 

Удачных Вам покупок!

 

Установка USBaspLoader на плату USBasp

Продолжаем опыты над дешевым программатором USBasp,который можно научить работать как другое устройство.

Для программирования платы USBasp необходим другой программатор USBasp или Arduino в режиме программатора, но если мы хотим быстро сменить назначение платы на другое без дополнительных внешних программаторов ?

Тут придет на помощь проект USBaspLoader ,который позволяет программировать микроконтроллеры AVR без программатора,залив один раз специальный загрузчик.Для программирования необходимо поставить перемычку,которая подключена на свободный пин м/к. 

К сожаленью существует и недостаток USB загрузчика — он занимает 2 кб flash памяти Вашего м/к .Получается ,что в нашем случае остается свободно для самой программы всего 6144 байт,но этого может быть достаточно для большинства проектов.

 

Установка загрузчика

Для начала скачаем прошивку-загрузчик,который адаптирован под схему USBasp и выберем через что будем его прошивать:

Команда через Arduino:

avrdude -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m

Команда через другую USBasp:

avrdude -c usbasp -p m8 -U flash:w:boot_m8. hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m

Файлы avrdude,avrdude.conf и boot_m8.hex должны находится в одной папке,если в команде не указан конкретный путь.Программку avrdude можно найти по адресу в Arduino IDE — путь_к_папке_ардуины_/hardware/tools/

Теперь можно загружать прошивки без дополнительных программаторов.

Прошить загрузчик можно и через Arduino IDE,если файл загрузчика положить в папку hardware/arduino/bootloaders/atmega8/ .Для прошивки необходимо выбрать пункт ATmega8 USB 12 MHz в меню плат(см ниже по тексту как его добавить) и выбрать опцию в меню сервис «записать загрузчик».

 

Переключение в режим программирования

 Для того,чтобы «залить» прошивку в устройство с установленным USBaspLoader необходимо установить перемычку JP3 ,которая переводит устройство в режим программирования и сбросить устройство ,замкнув контакт ближний к перемычке выбора питания(JP1) на перемычке JP2 на землю.

Слева на фото показан пример как подключается кнопка для сброса микроконтроллера с установленной перемычкой JP3 .Кнопка и разъем взяты из старого системно блока.

 

 

 

Теперь устройство видно в системе как USBasp и с ним можно работать как обычным программатором USBasp.

 

Прошивка микропрограмм

Прошивка программы ,используя USBaspLoader ничем не отличается от обычной прошивки микроконтроллеров через USBasp:

avrdude -c usbasp -p m8 -U flash:w:Имя_файла_для прошивки.hex

Обращаю внимание,что чтение и установка фьюзов не доступна — avrdude будет выводить нули.

 

Используем USBasp как макетную плату в Arduino IDE

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

Добавляем поддержку Atmega8+USB ,дописав секцию в файл boards. txt:

atmega8usb.name=ATmega8 USB 12 MHz
atmega8usb.upload.protocol=arduino
atmega8usb.upload.maximum_size=6144
atmega8usb.upload.speed=19200
atmega8usb.bootloader.low_fuses=0x9f
atmega8usb.bootloader.high_fuses=0xc0
atmega8usb.bootloader.path=atmega8
atmega8usb.bootloader.file=boot_m8.hex
atmega8usb.bootloader.unlock_bits=0x3F
atmega8usb.bootloader.lock_bits=0x2F
atmega8usb.build.mcu=atmega8
atmega8usb.build.f_cpu=12000000L
atmega8usb.build.core=arduino
atmega8usb.build.variant=standard

Теперь в меню выбора плат появился пункт ATmega8 USB 12 MHz и скетчи сейчас можно заливать через меню файл — «прошить с помощью программатора».Не забываем в меню «программатор» выбрать USBasp.

Доступные цифровые выводы микроконтроллера на разъеме:

0,1,10(PWM),11(PWM),12,13. Можно воспользоватся интерфейсом SPI,например для подключения Ethernet ENC28J60.

А так же доступны цифровые выводы 14 и 15 для управления светодиодами на плате.

 Можно задействовать и интерфейс USB ,используя библиотеку для Arduino V-USB.

 

сборка и установка прошивки — dilshan/programmable-light Wiki

Перед первым включением этого светового контроллера вам необходимо собрать и установить прошивку в микроконтроллер ATmega8. Прошивка этого светового контроллера доступна для клонирования на странице проекта.

Прошивка контроллера

Light разработана с использованием Atmel AVR GNU Toolchain и Atmel Studio . Atmel AVR GNU Toolchain 3.4.3 используется для сборки прошивки контроллера освещения версии 1.1.

Скомпилированный файл прошивки также доступен для загрузки в разделе релизов на странице проекта.

Если вы планируете собирать прошивку с использованием исходного кода, используйте Atmel Studio 7 или более позднюю версию. Atmel AVR GNU Toolchain теперь является частью Atmel Studio, и вам не нужно делать никаких дополнительных загрузок.

Залить прошивку в микроконтроллер

Для загрузки прошивки в MCU ATmega8 требуется адаптер

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

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

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

  • Младший байт предохранителя: 0xEF
  • Старший байт предохранителя: 0xD9

При настройке фьюз-битов убедитесь, что бит 7 старшего фьюза ( RSTDISBL ) установлен в незапрограммированное (1) состояние.Если запрограммировано RSTDISBL , возможно, вы не сможете снова прошить ATmega8, используя заголовок ISP.

Общие шаги для прошивки платы контроллера света приведены ниже:

  1. Отключите вход питания 24 В от платы контроллера освещения.
  2. Соедините разъем ISP с программатором AVR ISP. Убедитесь, что клеммы +5V и GND подключены в точном порядке. Неправильная полярность может повредить ATmega8 и другие микросхемы на плате контроллера освещения.
  3. Подключите ISP-адаптер к ПК и начните загружать прошивку и настройки фьюзов в MCU.

Разблокировать программу прошивки микроконтроллера ATmega8 и восстановить код прошивки

Программа разблокировки микроконтроллера ATmega8

Разблокируйте флэш-программу микроконтроллера ATmega8 и восстановите встроенную флэш-прошивку из защищенного микроконтроллера atmega8, оригинальный исходный код микропроцессора atmega8 будет полностью извлечен;

Разблокируйте программу флэш-памяти микроконтроллера ATmega8 и восстановите встроенную прошивку флэш-памяти из защищенного микроконтроллера atmega8, исходный код микропроцессора atmega8 будет полностью извлечен;

Ядро Microchip AVR ® сочетает в себе богатый набор инструкций с 32 рабочими регистрами общего назначения. Все 32 регистра напрямую подключены к арифметико-логическому устройству (АЛУ), что позволяет получить доступ к двум независимым регистрам в одной инструкции, выполняемой за один такт, путем взлома бита защитного предохранителя avr mcu atmega8l.

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

ATmega8A обеспечивает следующие функции: 8 кбайт внутрисистемно программируемой флэш-памяти с возможностью чтения и записи, 512 байт EEPROM, 1 кбайт SRAM, 23 линии ввода-вывода общего назначения, 32 рабочих регистра общего назначения, три гибких Таймер/счетчики с режимами сравнения, внутренними и внешними прерываниями, последовательный программируемый USART, двухпроводной последовательный интерфейс, ориентированный на байты, 6-канальный АЦП (восемь каналов в корпусах TQFP и VQFN) с точностью до 10 бит, программируемый сторожевой таймер с внутренним генератором, последовательным портом SPI и пятью программно выбираемыми режимами энергосбережения.

Режим ожидания останавливает ЦП, позволяя SRAM, таймеру/счетчикам, порту SPI и системе прерываний продолжать работу при получении кода микроконтроллера atmega8l. Режим Power-down сохраняет содержимое регистра, но замораживает генератор, отключая все остальные функции микросхемы до следующего прерывания или аппаратного сброса.


Метки: açmak güvenli mikrobilgisayar bellek ikili dosyası,açmak kilitli mikroişlemci flash bellek yazılımı,açmak korumalı mikrodenetleyici eeprom onaltılık verileri,açmak şifreli MCU IC gömülü bellenim program

Таксграфикс.org, скачать листинг каталога, программатор avrusb500

Можно использовать другие и более дорогие чипы, но не получится не приведет к лучшему программисту. Прилагаемый загрузочный компакт-диск для первоначальной прошивки, загруженной при покупке, этот программатор на shop.tuxgraphics.org готов к загрузке прошивку в программатор avrusb500v2 на базе atmega8.

avrusb500-upd.html mtime: 26.08.2012 Как прошить и обновить уже собранный комплект avrusb500v2
avrusb500v2-15.tar.gz mtime: 24-08-2012, размер: 782347 байт unix ленточный архив, сжатый
Данная прошивка для avrusb500v2
Изменения по сравнению с последней версией:
— AVRStudio 6 убрала поддержку собственного программатора AVRISP_2 из эта версия программного обеспечения (вы получаете сообщение об ошибке «Подпись прикрепленного инструмента — AVRISP_2, что непредвиденно»). Теперь это исправлено путем эмуляции программатора типа STK500_2.
— prog_char обновлен для новой версии avr-libc-1.8.
аврусб500в2-1.4.tar.gz Время: 14.09.2011, размер: 650602 байт Ленточный архив unix, сжатый
Данная прошивка для avrusb500v2
Изменения по сравнению с последней версией:
— Без функциональных изменений. Скрипты удалены. Теперь все находится в Makefile. Установите предохранители, чтобы включить БПК.
avrusb500v2-1.3.tar.gz mtime: 21.05.2010, размер: 642762 байт ленточный архив unix, сжатый
Данная прошивка для версии avrusb500v2 —
аврусб500в2-1.2.tar.gz mвремя: 25-11-2007, размер: 647048 байт unix ленточный архив, сжатый
Эта прошивка для avrusb500v2
Изменения по сравнению с последней версией:
— Теперь можно прошивать устройства с более чем 128kB flash -memory (atmega2560/atmega2561)
avrusb500v2-1.1.tar.gz mtime: 25-07-2007, размер: 646008 байт unix ленточный архив, сжатый с 6082b версии
для последней прошивки avrus2b90
:
— исправлены редакционные правки и синтаксическая ошибка вспомогательного скрипта.Без изменения кода
avrusb500v2-1.0.tar.gz mtime: 2007-05-18, размер: 645834 байт unix ленточный архив, сжатый
Данная прошивка для avrusb500v2-1. 0.tar.gz Первая версия
AVRUSB500V2.PDF Mime: 2007-05-28, Размер: 8592 BYTES Схема диаграммы
UIP-20050207.TAR.GZ Mime: 2005-10-09 , размер: 166745 байт ленточный архив unix, сжатый
Это оригинальный, непропатченный uisp
uisp-20050207-usb-bbpg-patch.txt mtime: 09.10.2005, размер: 21100 байт Патч для uisp-20050207 для добавления программатора bbpg
cd uisp-20050207;patch -p1 <../uisp-20050207-usb-bbpg-patch txt
uisp-20050207-with-usb-bbpg-patch.tar.gz mtime: 09.10.2005, размер: 171655 байт . Просто скомпилируйте его.
libusb-0.1.10a.tar.gz mtime: 09.10.2005, размер: 375144 байт ленточный архив unix, сжатый при начальной загрузке прошивки.
stk500_spec_avr069.pdf mime: 2007-05-09, размер: 326378 bytes PDF-файл PDF-файл
Protocol STK500 V2 SPET из Atmel для MKII
STK500_SPEC_AVR068. PDF Mime: 2005-10-10-10-10-10 avrdude-5.4.tar.gz mtime: 2007-05-16, размер: 42

байтов программы это то, что вы можете использовать для загрузки программного обеспечения в вашу целевую систему).
AvrUsb500v2 — программатор Atmel AVR с открытым исходным кодом, совместимый с stk500 V2, с интерфейсом USB документация

Август | 2011 | Веб-журнал Джонатана Томсона

*** Крупное обновление артикула и кода в 2019 г. ***

 

Введение
USBasp — это бесплатная прошивка с открытым исходным кодом и эталонный дизайн для реализации USB-программатора AVR. Он использует простую схему и ATmega8 или ATmega*8 для взаимодействия с хостом USB.Различные недорогие платы (~ 1,50 доллара США в 2019 году) на основе проекта USBasp можно приобрести на aliexpress и eBay. Перепрограммирование одной из этих плат часто может быть эффективным решением для одноразового проекта, когда стоимость полной платы для разработки или время, затрачиваемое на проектирование и сборку пользовательской платы, непомерно высоки. Их даже можно заставить работать с Arduino. Эта статья посвящена изображенной здесь плате betemcu.cn. Обратите внимание, что существует как минимум две версии этой платы.

 

Терминология
V-USB — встроенная реализация низкоскоростного USB-устройства для микроконтроллеров Atmel AVR.
внутрисхемный программатор — устройство для записи кода и изменения настроек фьюза на микроконтроллере, который остается в своей прикладной схеме.
USBasp — внутрисхемный USB-программатор для микроконтроллеров Atmel AVR, использующий V-USB.
загрузчик — часть прошивки, способная записывать код на тот же микроконтроллер, на котором он находится. Загрузчик позволяет загружать новый код в микроконтроллер без внешнего программатора.
USBaspLoader — загрузчик USB, работающий по протоколу USBasp.

Можно стереть прошивку USBasp и загрузить новую программу на плату betemcu.cn через 10-контактный разъем. Сначала вставьте перемычку в J2 (два отверстия, обведенные желтым на рисунке выше). При этом RST на 10-контактном разъеме подключается к PC6 (СБРОС). Теперь вы можете использовать второго программатора для записи кода. Однако, если вы установите USBaspLoader на плату betemcu.cn, вы можете использовать AVRDUDE или Arduino для загрузки программ напрямую через USB без необходимости использования внешнего программатора.Когда у вас есть USBaspLoader на плате, остается достаточно места для повторной загрузки прошивки USBasp, чтобы плата betemcu.cn снова могла функционировать как внешний программатор. Я называю этот проект Ouroboros, потому что это игра слов asp и кажущаяся рекурсивность использования USBaspLoader для установки USBasp на программатор USBasp.

 

Начало работы
Во-первых, вам понадобится программатор betemcu.cn USBasp (далее — плата betemcu), а во-вторых, внешний программатор (далее — основной программатор), способный программировать микроконтроллеры AVR через SPI. Затем вы должны проверить свою плату betemcu, чтобы убедиться, что она не неисправна. Прежде чем загружать новый код на плату betemcu, вы должны использовать основной программатор и AVRDUDE для и попытаться сохранить заводскую прошивку платы betemcu на свой компьютер и обнаружить исходные настройки предохранителей. Это позволит вам проверить работоспособность устройства, попытавшись восстановить его до заведомо исправного состояния, записав исходную прошивку и настройки предохранителей. Следующая команда попробует , чтобы сохранить прошивку платы betemcu и отобразить настройки предохранителей.Параметр -c Programr-id — это идентификатор основного программиста. Если биты блокировки платы betemcu запрограммированы на предотвращение считывания прошивки, тогда factory_firmware.hex будет заполнен ненужными данными. Существует множество этих программаторов USBasp, созданных разными группами, и не все они блокируют платы, поэтому стоит попробовать сохранить заводскую прошивку.


avrdude -p atmega8 -c идентификатор программиста -v -U flash:r:factory_firmware.hex:i


заводская_прошивка.данные шестигранные бросовые:
: 2000000000000101020203030404050506060707080809090A0A0B0B0C0C0D0D0E0E0F0FF0
: 2000200010101111121213131414151516161717181819191A1A1B1B1C1C1D1D1E1E1F1FD0
: 2000400020202121222223232424252526262727282829292A2A2B2B2C2C2D2D2E2E2F2FB0
: 2000600030303131323233333434353536363737383839393A3A3B3B3C3C3D3D3E3E3F3F90
: 2000800040404141424243434444454546464747484849494A4A4B4B4C4C4D4D4E4E4F4F70
: 2000A00050505151525253535454555556565757585859595A5A5B5B5C5C5D5D5E5E5F5F50
: 2000C00060606161626263636464656566666767686869696A6A6B6B6C6C6D6D6E6E6F6F30
: 2000E00070707171727273737474757576767777787879797A7A7B7B7C7C7D7D7E7E7F7F10
: 2001000080808181828283838484858586868787888889898A8A8B8B8C8C8D8D8E8E8F8FEF
: 2001200090909191929293939494959596969797989899999A9A9B9B9C9C9D9D9E9E9F9FCF
: 20014000A0A0A1A1A2A2A3A3A4A4A5A5A6A6A7A7A8A8A9A9AAAAABABACACADADAEAEAFAFAF
: 20016000B0B0B1B1B2B2B3B3B4B4B5B5B6B6B7B7B8B8B9B9BABABBBBBCBCBDBDBEBEBFBF8F 9 0062: 20018000C0C0C1C1C2C2C3C3C4C4C5C5C6C6C7C7C8C8C9C9CACACBCBCCCCCDCDCECECFCF6F
: 2001A000D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7D8D8D9D9DADADBDBDCDCDDDDDEDEDFDF4F
: 2001C000E0E0E1E1E2E2E3E3E4E4E5E5E6E6E7E7E8E8E9E9EAEAEBEBECECEDEDEEEEEFEF2F
: 2001E000F0F0F1F1F2F2F3F3F4F4F5F5F6F6F7F7F8F8F9F9FAFAFBFBFCFCFDFDFEFEFFFF0F
. ..

 

Настройки фьюза для записи кода на плату betemcu с помощью внешнего программатора
Если вы не знакомы с фьюзами конфигурации микроконтроллера, посетите соответствующие статьи в разделе «Ссылки», чтобы узнать о них больше. Вы также должны использовать калькулятор предохранителей, чтобы дважды проверить настройки предохранителей перед их применением. Первоначальные настройки для моей платы betemcu были hfuse = 0xD9 и lfuse = 0xFF , но они оставляют CKOPT незапрограммированным, который должен быть установлен для кристаллов быстрее 8 МГц.В make-файле для USBasp используются hfuse = 0xC9 и lfuse = 0xEF , но мне эти настройки не подошли, потому что задержка запуска недостаточно велика, фактически они (исправимо) блокировали плату betemcu. Установка фьюзов на hfuse = 0xC1 и lfuse = 0xBF устанавливает правильную задержку запуска и включает CKOPT. Они также устанавливают уровень обнаружения отключения 2,7 В, что необходимо, если вы хотите использовать встроенный регулятор 3,3 В для питания. С этого момента я использую настройку предохранителя, которая устанавливает уровень обнаружения пониженного напряжения, соответствующий 3.Плата 3 В, если ваша плата 5 В, эта настройка предохранителя не повредит вашей плате, но она не будет правильно определять состояние отключения питания.


Предохранитель высокого уровня: 0xC1
Предохранитель низкого уровня: 0xBF (плата 3,3 В)
Предохранитель низкого уровня: 0x3F (плата 5 В)


avrdude -p atmega8 -c ID программиста -U hfuse:w:0xC1:m -U lfuse:w:0xBF:m
avrdude -p atmega8 -c ID программиста -v -U flash:w:betemcu_blink. шестнадцатеричный

 

Чтобы восстановить исходную заводскую прошивку (убедитесь, что factory_firmware.hex не мусорные данные!):

avrdude -p atmega8 -c Programr-ID -v -U flash:w:factory_firmware. hex

 

Если у вас нет оригинальной заводской прошивки, вы можете заменить ее предварительно скомпилированным шестнадцатеричным кодом из пакета Fischl USBasp, хотя он не будет точно таким же, как исходная прошивка (см. раздел Nota Bene ниже):

avrdude -p atmega8 -c идентификатор программиста -v -U flash:w:usbasp.atmega8.2011-05-28.hex

 

Модификации оборудования, необходимые для запуска vanilla USBaspLoader на плате betemcu
Немодифицированная версия USBaspLoader подключает PD2 и PD4 к линиям данных плюс и минус данных USB.Однако плата betemcu подключает PB1 и PD2 к USB data plus, а PB0 к USB data minus. Поэтому код USBaspLoader необходимо изменить, чтобы использовать те же контакты. Вот фрагмент bootloaderconfig.h с уже внесенными изменениями.


#define USB_CFG_IOPORTNAME B
/* Это порт, к которому подключена шина USB. При настройке на
* "B" будут использоваться регистры PORTB, PINB и DDRB.
*/
#define USB_CFG_DMINUS_BIT 0
/* Это номер бита в USB_CFG_IOPORT, к которому подключена D-линия USB.
* Это может быть любой бит в порту.
*/
#define USB_CFG_DPLUS_BIT 1
/* Это номер бита в USB_CFG_IOPORT, к которому подключена линия USB D+.
* Это может быть любой бит в порту. Обратите внимание, что D+ также должен быть подключен
* к контакту прерывания INT0!
*/

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

 

Для второй модификации вам нужно определить, как вы хотите сигнализировать загрузчику об ожидании программы.Типичный метод заключается в использовании перемычки для подключения PD7 к земле. Контакт NC (не подключен) 10-контактного разъема удобно расположен на расстоянии 0,1 дюйма от одного из контактов заземления разъема, поэтому прокладка провода мода от PD7 к NC — это простой способ добавить перемычку. Однако, если вы планируете соединить плату betemcu с другой схемой через 10-контактный разъем с помощью 10-контактного разъема IDC, вам следует добавить разъем перемычки в другое место на плате из-за сложности вставки и удаления 10-контактного разъема IDC при одновременном подключении. USB-разъем подключен.Использование кнопки, подключенной к PD7 и заземлению вместо перемычки, также является вариантом, но вам придется удерживать кнопку нажатой до тех пор, пока AVRDUDE не завершит работу.

Вот изображение моей модифицированной платы. Сначала я использовал перемычку для подключения PC2 (оранжевый провод к NC) к земле, но позже я решил добавить вторую кнопку, чтобы сигнализировать загрузчику об ожидании загрузки программы. Коричневый и синий провода предназначены для I2C и не являются необходимой модификацией.

 

Пин, используемый для подачи сигнала загрузчику, можно легко изменить, изменив bootloaderconfig.ч . Если вы хотите использовать другой вывод, убедитесь, что он еще не используется для другой функции, ознакомившись со схемой USBasp и внимательно изучив плату betemcu. Имейте в виду, что контакты в углах корпуса ATmega8 легче припаять.

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

 

Альтернативная версия USBaspLoader
Меня не устраивало использование перемычки (или нажатие и удерживание кнопки), чтобы сигнализировать загрузчику о переходе в режим самопрограммирования (SPM). Поэтому я внес некоторые изменения в ванильную версию и упаковал их как альтернативную версию USBaspLoader. *** Я добавил параметр, который компилирует загрузчик таким образом, чтобы он всегда входил в SPM после каждого выключения питания или сброса, и использовал тайм-аут для выхода из загрузчика, что делает аппаратные модификации платы ненужными.*** Альтернативная версия также может быть настроена таким образом, что вы можете войти в режим самопрограммирования, нажав и отпустив кнопку, что является более типичным методом, используемым другими платами разработки USB с микроконтроллерами, имеющими контакт HWB. Я сделал еще несколько модификаций кода, чтобы использовать светодиоды платы betemcu. Вот пример некоторых изменений, которые я сделал (посмотрите bootloaderconfig.h и main.c , чтобы просмотреть все изменения):


#define TIMEOUT_ENABLED 1
/* Если для TIMEOUT_ENABLED установлено значение 1, загрузчик всегда будет загружать
* и оставаться активным, пока программатор не закроет соединение или пока не истечет время
* периода ожидания.
* Поскольку загрузчик всегда загружается, нет необходимости в перемычке на контакте bootLoaderCondition(). Стоит ~108 байт.
*/
#define TIMEOUT_DURATION 5
/* Количество секунд, в течение которых загрузчик ждет перед выходом, если
* в течение интервала ожидания не было никаких действий. Если TIMEOUT_ENABLED определено с
* до 0, это определение будет проигнорировано. Максимальное значение составляет 255 секунд.
*/
#define POWER_ON_RESET_LOAD 1
/* Если POWER_ON_RESET_LOAD определен как 1, то загрузчик загрузит
* при обнаружении внешнего сброса или сброса при включении питания.Если эта опция
* связана с параметром TIMEOUT_ENABLED, равным 1, то аппаратные
* модификации платы не требуются. Если POWER_ON_RESET_LOAD определен
* как 0, то загрузчик загружается только при обнаружении внешнего сброса, но
* для этого требуется добавление кнопки сброса на плату. Стоит ~6 байт.
*/
#define USING_PUSHBUTTON 1
/* Если значение USING_PUSHBUTTON равно 1, то можно использовать
* нажатие и отпускание кнопки на выводе bootLoaderCondition() для сигнала о том, что
* вы хотите войти в загрузчик.Если USING_PUSHBUTTON определен как 0,
*, то вы должны использовать перемычку или кнопку нужно нажать и удерживать
* в течение всего времени программирования (в противном случае
* загрузчик выйдет из строя преждевременно).
*/

 

Если вы хотите добавить кнопку сброса без внесения изменений в плату, вы можете легко сделать это, припаяв кнопку к гнездовому разъему. Чтобы использовать его, поместите разъемы «мама» на контакты разъема RST и GND и вставьте перемычку в J2.

 

Настройки Fuse для записи USBaspLoader на плату betemcu с помощью внешнего программатора
Шестнадцатеричный файл USBaspLoader для ATmega8 с частотой 12 МГц составляет около 1900 байт, поэтому требуется раздел загрузчика размером 2 КБ (1024 слова). Эти предохранители устанавливают размер раздела загрузочной флэш-памяти 1024 слова (2048 байт) и задержку запуска 64 мс.


Предохранитель высокого уровня: 0xC0
Предохранитель низкого уровня: 0xBF (плата 3,3 В)
Предохранитель низкого уровня: 0x3F (плата 5 В)


avrdude -p atmega8 -c идентификатор программиста -U hfuse:w:0xC0:m -U lfuse:w:0xBF:m
avrdude -p atmega8 -c идентификатор программиста -v -U flash:w:alternate_USBaspLoader_2019- 02-18_mega8_12MHz_betemcu_pushbutton.шестнадцатеричный

 

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

avrdude -p atmega8 -c идентификатор программиста -U hfuse:w:0xC0:m -U lfuse:w:0xBF:m
avrdude -p atmega8 -c идентификатор программиста -v -U flash:w:alternate_USBaspLoader_2019- 02-18_mega8_12MHz_betemcu_timeout.hex

 

Прошивка программы с помощью USBaspLoader
Теперь, когда у вас есть альтернативный USBaspLoader на плате betemcu, вы можете прошивать в него новые программы напрямую через USB.Чтобы перевести плату в режим самопрограммирования, сначала нажмите и удерживайте кнопку программирования, затем нажмите и отпустите кнопку сброса, затем отпустите кнопку программирования. Зеленый светодиод должен загореться, показывая, что плата готова к загрузке программы. Загрузчик не запускается при включении платы; для запуска требуется сброс. Загрузите vusb_mouse_example.hex, найденный в моем репозитории GitHub, с помощью следующей команды. Если загрузка прошла успешно, вы должны увидеть, как курсор мыши движется по кругу.


avrdude -p atmega8 -c usbasp -v -U flash:w:vusb_mouse_example.hex

 

Вы также можете загрузить на плату оригинальную прошивку USBasp через загрузчик, чтобы восстановить ее способность программировать другие микроконтроллеры AVR.

 

Arduino
С USBaspLoader на плате он теперь совместим со средой программирования Arduino. Вы должны добавить некоторые записи в boards.txt, чтобы иметь возможность загрузить скетч в Arduino IDE.Перейдите по этой ссылке для объяснения переменных, используемых в boards.txt. Поместите в начало файла boards.txt следующее:

.


############################################### ###############

usbasploader_board.name=USBaspLoader с ATmega8 на частоте 12 МГц

usbasploader_board.vid.0=0x16c0
usbasploader_board.pid.0=0x05dc

usbasploader_board.upload.tool=avrdude
usbasploader_board.upload.protocol=usbasp

usbasploader_board.bootloader.tool=avrdude
usbasploader_board.bootloader.unlock_bits=0x3F
usbasploader_board.bootloader.lock_bits=0x0F

usbasploader_board.build.f_cpu=12000000L
usbasploader_board.build.board=AVR_USBASPLOADER_BOARD
usbasploader_board.build.core=arduino
usbasploader_board.build.variant=standard

usbasploader_board.menu.cpu.atmega8=ATmega8

usbasploader_board.menu.cpu.atmega8.upload.maximum_size=6144
#usbasploader_board.menu.cpu.atmega8.upload.maximum_data_size=
usbasploader_board.menu.cpu.atmega8.upload.speed=115200
usbasploader_board.upload.disable_flushing=true

usbasploader_board.menu.cpu.atmega8.bootloader.low_fuses=0xBF
usbasploader_board.menu.cpu.atmega8.bootloader.high_fuses=0xC0 atmega8.bootloader.file=

usbasploader_board.menu.cpu.atmega8.build.mcu=atmega8

 

Затем в разделе Инструменты->Плата выберите «USBaspLoader с ATmega8 на частоте 12 МГц» .Это нормальное сообщение: "avrdude: предупреждение: невозможно установить период ожидания. Пожалуйста, проверьте наличие обновления прошивки usbasp." Обратите внимание, что вам потребуется подключить адаптер USB-последовательный порт к RX и TX, если вы хотите отправлять данные через UART (например, Serial.print()). Также обратите внимание, что в ATmega8 отсутствуют некоторые функции чипов серии ATmega*8. Например, ATmega8 не поддерживает ШИМ на Timer0. Поэтому эта плата не будет работать с некоторыми скетчами Arduino.

Вам также может понадобиться pins_arduino.h в ваши файлы Arduino, чтобы он правильно работал с вашей платой. Файл tinyusbboard-betemcu/pins_arduino.h , найденный в этом файловом архиве, может быть вам полезен, но я его не пробовал.

 

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


avrdude -p atmega8 -c usbasp -v -U flash:w:betemcu_blink.ino.hex

 

Краткое изложение способов входа в режим программирования
Внешний программатор: соедините отверстия J2 вместе на время загрузки программы.
Vanilla USBaspLoader: подключите PD7 к земле, установите низкий уровень на вывод сброса, загрузите программу, отключите PD7 от земли.
Альтернативный USBaspLoader: 1) выключите питание или установите низкий уровень на выводе сброса, затем загрузите программу до истечения времени ожидания загрузчика. 2) нажать и удерживать кнопку PD7, сброс, отпустить кнопку PD7, загрузить программу

 

Nota Bene
Примечание к сообщению об ошибке: «avrdude: предупреждение: невозможно установить период sck.пожалуйста, проверьте наличие обновления прошивки usbasp».
Если вы используете аппаратный программатор USBasp и получаете это сообщение об ошибке, это означает, что вы используете более старую версию микропрограммы USBasp, которая не может автоматически устанавливать период sck. Это не обязательно означает, что вы должны перезаписать прошивку, поставляемую с вашей платой, самой новой версией USBasp. Поскольку прошивки на этих платах настраиваются производителями плат, некоторые пользователи обнаружили, что перезапись исходной прошивки привела к тому, что плата потеряла некоторые из своих возможностей.Перейдите по этой ссылке для обсуждения этой темы. В результате этого обсуждения было создано несколько обновленных прошивок, которые устраняют некоторые недостатки официальной прошивки Fischl USBasp

.

Если вы используете USBaspLoader, вам следует игнорировать это сообщение об ошибке, так как загрузчик не может установить период sck; на самом деле, нет смысла даже пытаться.

 

Код
Проект Уроборос на GitHub

 

Ссылки
AVR Fuses HOWTO Guide
Учебник LadyAda по AVR — Fuses
Очень полезный калькулятор фьюзов
Я использовал исходный код USBaspLoader, но вот ответвление, которое может быть вам полезно

Еще один селектор игр для ST-V Multi (на базе Atmega8)

Я получил свой мульти ST-V на прошлой неделе.Я был так взволнован, что распаковал его, записал SD-карту, отрегулировал DIP-переключатели и подключил мультиплеер к моему запасному ST-V mobo. Ура! Какой отличный продукт, спасибо Darksoft за то, что позволили нам играть в наши любимые игры ST-V на реальном оборудовании… После некоторого тестирования, загрузки разных игр и игры на моем тестовом стенде я решил установить мульти на другой мой ST-V mobo что в шкафу. Затем я понял, что менять DIP-переключатели, когда ST-V находится «в» шкафу, будет головной болью, особенно когда моя дочь и ее друзья приходят на вечеринку в мой домашний игровой автомат и хотят, чтобы я сменил игры (да, они думаю, переключиться на другую игру в аркадном автомате так же просто, как открыть приложение на iphone!) В любом случае, я читал посты @’miisalo’ о селекторе игр на основе Arduino (кстати, отличный продукт), я сказал себе, что мне нужно что-то вроде это.Это выходные, и я был так взволнован, что у меня не хватило терпения заказать этот селектор игр и ждать его доставки, я решил сделать что-то подобное с нуля. У меня не было Arduino, но было много чипов Atmega8. в моих ящиках с деталями и лично я предпочитаю играть с простыми микроконтроллерами с хардкорным C в своих проектах. Поэтому я решил построить что-то из уже имеющихся деталей… Это еще один проект выбора игр с одним чипом Atmega8, дешевым ЖК-дисплеем 16×2 и тремя кнопками.Прошивка написана на C на Atmel Studio 7. (Я не использовал этот LCD на фото. Он оказался 4-строчным LCD, который я не хотел тратить в таком простом проекте) Схема цепи очень проста. Я старался не усложнять. Никаких причудливых катушек индуктивности, конденсаторов, антидребезга и т. д. Вот схема, построенная на макетной плате. Сначала протестировал DIP-переключатели со светодиодами… Затем, после долгих испытаний на прошивке, я подключил схему к ST-V + multi setup.Ах! Чуть не забыл упомянуть… Очевидно, St-V multi поставляется с новой прошивкой с автоматическим сбросом. Я подключил провод автосброса к ST-V mobo и подключил линию сброса мульти к моей схеме. При этом, когда я нажимаю кнопку для выбора игры, микроконтроллер устанавливает DIP-переключатель и отправляет сигнал сброса 100 мс на мульти. Затем мультиплеер сохраняет НИЗКИЙ уровень сброса ST-V во время перепрошивки игры, а когда перепрошивка завершается, игра отпускает линию сброса, и ST-V автоматически загружается.По сути, это именно мультиустановка CPS2. Больше никаких циклов питания или чего-то еще. Для тех, кто любит делать что-то самостоятельно, прилагаются схематическое изображение в высоком разрешении, файл проекта Atmel Studio 7 и настройки предохранителей. Наслаждайтесь!

Прошивка загрузчика Arduino в ATmega8 ~ electronicrepaired

Прошивка загрузчика Arduino в ATmega8

В этом видео я постарался полностью раскрыть все подробности по прошивке загрузчика ATmega8 своими руками, тем самым превратив устройство в бюджетную Arduino и саму Arduino в программирование для некоторых микроконтроллеров от компании Atmel.Прошивка осуществляется с помощью Arduino Pro Mini, но возможно программирование например с помощью Arduino Uno или Arduino Mega и других Ардуин…

Загрузка загрузчика Arduino в ATmega8A практически неотличима. Подключаем Arduino ATmega8 и как показано на картинке:

Вшиваем в ардуинку пример ArduinoISP превращаем нашу ардуинку в программатор, затем меняем тип программирования в Arduino IDE на Arduino as ISP и вшиваем загрузчик в ATmega8 (или ATmega8A) нажимая кнопку «Сохранить загрузчик», Arduino IDE тем самым записываем загрузчик (загрузчик, он же бутлоадер) к микроконтроллеру и выставить все необходимые фьюзы для работы на той или иной частоте.Например, нам нужен микроконтроллер, работающий на частоте 16 МГц с внешним источником тактовых сигналов (кварцевый резонатор) или внутренним источником тактовых сигналов (RC-цепочка) 8 МГц, или если нам нужно очень экономно потреблять ток даже 1 МГц, да , да, ATmega8 с загрузчиком Arduino может работать на этой частоте в очень широком диапазоне напряжений, если в калькуляторе фьюзов отключить или настроить Brown-out Detection (детектор низкого напряжения).

Ссылка на конструктор Bootloader`а для Arduino: http://homes-smart.ru/index.php/oborudovanie/arduino/avr-загрузчик. Все инструкции по добавлению новых профилей и новых микроконтроллеров в референсную карту пины ATmega8:

А вот моя клонированная китайская модель c Arduino Pro Mini:

Маленькая фотосессия:

Вот мой «программатор для ATmega8 Activity Kit Manual» собран на макетной плате:

А вот моя клонированная китайская модель c Arduino Pro Mini:

Страница не найдена — Confluence

Авторизоваться Перейти на боковую панель Перейти к основному содержанию Связанные приложения

Загрузка…

Слияние
  • Пространства
  • Нажмите Enter для поиска

  • Помощь
    • Онлайн помощь
    • Горячие клавиши
    • Конструктор каналов
    • Какие новости
    • Доступные гаджеты
    • О слиянии
  • Авторизоваться

    Мы не можем найти эту страницу.Это может быть потому что:

    • Страница не существует.
    • Страница существует, но у вас нет разрешения на просмотр этой области.

    Поиск по сайту

    Перейти к

    • Домашняя страница сайта
    • Ваша информационная панель
    • На платформе Atlassian Confluence 7.16.0
    • Напечатано Atlassian Confluence 7.16.0
    • Сообщить об ошибке
    • Новости Atlassian
    Атласиан .

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован.