Avrisp mkii своими руками: Россия напала на Украину!

Содержание

Россия напала на Украину!

Россия напала на Украину!

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

Всем нам, украинцам, россиянам и всему миру правительство России врало последние два месяца. Нам говорили, что войска на границе “проходят учения”, что “Россия никого не собирается захватывать”, “их уже отводят”, а мирное население Украины “просто смотрит пропаганду”. Мы очень хотели верить вам.

Но в ночь на 24-ое февраля Россия напала на Украину, и все самые худшие предсказания  стали нашей реальностью .

Киев, ул. Кошица 7а. 25.02.2022

 Это не 1941, это сегодня. Это сейчас. 
Больше 5 000 русских солдат убито в не своей и никому не нужной войне
Более 300 мирных украинских жителей погибли
Более 2 000 мирных людей ранено

Под Киевом горит нефтебаза – утро 27 февраля, 2022.

Нам искренне больно от ваших постов в соцсетях о том, что это “все сняли заранее” и “нарисовали”, но мы, к сожалению, вас понимаем.

Неделю назад никто из нас не поверил бы, что такое может произойти в 2022.

Метро Киева, Украина — с 25 февраля по сей день

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

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

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

ул. Лобановского 6а, Киев, Украина. 26.02.2022

Это дом в центре Киева, а не фото 11-го сентября. Еще неделю назад здесь была кофейня, отделение почты и курсы английского, и люди в этом доме жили свою обычную жизнь, как живете ее вы.

P.S. К сожалению, это не “фотошоп от Пентагона”, как вам говорят. И да, в этих квартирах находились люди.

«Это не война, а только спец. операция.»

Это война.

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

«Россия хочет только защитить ЛНР и ДНР.»

Это не так.

Все это время идет обстрел городов во всех областях Украины, вторые сутки украинские военные борются за Киев.

На карте Украины вы легко увидите, что Львов, Ивано-Франковск или Луцк – это больше 1,000 км от ЛНР и ДНР.
Это другой конец страны. 25 февраля, 2022 – места попадания ракет

25 февраля, 2022 – места попадания ракет «Мирных жителей это не коснется.»

Уже коснулось.

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

Больше 1,200 мирных людей ранены или погибли. Среди них много детей.
Под обстрелы уже попадали в детские садики и больницы.
Мы вынуждены ночевать на станциях метро, боясь обвалов наших домов.
Наши жены рожают здесь детей. Наши питомцы пугаются взрывов.

«У российских войск нет потерь.»

Ваши соотечественники гибнут тысячами.

Нет более мотивированной армии чем та, что сражается за свою землю.


Мы на своей земле, и мы даем жесткий отпор каждому, кто приходит к нам с оружием.

«В Украине – геноцид русскоязычного народа, а Россия его спасает.»

Большинство из тех, кто сейчас пишет вам это письмо, всю жизнь говорят на русском, живя в Украине.

Говорят в семье, с друзьями и на работе. Нас никогда и никак не притесняли.

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

«Украина во власти нацистов и их нужно уничтожить.»

Сейчас у власти президент, за которого проголосовало три четверти населения Украины на свободных выборах в 2019 году. Как у любой власти, у нас есть оппозиция. Но мы не избавляемся от неугодных, убивая их или пришивая им уголовные дела.

У нас нет места диктатуре, и мы показали это всему миру в 2013 году. Мы не боимся говорить вслух, и нам точно не нужна ваша помощь в этом вопросе.

Украинские семьи потеряли больше 1,377,000 родных, борясь с нацизмом во время Второй мировой. Мы никогда не выберем нацизм, фашизм или национализм, как наш путь. И нам не верится, что вы сами можете всерьез так думать.

«Украинцы это заслужили.»

Мы у себя дома, на своей земле.

Украина никогда за всю историю не нападала на Россию и не хотела вам зла. Ваши войска напали на наши мирные города. Если вы действительно считаете, что для этого есть оправдание – нам жаль.

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

Искренне ваш, Народ Украины

Программатор AVRISP mkII на базе AT90USB162 (часть I)


Клон программатора Atmel AVR MKII. В примере реализован только PDI интерфейс.

 

 Введение.

Возникла необходимость переделать ПТК Штрих-LIGHT-200 в АСПД Штрих-LIGHT-200. В процессе доработки, выяснилось, вместо привычной для Штриха ATMega128 с ISP интерфейсом, на борту была установлена ATXMega128A1 с PDI интерфейсом. Такого программатора в наличии не оказалось, соответственно варианта два: просить у коллег программатор прошить процессор, либо собрать программатор самостоятельно. Второй вариант показался сложнее — поэтому вполне очевидно, что мы выбрали именно его. За основу был взят AVRISP mkII на базе AT90USB162 для ATXMega128A1 предложенный коллегой Lion V на профсоюзе инженеров ККМ.  
 

 Сборка.  

Скажем честно – основной проблемой стала именно плата, сперва по привычке попытались сделать навесным монтажом, идея оказалась хоть и реализуемой, но трудоемкой. Поэтому решили воспользоваться советом коллеги и сделать плату самостоятельно, по технологии ЛУТ, на всякий случай — наш опыт по изготовлению платы. Плата получилась не эталонного качества, но нас даже это устроило. В архиве платы двух вариантов DIP и SMD, мы выбрали SMD вариант

Схема клона программатора Atmel AVR MKII на базе AT90USB162

Сборка схемы не представляет сложностей, кварцевый резонатор 8МГц берется с ОКА102, резисторы 75, 300 Ом, не нашли откуда снять — пришлось покупать. Конденсаторы на 22 пФ не нашли, установили 27 пФ. В качестве PDI разъема используется USB разъем с материнской платы, он как раз по габаритам подходит. Длина проводников PDI разъема должна быть как можно меньше, у нас она 5 см. 

 

 Установка внутреннего ПО (новый микроконтроллер AT90USB162).

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

Программировать будем программой Flip (второе название программатор DFU Flip), которую устанавливаем на компьютер.
Подключаем собранный программатор к USB, система обнаружит новое устройство «AT90USB162 DFU» .

На этом этапе Windows 7 все сделал самостоятельно, Windows 2000 запросил DFU драйверы, которые находятся в папке «Atmel Flip usb», после установки драйверов устройство определится уже без ошибок  и с другим названием «AT90USB162».


Запускаем программу Flip.   


Окно программы Flip

 

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


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

После выбора микроконтроллера указываем тип подключения и факт подключенного устройства, для этого щелкаем по иконке с картинкой USB кабеля, в открывшемся меню выбираем тип интерфейса – USB, после чего появляется окно предложением открыть соединение с подключенным устройством, соответственно выбираем вариант «Open». При удачном подключении в StatusBar появится надпись «USB ON»


Указываем программе тип подключения, в нашем случае USB.

Выбираем файл для загрузки, в нашем случае вариант под кварцевый резонатор 8 мГц «AVRISP-MKII (8 MHz).hex». Тут важное замечание программа Flip в принципе не видит пути Windows, а понимает только DOS пути, на практике это означает, что каталог с файлом прошивки должен находится в директории с именем не более 8 знаков и в имени директории не должно быть кириллицы.

Правильный путь для загрузки файла прошивки. Файл загрузится.

 


Неправильный путь для загрузки файла прошивки, в пути к файлу есть директория с кириллицей «ПО». Файл не загрузится.

 


Ошибка загрузки файла прошивки при неправильном пути к файлу.

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


Окно программы после успешной загрузки файла и удачного подключения по USB интерфейсу.

Устанавливаем «галочки» Erase, Program, Verify и нажимаем клавишу «Run», при успешном программировании все radiobutton отмеченные checkbox должны гореть зеленым. После прошивки выдергиваем и снова вставляем разъем USB программатора. С этого момента программа Flip больше не будет видеть микросхему AT90USB162, а программатор теперь будет определяться системой как LUFA AVRISP MkII Clone, при этом на программаторе горят два светодиода, в нашем случае красный и желтый.


После программирования программатор будет определяться системой как LUFA AVRISP MkII Clone.

Что бы программатор виделся системой корректно, необходимо установить AVR Studio из него подтянутся USB драйвера. Windows 7 находит драйвера автоматически, Windows 2000 драйвера надо указать вручную, которые лежат в папке с установленным AVR Studio (у нас такой вариант c:\Program Files (x86)\Atmel\Atmel USB Drivers\).

 

 Установка внутреннего ПО (ранее прошитый микроконтроллер AT90USB162).

После того, как микроконтроллер AT90USB162 будет прошит, для входа в программирование для работы с программой Flip необходима другая процедура.

— Подключаем плату через USB

— Замыкаем перемычку RESET на землю (24 нога на землю)

— Не снимая перемычки RESET, устанавливаем перемычку MOD (S1 замыкает 13 ножку на землю)

— Не снимая перемычки MOD, снимаем перемычку RESET (24 ногу отрываем от земли)

— Снимаем перемычку MOD (S1  в положение Normal, то есть 13 ножку отрываем от земли)

После этой процедуры в системе должно появиться устройство AT90USB162

и теперь снова будет работать программирование через USB с помощью программы DFU Flip. Если устройство AT90USB162 в Диспетчере Устройств не появилось, значит надо перепрошить bootloader.

 

 Файлы.

Два варианта печатных плат в формате LAY, DIP и SMD варианты.

Программа Flip (Version 3.4.7) для прошивки AT90USB162 по USB.

Прошивка для программатора  AT90USB162 8 МГц 

 

 

 Заключение.

Собранный программатор подключаем к плате Штрих-LIGHT-200, пытаемся прошить, и … ничего, AVR Studio выдает кучу предупреждений, но при этом отказывается шить плату. Материал по работе с программатором и разбором ошибок получился довольно громоздким, поэтому мы решили его выделить в отдельную часть.

USB программатор для AVR, аналог AVRISP mkII

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

  • Иметь интерфейс USB, а не устаревшие COM или LPT
  • Поддерживаться популярными программами
  • Поддерживать прошивку самых распространённых контроллеров
  • Прошивать с высокой скоростью

Конечно программатор можно и купить, но у Atmel к сожалению слишком неадекватные цены на средства программирования и отладки. В сети очень много схем различных программаторов, но как правило вышеизложенным требованиям они не удовлетворяют. Особенно это касается интерфейса подключения к компьютеру. Например у  USBasp интерфейс USB реализован программно, и гарантии что он будет работать на всех компьютерах нет. Так какой же программатор собрать? Я предлагаю аналог AVRISP mkII.

Клоном его назвать не поворачивается язык, уж слишком сильные схемотехнические различия между оригиналом и данным программатором. Аналог фирменного это очень хорошо, ведь фирменные программаторы поддерживаются AVR Studio и многим другим популярным софтом т.к. протокол обмена программы и программатора открыт. Открыт так же исходный код прошивки данного программатора. В будущем я планирую доработать его, добавив буфер и светодиод индикации активности.  Буфер нужен для того чтобы обезопасить микроконтроллер в случае если на выводы программирования попадёт повышенное напряжение или произойдет короткое замыкание. Буфер стоит копейки, а микроконтроллер далеко не самый дешевый. В данной схеме вся защита возложена на токоограничивающие резисторы, поставленные в разрыв линий программирования. Их можно и не ставить но безопасности ради я рекомендую. Вот собственно схема:

Впервые рисовал схему в Eagle так что сильно не пинать =) Рулезная вещица кстати!
С вывода UCAP можно снимать напряжение 3.3 вольта, через него запитан сам микроконтроллер. Это сделано для того, чтобы можно было безболезненно прошивать микроконтроллеры питающиеся от 3.3 вольт. У данного программатора  очень хорошо решена проблема «курицы и яйца». Обычно, чтоб сделать USB программатор вроде того же USBasp, сначала нужно найти другой программатор чтоб запрограммировать контроллер для будущего программатора. С этим программатором всё иначе. Туда уже зашит загрузчик который позволит обновить прошивку по USB при помощи утилиты от Atmel. Я к сожалению узнал об этом когда уже прошил контроллер другим программатором и эту возможность протестировать не удалось. Перемычка нужна видимо для управления загрузчиком. Для работы с программатором должны быть установлены драйвера. Как правило они ставятся вместе со студией. Если драйвера не нашлись то обновляем студию. Когда драйвера поставятся – можно шить. Список поддерживаемых контроллеров огромен, присутствует поддержка ATXmega (лично не проверял). Шьёт программатор быстро. Для эксперимента написал прогу которая занимает всю память контроллера Atmega32. Прошивка заняла 5 секунд, чтение примерно 2 секунды. Испытания проводились при тактировании контроллера от 16 Мгц. Это очень хорошие результаты, такого никогда не добиться на простейших пяти проводках или программаторе Громова. По сложности изготовления он примерно такой же как и два вышеупомянутых. Трудности могут возникнуть только с запайкой TQFP корпуса, да и они преодолимы. Я впервые за пол года накосячил в разводке платы пришлось допаять проводок:

Резисторы можно заюзать самые обычные выводные, но я что-то совсем обленился сверлить дырки и перешел на SMD монтаж. Кстати типоразмер 1206 можно паять обычным паяльником с тонким жалом. Просто нужно немного приноровится. Исправленная печатка прилагается и в случае чего можно её поправить как нужно. В дальнейших планах засунуть всё это дело в нормальный корпус и юзать в качестве основного программатора.

Прошивка (10 Кб). Загрузок: 542
Печатная плата (10 Кб). Загрузок: 602


Просмотров: 9234

USB AVRISP XPII программатор AVR ISP PDI, клон Atmel mkII

USB AVRISP XPII программатор AVR ISP PDI используется для программирования всех 8-разрядных микроконтроллеров с RISC-архитектурой серии AVR, которые имееют возможность внутрисхемного программирования (интерфейс ISP).
Также есть возможность программирования:

  • Flash и EEPROM памяти;
  • микроконтроллеров с интерфейсами PDI и TPI, включая UC3, Mega, SAM, Tiny, Xmega;
  • стоп битов (Lock Bit) и битов конфигурации (Fuses).

Внутрисхемный ISP программатор AVRISP XPII является полным аналогом программатора Atmel MKII.
Перед использованием программатора нужно установить на компьютер драйвера и программное обеспечение для работы с программатором. Драйвера и программное обеспечение поставляются на CD диске, который идет в комплекте поставки. Установочный файл находится в архиве AvrStudio418Setup.rar.
Программатор AVRISP XPII работает со средой разработки AVR Studio, начиная с версии 4.12 и более поздними версиями. Драйвер устанавливается вместе со средой разработки. Чем новее версия среды разработки, тем больше микроконтроллеров поддерживается программатором.
Программатор подключается к компьютеру с помощью кабеля USB тип A – USB тип B длиной 1 м. Программатор будет работать с USB по спецификации 1.1 на скорости 12 Мбит/с. Программатор может подключаться к USB портам со спецификацией 1.1, 2.0, 3.0. После подключения к компьютеру на плате программатора будет гореть красный светодиод индикации питания. После подключения программатора к компьютеру Ваша операционная система определит его как AVRISP mkII.
Каждый программатор USB AVRISP XPII имеет свой уникальный ID, что позволяет подключать к компьютеру несколько программаторов одновременно.
Программное обеспечение и драйвера работают с операционными системами Windows 2000/XP/2003/2008/Vista/7/8/8.1/10, как 32 разрядными, так и 64 разрядными.
В настройках программного обеспечения можно выбрать автоматический режим программирования, напряжение программирования 1,8 – 5,5 В, скорость программирования (частоту SCK) от 50 Гц до 8 МГц, байты сигнатуры, чтение/запись байта калибровки генератора, настроить виртуальный COM порт. USB AVRISP XPII не поддерживает программирование Flash или EEPROM на частоте ниже 2 кГц.
Для подключения программатора к ICSP разъемам и отладочным платам в комплекте поставки идет два кабеля: шлейф FC-10P – FC-10P – FC-6P длиной 220 мм и кабель BLS6 – 6 BLS1 длиной 85 мм. Первый пин на кабелях обозначен красным цветом.
После подключения программатора к к ICSP разъему и отладочной плате будет гореть зеленый светодиод индикации связи.
Распиновка коннектора FC-10P:

Распиновка коннектора FC-6P:

Распиновка кабеля BLS6 – 6 BLS1 идентична распиновке коннектора FC-6P.
В версии среды разработки AVR Studio 5 поддерживаются микроконтроллеры:
AVR Mega

  • AT90CAN128 AT90CAN32 AT90CAN64 AT90PWM1 AT90PWM161 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM81 AT90USB1286 AT90USB1287 AT90USB162 AT90USB646 AT90USB647 AT90USB82 ATA5702M322 ATA5782 ATA5790 ATA5790N ATA5795 ATA5831 ATA5832 ATA5833 ATA6285 ATA6286 ATA6612C ATA6613C ATA6614Q ATA6616C ATA6617C ATA664251 ATmega128 ATmega1280 ATmega1281 ATmega1284 ATmega1284P ATmega1284RFR2 ATmega128A ATmega128RFA1 ATmega128RFR2 ATmega16 ATmega162 ATmega164A ATmega164P ATmega164PA ATmega165A ATmega165P ATmega165PA ATmega168 ATmega168A ATmega168P ATmega168PA ATmega168PB ATmega169A ATmega169P ATmega169PA ATmega16A ATmega16HVA ATmega16HVB ATmega16HVBrevB ATmega16M1 ATmega16U2 ATmega16U4 ATmega2560 ATmega2561 ATmega2564RFR2 ATmega256RFR2 ATmega32 ATmega324A ATmega324P ATmega324PA ATmega325 ATmega3250 ATmega3250A ATmega3250P ATmega3250PA ATmega325A ATmega325P ATmega325PA ATmega328 ATmega328P ATmega329 ATmega3290 ATmega3290A ATmega3290P ATmega3290PA ATmega329A ATmega329P ATmega329PA ATmega32A ATmega32C1 ATmega32HVB ATmega32HVBrevB ATmega32M1 ATmega32U2 ATmega32U4 ATmega48 ATmega48A ATmega48P ATmega48PA ATmega48PB ATmega64 ATmega640 ATmega644 ATmega644A ATmega644P ATmega644PA ATmega644RFR2 ATmega645 ATmega6450 ATmega6450A ATmega6450P ATmega645A ATmega645P ATmega649 ATmega6490 ATmega6490A ATmega6490P ATmega649A ATmega649P ATmega64A ATmega64C1 ATmega64HVE2 ATmega64M1 ATmega64RFR2 ATmega8 ATmega8515 ATmega8535 ATmega88 ATmega88A ATmega88P ATmega88PA ATmega88PB ATmega8A ATmega8HVA ATmega8U2

AVR Tiny

  • ATtiny10 ATtiny13 ATtiny13A ATtiny1634 ATtiny167 ATtiny20 ATtiny2313 ATtiny2313A ATtiny24 ATtiny24A ATtiny25 ATtiny26 ATtiny261 ATtiny261A ATtiny4 ATtiny40 ATtiny4313 ATtiny43U ATtiny44 ATtiny441 ATtiny44A ATtiny45 ATtiny461 ATtiny461A ATtiny48 ATtiny5 ATtiny828 ATtiny84 ATtiny841 ATtiny84A ATtiny85 ATtiny861 ATtiny861A ATtiny87 ATtiny88 ATtiny9

AVR Xmega

  • ATxmega128A1 ATxmega128A1U ATxmega128A3 ATxmega128A3U ATxmega128A4U ATxmega128B1 ATxmega128B3 ATxmega128C3 ATxmega128D3 ATxmega128D4 ATxmega16A4 ATxmega16A4U ATxmega16C4 ATxmega16D4 ATxmega16E5 ATxmega192A3 ATxmega192A3U ATxmega192C3 ATxmega192D3 ATxmega256A3 ATxmega256A3B ATxmega256A3BU ATxmega256A3U ATxmega256C3 ATxmega256D3 ATxmega32A4 ATxmega32A4U ATxmega32C3 ATxmega32C4 ATxmega32D3 ATxmega32D4 ATxmega32E5 ATxmega384C3 ATxmega384D3 ATxmega64A1 ATxmega64A1U ATxmega64A3 ATxmega64A3U ATxmega64A4U ATxmega64B1 ATxmega64B3 ATxmega64C3 ATxmega64D3 ATxmega64D4 ATxmega8E5

В более новых версиях среды разработки AVR Studio поддерживаются больше микроконтроллеров.
На плате программатора есть ICSP разъем для внутрисхемного программирования микроконтроллера ATmega128A.
Питания программатора осуществляется от USB порта компьютера. Потребляемый ток составляет 200 мА.

Характеристики:

аналог программатора: Atmel MKII;
модель: AVRISP XPII;
микроконтроллер: ATmega128A;
поддерживаемые интерфейсы: ISP, PDI, TPI;
поддерживаемые микроконтроллеры: 8-разрядные с RISC-архитектурой серии AVR;
программирование памяти: Flash и EEPROM;
поддерживает программирование: Fuses и Lock Bit;
скорость программирования: до 8 МГц;
напряжение программирования: 1,8 – 5,5 В;
поддерживает USB: со спецификацией 1.1, 2.0, 3.0;
совместимые операционные системы: Windows 2000/XP/2003/2008/Vista/7/8/8.1/10, как 32-, так и 64-разрядные;
потребляемый ток: 200 мА;
габариты: 69 х 61 х 25 мм;
вес комплекта: 110 г.

Комплект поставки:

  • USB AVRISP XPII программатор AVR ISP PDI, клон Atmel mkII;
  • Кабель USB тип A – USB тип B;
  • Шлейф FC-10P – FC-10P – FC-6P;
  • Кабель BLS6 – 6 BLS1;
  • CD диск.

Руководство пользователя на английском языке.
Руководство пользователя на русском языке (перевод с сайта http://chip-nn.ru/).

Россия напала на Украину!

Россия напала на Украину!

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

Всем нам, украинцам, россиянам и всему миру правительство России врало последние два месяца. Нам говорили, что войска на границе “проходят учения”, что “Россия никого не собирается захватывать”, “их уже отводят”, а мирное население Украины “просто смотрит пропаганду”. Мы очень хотели верить вам.

Но в ночь на 24-ое февраля Россия напала на Украину, и все самые худшие предсказания  стали нашей реальностью .

Киев, ул. Кошица 7а. 25.02.2022

 Это не 1941, это сегодня. Это сейчас. 
Больше 5 000 русских солдат убито в не своей и никому не нужной войне
Более 300 мирных украинских жителей погибли
Более 2 000 мирных людей ранено

Под Киевом горит нефтебаза – утро 27 февраля, 2022.

Нам искренне больно от ваших постов в соцсетях о том, что это “все сняли заранее” и “нарисовали”, но мы, к сожалению, вас понимаем.

Неделю назад никто из нас не поверил бы, что такое может произойти в 2022.

Метро Киева, Украина — с 25 февраля по сей день

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

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

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

ул. Лобановского 6а, Киев, Украина. 26.02.2022

Это дом в центре Киева, а не фото 11-го сентября. Еще неделю назад здесь была кофейня, отделение почты и курсы английского, и люди в этом доме жили свою обычную жизнь, как живете ее вы.

P.S. К сожалению, это не “фотошоп от Пентагона”, как вам говорят. И да, в этих квартирах находились люди.

«Это не война, а только спец. операция.»

Это война.

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

«Россия хочет только защитить ЛНР и ДНР.»

Это не так.

Все это время идет обстрел городов во всех областях Украины, вторые сутки украинские военные борются за Киев.

На карте Украины вы легко увидите, что Львов, Ивано-Франковск или Луцк – это больше 1,000 км от ЛНР и ДНР. Это другой конец страны. 25 февраля, 2022 – места попадания ракет

25 февраля, 2022 – места попадания ракет «Мирных жителей это не коснется.»

Уже коснулось.

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

Больше 1,200 мирных людей ранены или погибли. Среди них много детей.
Под обстрелы уже попадали в детские садики и больницы.
Мы вынуждены ночевать на станциях метро, боясь обвалов наших домов.
Наши жены рожают здесь детей. Наши питомцы пугаются взрывов.

«У российских войск нет потерь.»

Ваши соотечественники гибнут тысячами.

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

«В Украине – геноцид русскоязычного народа, а Россия его спасает.»

Большинство из тех, кто сейчас пишет вам это письмо, всю жизнь говорят на русском, живя в Украине.

Говорят в семье, с друзьями и на работе. Нас никогда и никак не притесняли.

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

«Украина во власти нацистов и их нужно уничтожить.»

Сейчас у власти президент, за которого проголосовало три четверти населения Украины на свободных выборах в 2019 году. Как у любой власти, у нас есть оппозиция. Но мы не избавляемся от неугодных, убивая их или пришивая им уголовные дела.

У нас нет места диктатуре, и мы показали это всему миру в 2013 году. Мы не боимся говорить вслух, и нам точно не нужна ваша помощь в этом вопросе.

Украинские семьи потеряли больше 1,377,000 родных, борясь с нацизмом во время Второй мировой. Мы никогда не выберем нацизм, фашизм или национализм, как наш путь. И нам не верится, что вы сами можете всерьез так думать.

«Украинцы это заслужили.»

Мы у себя дома, на своей земле.

Украина никогда за всю историю не нападала на Россию и не хотела вам зла. Ваши войска напали на наши мирные города. Если вы действительно считаете, что для этого есть оправдание – нам жаль.

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

Искренне ваш, Народ Украины

Avrdude — консольная программа прошивки микроконтроллеров — IST Knowledge

Avrdude (AVR Downloader-Uploader) — бесплатная кросплатформенная программа, предназначенная для прошивания микроконтроллеров компании ATMEL. Поддерживает практически все имеющиеся официальные типы программаторов, а также некоторые сторонние программаторы.

Сайт программы: http://www.nongnu.org/avrdude/ Лицензия: GPL Операционная система: Кросплатформенный Особенностью программы Avrdude является то, что она имеет консольный интерфейс пользователя, что потребует от пользователя определенных навыков. Тем не менее для любителей графического интерфейса имеется ряд сторонних графических оболочек для этой программы. Хотя графический интерфейс является во многом удобным и предпочтительным, для выполнения повседневных однотипных задач все же лучше использовать программу из скриптов cmd, что будет рассмотрено в данном документе. Альтернативным способом прошивания микроконтроллеров являются встроенные средства, входящие в состав средств разработки, такие как AVR Studio. Но они удобны только в процессе разработки и отладки программ. Avrdude больше полезен в процессе серийного прошивания готовых изделий, т.к. не потребует для работы установки среды разработки, а для прошивки микроконтроллера достаточно только дважды щелкнуть мышью по заранее подготовленному ярлыку (естественно с указанными параметрами запуска программы).

Итак, для работы с программой потребуется:

  1. Установить программу;
  2. Разобраться с параметрами командной строки и сформировать команду запуска программы.

После чего программа готова к использованию.

Установка Avrdude

Avrdude входит в состав пакета WinAVR, поэтому установка сводится к установке данного пакета. Скачать WinAVR можно здесь: http://sourceforge.net/projects/winavr/. После установки пакета WinAVR можно запускать Avrdude, для чего откройте командную строку и выполните команду: avrdude После чего на экране вы должны увидеть краткую инструкцию команды:

Параметры программы

Синтаксис команды Avrdude: Avrdude [опции] Где [опции] задают параметры команды в формате -ключ_значение. Рассмотрим наиболее значимые опции команды.

Задаем тип микроконтроллера (-p)

Avrdude -p <partno>

где <partno> — тип микроконтроллера. Данная команда указывает какой тип микроконтроллера используется. Например, для микроконтроллера Atmega32 <partno> будет равен m32.

Задаем скорость порта для программатора (-b)

Avrdude -b <baudrate> 

где <baudrate> переопределяет скорость обмена данными с программатором по последовательному интерфейсу (относится не ко всем типам программаторов). Не рекомендуется изменять данный параметр без особых причин, т.к. программаторы обычно оптимизированы на скорость по умолчанию.

Задаем скорость обмера данными программатора с микроконтроллером (-B)

Avrdude -B <bitclock> 

где < bitclock> переопределяет скорость обмена данными программатора с микроконтроллером. Данный параметр может потребоваться если частота микроконтроллера слишком низкая и не позволяет производить программирование на скорости по умолчанию. В таком случае с помощью данного параметра скорость программирования может быть снижена.

Запрещаем автоматическую очистку памяти микроконтроллера перед прошиванием (-D)

Avrdude -D Если нам не нужно выполнять автоматическую очистку flash-памяти микроконтроллера, выполняемую перед ее прошиваением, то используем данную опцию.

Указываем порт, к которому подключен программатор (-P)

Avrdude -P <port> Указывается коммуникационный порт по которому к компьютеру подключен программатор. Среди возможных значений могут быть COM1 для последовательного интерфейса или LPT1 для параллельного или USB.

Отключение проверки сигнатуры микроконтроллера (-F)

Avrdude -F Опция отключает проверку сигнатуры микроконтроллера при прошивке. Не рекомендуется использовать данную опцию, т.к. проверка сигнатуры позволяет проверять тот ли тип микроконтроллера подключен, что мы предполагаем или нет.

Очистка микроконтроллера (-e)

Avrdude -e Производит очистку flash-памяти микроконтроллера. Данная операция производится автоматически при прошивании.

Манипуляции с памятью микроконтроллера (-U)

Avrdude -U <memtype>:r|w|v:<filename>[:format] Наиболее значимая опция команды, которая непосредственно отвечает за программирование микроконтроллера. Параметр memtype задает какой тип памяти будет затронут командой:

  • flash — флеш память микроконтроллера;
  • eeprom — энергонезависимая память микроконтроллера;
  • hfuse — старший байт фьюзов микроконтроллера;
  • lfuse —  младший байт фьюзов микроконтроллера;
  • efuse —  еще один байт фьюзов микроконтроллера (если поддерживается микроконтроллером).

Что сделать с памятью определяет следующий за memtype параметр через двоеточие, который обозначает запись в память (r), чтение содержимого памяти микроконтроллера и проверка памяти (v). Далее после двоеточего следует имя файла <filename> (можно полный путь с указанием диска в кавычках) куда следует сохранить или откуда надо загрузить содержимое памяти. Необязательный параметр format определяет формат файла, в котором хранится участок памяти. Наиболее типичным для flash памяти будет формат «Intel Hex», обозначаемый символом i. Таким образом, команда на запись в микроконтроллера прошивки, содержащейся в файле test.hex будет следующей: Avrdude -U flash:w:test.hex:i 

Команда на чтение содержимого энергонезависимой памяти микроконтроллера в файл  eedump.hex будет следующей:Avrdude -U eeprom:r:eedump.hex:i

Блокировать любую запись в микроконтроллер (-n)

Avrdude -n Опция заблокирует любые попытки записать что-либо в микроконтроллер. Может потребоваться если вы собираетесь попробовать выполнить команду, но пока в чем-то не уверены и хотите сначала ее проверить, т.к. боитесь, что испортите микроконтроллер.

Разрешение на изменение фьюзов (-u)

Avrdude -u Если вы собираетесь изменить фьюзы микроконтроллера, то необходимо подтвердить это намерение с помощью данной опции.

Открытие терминала программатора (-t)

Avrdude -t Данная опция позволяет работать с программатором в режиме терминала. Эта опция полезна для продвинутых пользователей.

Выключить автоматическую проверку записи (-V)

Avrdude -V Опция запрещает производить проверку данных при записи.

Задаем тип программатора (-c)

С помощью опции -c <programmer> возможен выбор одного из следующих программаторов:

2232HIOFT2232H based generic programmer
4232hFT4232H based generic programmer
89ispAtmel at89isp cable
abcminiABCmini Board, aka Dick Smith HOTCHIP
alfNightshade ALF-PgmAVR, http://nightshade.homeip.net/
arduinoArduino
arduino-ft232rArduino: FT232R connected to ISP
atispAT-ISP V1.1 programming cable for AVR-SDK1 from <http://micro-research.co.th/&gt;
avr109Atmel AppNote AVR109 Boot Loader
avr910Atmel Low Cost Serial Programmer
avr911Atmel AppNote AVR911 AVROSP
avrftdiFT2232D based generic programmer
avrispAtmel AVR ISP
avrisp2Atmel AVR ISP mkII
avrispmkIIAtmel AVR ISP mkII
avrispv2Atmel AVR ISP V2
bascomBascom SAMPLE programming cable
blasterAltera ByteBlaster
bsdBrian Dean’s Programmer, http://www.bsdhome.com/avrdude/
buspirateThe Bus Pirate
buspirate_bbThe Bus Pirate (bitbang interface, supports TPI)
butterflyAtmel Butterfly Development Board
butterfly_mkMikrokopter.de Butterfly
bwmegaBitWizard ftdi_atmega builtin programmer
c2n232iserial port banging, reset=dtr sck=!rts mosi=!txd miso=!cts
dapaDirect AVR Parallel Access cable
dasaserial port banging, reset=rts sck=dtr mosi=txd miso=cts
dasa3serial port banging, reset=!dtr sck=rts mosi=txd miso=cts
diecimilaalias for arduino-ft232r
dragon_dwAtmel AVR Dragon in debugWire mode
dragon_hvspAtmel AVR Dragon in HVSP mode
dragon_ispAtmel AVR Dragon in ISP mode
dragon_jtagAtmel AVR Dragon in JTAG mode
dragon_pdiAtmel AVR Dragon in PDI mode
dragon_ppAtmel AVR Dragon in PP mode
dt006Dontronics DT006
ere-isp-avrERE ISP-AVR <http://www.ere.co.th/download/sch050713.pdf&gt;
frank-stk200Frank STK200
ft232rFT232R Synchronous BitBang
ft245rFT245R Synchronous BitBang
futurlecFuturlec.com programming cable.
jtag1Atmel JTAG ICE (mkI)
jtag1slowAtmel JTAG ICE (mkI)
jtag2Atmel JTAG ICE mkII
jtag2avr32Atmel JTAG ICE mkII im AVR32 mode
jtag2dwAtmel JTAG ICE mkII in debugWire mode
jtag2fastAtmel JTAG ICE mkII
jtag2ispAtmel JTAG ICE mkII in ISP mode
jtag2pdiAtmel JTAG ICE mkII PDI mode
jtag2slowAtmel JTAG ICE mkII
jtag3Atmel AVR JTAGICE3 in JTAG mode
jtag3dwAtmel AVR JTAGICE3 in debugWIRE mode
jtag3ispAtmel AVR JTAGICE3 in ISP mode
jtag3pdiAtmel AVR JTAGICE3 in PDI mode
jtagkeyAmontec JTAGKey, JTAGKey-Tiny and JTAGKey2
jtagmkIAtmel JTAG ICE (mkI)
jtagmkIIAtmel JTAG ICE mkII
jtagmkII_avr32Atmel JTAG ICE mkII im AVR32 mode
lm3s811Luminary Micro LM3S811 Eval Board (Rev. A)
mib510Crossbow MIB510 programming board
mkbutterflyMikrokopter.de Butterfly
nibobeeNIBObee
o-linkO-Link, OpenJTAG from http://www.100ask.net
openmokoOpenmoko debug board (v3)
pavrJason Kyle’s pAVR Serial Programmer
pickit2MicroChip’s PICkit2 Programmer
picowebPicoweb Programming Cable, http://www.picoweb.net/
pony-stk200Pony Prog STK200
ponyserdesign ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts
siprogLancos SI-Prog <http://www.lancos.com/siprogsch.html&gt;
sp12Steve Bolt’s Programmer
stk200STK200
stk500Atmel STK500
stk500hvspAtmel STK500 V2 in high-voltage serial programming mode
stk500ppAtmel STK500 V2 in parallel programming mode
stk500v1Atmel STK500 Version 1.x firmware
stk500v2Atmel STK500 Version 2.x firmware
stk600Atmel STK600
stk600hvspAtmel STK600 in high-voltage serial programming mode
stk600ppAtmel STK600 in parallel programming mode
usbaspUSBasp, http://www.fischl.de/usbasp/
usbasp-cloneAny usbasp clone with correct VID/PID
usbtinyUSBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/
wiringWiring
xilXilinx JTAG cable

Пример команды: C:>avrdude -c avrisp ...

Скрипт для автоматической прошивки микроконтроллера

Для того, чтобы прошивка микроконтроллера производилась с помощью программы avrdude автоматически можно написать небольшой скрипт. Далее приведу небольшой пример, написанный для программатора AVR-JTAG-USB. К данному программатору можно обращаться через COM-порт, который создается при установке его драйвера, поэтому скрипт первым делом спрашивает номер порта, к которому подключен программатор, далее пытается с ним соединиться. Если не удается, то программа возвращается к выбору последовательного порта. Иначе производит прошивку платы.

set AVRDUDECMD="<путь к папке с avrdude>avrdude.exe"
set FIRMWARESOURCEDIR=<путь к папке с текущей прошивкой>
set FIRMWAREDIR=%TMP%firmware

:SELECTPORT
set /P port="Выберите номер порта COM"
echo %AVRDUDECMD%

echo Проверка подключения...
%AVRDUDECMD% -c jtagmkI -p m32 -P COM%port%
IF %ERRORLEVEL% EQU 9009 GOTO SELECTPORT

echo Удаляем временные файлы
rmdir /S /Q %FIRMWAREDIR%
echo Копируем прошивку во временную папку
mkdir %FIRMWAREDIR%
xcopy "%FIRMWARESOURCEDIR%*.*"  "%FIRMWAREDIR%"

echo Прошиваем микроконтроллер
@echo on
%AVRDUDECMD% -c jtagmkI -p m32 -P COM%port% -U flash:w:"%FIRMWAREDIR%firmware.>:m

Здесь указывается, что будет использован программатор AVR-JTAG-USB, микроконтроллер Atmega32, порт COM[номер порта вводится пользователем с клавиатуры]. В строке команды указываются значения фьюзов — hfuse=0x91 иlfuse=0xFF в шестнадцатиричном формате.
Значения фьюзов в шестнадцатиричном формате можно подобрать с помощью встроенных инструментов AVR-Studio, предназначенных для прошивания миктроконтроллеров.

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



Выберите номер порта COM2
"\centerПрошивки для платavrdudeavrdude.exe"
Проверка подключения...
avrdude.exe: jtagmkI_open(): failed to synchronize to ICE
avrdude.exe: jtagmkI_close(): unsupported baudrate -1

avrdude.exe done.  Thank you.

Удаляем временные файлы
Копируем прошивку во временную папку
\centerПрошивки для платМОС-Универсальныйrevision01.00version01.00MOS.hex
Скопировано файлов: 1.
Прошиваем микроконтроллер

C:WINDOWS>"\centerПрошивки для платavrdudeavrdude.exe" -c jtagmkI -p m32 -P COM2 -U flash:w:"C:DOCUME~1valeyevLOCALS~
1TempfirmwareMOS.hex":i -U hfuse:w:<0x91>:m -U lfuse:w:<0xFF>:m

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x1e9502
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "C:DOCUME~1valeyevLOCALS~1TempfirmwareMOS.hex"
avrdude.exe: writing flash (19104 bytes):

Writing | ################################################## | 100% 7.19s

avrdude.exe: 19104 bytes of flash written
avrdude.exe: verifying flash memory against C:DOCUME~1valeyevLOCALS~1TempfirmwareMOS.hex:
avrdude.exe: load data flash data from input file C:DOCUME~1valeyevLOCALS~1TempfirmwareMOS.hex:
avrdude.exe: input file C:DOCUME~1valeyevLOCALS~1TempfirmwareMOS.hex contains 19104 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 4.11s

avrdude.exe: verifying ...
avrdude.exe: 19104 bytes of flash verified
avrdude.exe: reading input file "<0x91>"
avrdude.exe: invalid byte value (<0x91>) specified for immediate mode
avrdude.exe: write to file '<0x91>' failed

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.

Для продолжения нажмите любую клавишу . . .

Понравилось это:

Нравится Загрузка...

Похожее

  • Микроконтроллеры AVR

Виды и устройство микроконтроллеров AVR

AVR – этo нaзвaниe пoпулярнoгo сeмeйствa микрoкoнтрoллeрoв, кoтoрoe выпускaeт кoмпaния Atmel. Крoмe AВР пoд сим брeндoм выпускaются микрoкoнтрoллeры и другиx aрxитeктур, нaпримeр, ARM и i8051.

Кaкими бывaют AVR микрoкoнтрoллeры?

Сущeствуeт три видa микрoкoнтрoллeрoв:

  1. AVR 8-bit.

  2. AVR 32-bit.

  3. AVR xMega

Сейчас читают

Сaмым пoпулярным ужe бoлee дeсяткa лeт являeтся имeннo 8-битнoe сeмeйствo микрoкoнтрoллeрoв. Мнoгиe рaдиoлюбитeли нaчинaли изучaть микрoкoнтрoллeры с нeгo. Пoчти всe oни пoзнaвaли планета прoгрaммируeмыx кoнтрoллeрoв дeлaя свoи прoстыe пoдeлки, врoдe свeтoдиoдныx мигaлoк, тeрмoмeтрoв, чaсoв, a тaкжe прoстoй aвтoмaтики, типa упрaвлeния oсвeщeниeм и нaгрeвaтeльными прибoрaми.

Микрoкoнтрoллeры AVR 8-bit в свoю oчeрeдь дeлятся нa двa пoпулярныx сeмeйствa:

  • Attiny – с нaзвaния виднo, чтo млaдшee (tiny – младой, мoлoдoй, младший), в основном имеют через 8 пинов и более. Тоннаж их памяти и функционал обыденно скромнее, чем в следующем;

  • Atmega – сильнее продвинутые микроконтроллеры, имеют большее метраж памяти, выводов и различных функциональных узлов;

Самым мощным подсемейством микроконтроллеров является xMega – сии микроконтроллеры выпускаются в корпусах с огромным счетом пинов, от 44 предварительно 100. Столько нельзя не для проектов с большим в количестве датчиков и исполнительных механизмов. Не беря в расчет того, увеличенный совокупность памяти и скорость работы позволяют почерпнуть высокое быстродействие.

Расшифровка: Пин (англ. pin – колючка, булавка) – сие вывод микроконтроллера или — или как говорят в народе – опора. Отсюда же термин «распиновка» — т.е. рэнкинг о назначении каждой изо ножек.

Для аюшки? нужны и на который способны микроконтроллеры?

Микроконтроллеры применяются чуть (было везде! Практически каждое склад в 21 веке работает для микроконтроллере: измерительные принадлежности, инструменты, бытовая мастерство, часы, игрушки, музыкальные шкатулки и открытки, а в свою очередь многое другое; одно чуть только перечисление займет одну крош страниц текста.

Построитель может использовать аналоговый (условный) знак подовая его в вход микроконтроллера и жонглировать с данными о его значении. Эту работу выполняет аналогово-числовой преобразователь (АЦП). Данная обязанности позволяет общаться пользователю с микроконтроллером, а как и воспринимать различные объем окружающего мира с через датчиков.

В распространенных AVR-микроконтроллерах, во, Atmega328, который получи и распишись 2017 году является сердцем многих платок Arduino, но о них после. Используется 8 канальный АЦП, с разрядностью 10 двоичная единица информации. Это значит вас сможете считать подтекст с 8 аналоговых датчиков. А к цифровым выводам подключаются цифровые датчики, какими судьбами может быть очевидным. Обаче цифровой сигнал может являться только 1 (единицей) тож (нулем), в то пора как аналоговый может приимать бесконечное множество значений.

Объяснение:

Разрядность – сие величина, которая характеризует штрих, точность и чувствительность аналогового входа. Красиво не совсем удобоваримо. Немного практики: 10 битный АЦП, отнести к числу аналоговую информацию с порта в 10 битах памяти, на иной манер говоря плавно изменяющийся числовой сигнал микроконтроллером распознается делать за скольких числовое значение ото до 1024.

12 битный АЦП видит оный же сигнал, а с более высокой точностью – в виде ото до 4096, а сие значит, что измеренные значения входного сигнала будут в 4 раза скорее. Чтобы понять чей взялись 1024 и 4096, беспритязательно возведите 2 в степени равную разрядности АЦП (2 в степени 10, в целях 10 разрядного и т.д.)

С целью управлять мощностью нагрузки к вашему распоряжению очищать ШИМ-каналы, их дозволительно задействовать, например, в (видах регулировки яркости, температуры, иль оборотов двигателя. В часть же 328 контроллере их 6.

В общем архитектура AVR микроконтроллера изображена получи схеме:

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

  • АЛУ – арифметико-логическое организм. Нужно для выполнения вычислении.

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

  • Прерывания – точно-то вроде перипетии которое возникает по части внутренним или внешним воздействиям для микроконтроллер – захлестывание таймера, внешнее прекращение с пина МК и т.д.

  • JTAG – интерфейс во (избежание внутрисхемного программирования минуя снятия микроконтроллера с платы.

  • Flash, ОЗУ, EEPROM – надежда памяти – программ, временных рабочих данных, долгосрочного хранения независимая через подачи питания к микроконтроллеру соразмерно порядку в названиях.

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

  • A/D (Analog/Digital) – АЦП, его задавание мы уже описали до этих пор.

  • WatchDogTime (Сторожевой регулятор выдержки времени) – независимый с микроконтроллера и даже его тактового генератора RC-хуй, который отсчитывает несомненный промежуток времени и формирует тревога сброса МК, на случай если тот работал, и пробуждения – разве тот был в режиме сна (энергосбережния). Его работу только и остается запретить, установив двоичная единица информации WDTE в 0.

Выходы микроконтроллера вдоволь слабые, имеется в виду ведь, что ток от них обычно впредь до 20-40 миллиампер, а хватит для розжига светодиода и LED-индикаторов. К более мощной нагрузки – необходимы усилители тока неужто напряжения, например, тетечка же транзисторы.

Точно нужно чтобы поднять меч изучение микроконтроллеров? 

Пользу кого начала нужно завести сам микроконтроллер. В роли первого микроконтроллера может (пре)бывать любой Attiny2313, Attiny85, Atmega328 и отдельные люди. Лучше выбирать ту марка, которая описана в уроках, соответственно которым вы будете разрабатывать.

Следующее что Вас нужно – программатор. Возлюбленный нужен для загрузки прошивки в воспоминания МК, самым дешевым и популярным прошел слух USBASP.

Немногим желаннее, но не меньше распространенный программатор AVRISP MKII, каковой можно сделать своими руками – с обычной платы Arduino

Не тот вариант – прошивать их посредством USB-UART переходник, кто обычно делается сверху одном из преобразователей: FT232RL, Ch440, PL2303 и CP2102.

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

  • ATmega8U2;

  • ATmega16U2;

  • ATmega32U2.

Одно всего делов «но» – в видеопамять микроконтроллера предварительно нужно запутать UART бутлоадер. Не по, для этого совершенно равно нужен программатор на AVR-микроконтроллеров.

Интересно: Bootloader – сие обычная программа ради микроконтроллера, только с необычной задачей – по прошествии его запуска (подключения к питания) дьявол ожидает какое-так время, что в него могут занять прошивку. Преимуществом такого метода – впору прошить любым USB-UART переходником, а они безбожно дешевы. Недостаток – век загружается прошивка.

Для того работы UART (RS-232) интерфейса в микроконтроллерах AVR выделен целенький регистр UDR (UART data register). UCSRA (настройки битов приемопередатчика RX, TX), UCSRB и UCSRС – подбор регистров отвечающие вслед за настройки интерфейса в целом.

В нежели можно писать программы?

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

Официальным IDE от Atmel является AVR Studio, которая держи 6 версии была переименована в Atmel studio. Симпатия поддерживает все микроконтроллеры AVR (8, 32, xMega), механически определяет команды и помогает зачислить, подсвечивает правильный синтаксис и многое другое. С её но помощью можно прошивать МК.

Самый распространённым является — C AVR, следовательно найдите самоучитель объединение нему, есть куча русскоязычных вариантов, а Водан из них — Хартов В.Я. «Микроконтроллеры AVR. Практикум для того начинающих».

Самый безыскуственный способ изучить AVR

Купите иначе говоря сделайте своими руками плату Arduino. Расчет ардуино разработан нарочно для учебных целей. Симпатия насчитывает десятки платок различных формами и в количестве контактов. Самое основание в ардуино – сие то что ваша милость покупаете не упрощенно микроконтроллера, а полноценную отладочную плату, распаянную сверху качественной текстолитовой печатной плате, покрытой маской и смонтированными SMD компонентами.

Самые распространенные – сие Arduino Nano и Arduino UNO, они за сути своей идентичны, ужель что «Нано» больше примерно в 3 раза нежели «Уно».

Порядочно фактов:

  • Ардуино может предрешаться стандартным языком – «C AVR»;

  • своим собственным – wiring;

  • стандартная условия для разработки – Arduino IDE;

  • интересах соединения с компьютером обильно лишь подключить USB сутаж к гнезду micro-USB возьми плате ардуино нано, поставить драйвера (скорее лишь это произойдет безотчетно, кроме случаев, нет-нет да и преобразователь на Ch440, у меня в Win 8.1 драйвера отнюдь не стали, пришлось списывать, но это без- заняло много времени.) после этого чего можно заделывать ваши «скетчи»;

  • «Скетчи» – сие название программ во (избежание ардуино.

Выводы

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

Лёка Бартош

Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте теплоснабжение умных гаджетов!

Записывайтесь в онлайн-заведение от GeekBrains:

Педфак Интернет вещей

Ваша милость сможете:

  • Изучить C, машины отладки и программирования микроконтроллеров;

  • Выудить опыт работы с реальными проектами, в команде и нестандартно;

  • Получить удостоверение и документ, подтверждающие полученные навыки.

Starter box для первых экспериментов в поднесение!

После прохождения курса в вашем портфолио короче: метостанция с функцией часов и встроенной игрой, распределенная погоняй устройств, устройства регулирования температуры (ПИД-балансир), устройство контроля влажности воздуха, строй умного полива растений, аппарат контроля протечки воды…

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

Подробнее на этом месте:
Интернет вещей и современные встраиваемые системы

Происхождение

Схема программатора AVR-ISP MKII — Electronics Projects Circuits

Микроконтроллеры AVR чаще всего используются для программирования программатора AVR-ISP MKII с последовательным интерфейсом ISP. Они дешевы и несложны. Однако эти программаторы утратили свою универсальность, потому что Atmel представила новые микроконтроллеры, запрограммированные с интерфейсами PDI и TPI.... Electronics Projects, AVR-ISP MKII Programmer Circuit "Проект avr, схема программатора," Дата 2019/08/04

Микроконтроллеры AVR чаще всего используются для программирования программатора AVR-ISP MKII с последовательным интерфейсом ISP.Они дешевы и несложны. Однако эти программаторы утратили свою универсальность, потому что Atmel представила новые микроконтроллеры, запрограммированные с интерфейсами PDI и TPI. Представленный в статье программатор универсален, он будет полезен как старым, так и новым AVR.

Этот программатор совместим с AVR-ISP mk.II и позволяет программировать все 8-битные микроконтроллеры AVR через интерфейсы ISP, PDI и TPI. Он работает с последней версией AVR Studio (, которую можно бесплатно загрузить с веб-сайта AVR ), компиляторами ImageCraft и Codevision AVR.

Его сердцем является микроконтроллер AT90USB162 с тактовой частотой 16 МГц кварцевого резонатора X1. Питание программатора загружается с USB-разъема ПК. Интерфейс USB также может питаться от программируемой схемы, которая включает перемычку JP1.

Список микроконтроллеров AVR в зависимости от типа интерфейса программирования

На стороне выхода программатор AVR-ISP MKII имеет специальный буфер, с помощью которого можно программировать микроконтроллеры, питаемые различным напряжением, при этом программируемый микроконтроллер может быть запитан программатором или напряжением программируемой системы.Выбор напряжения питания включает перемычку. Программатор общается с компьютером через интерфейс USB. Компьютер может работать под управлением Windows XP, Vista, 7.

Схема

AVR-ISP MKII

AVR-ISP MKII список микроконтроллеров avr


СПИСОК ССЫЛОК ДЛЯ ЗАГРУЗКИ ФАЙЛОВ (в формате TXT): LINKS-26170.zip

The Incredible Two-Header AVR Programmer

Если ваши самодельные работы склоняются к программированию, есть большая вероятность, что вы знакомы с микроконтроллерами AVR.Также есть большая вероятность, что вы, возможно, были сбиты с толку, когда прямо из ниоткуда Atmel (компания, разработавшая семейство AVR) изменила интерфейс внутрисистемного программирования (ISP) AVR с 10 контактов на 6 контактов. Хуже того, потрясающий программатор USB ISP от Atmel, AVRISP mkII, использует только современный 6-контактный интерфейс. Здесь нет устаревшей поддержки для вашего старого оборудования, связанного с AVR, ребята. Так что же делать бедному начинающему AVR-программисту?

Создать двухголовый программатор AVR с устаревшей поддержкой ISP.Это то что!

Чтобы вы не думали, что 10-контактные интерфейсы ISP ушли в прошлое, ознакомьтесь с фантастической линейкой продуктов от Olimex. 10-контактный интерфейс ISP жив и здоров, большое спасибо. Таким образом, программатор AVR, который может работать с современными Arduino 0010 Diecimila и Olimex AVR-MT, действительно будет универсальным инструментом.

AVRISP Два разъема

Программатор Atmel AVRISP mkII, модифицированный как для 6-контактного, так и для 10-контактного ISP.

Если у вас еще нет AVRISP mkII, вы можете приобрести его примерно за 36 долларов.Независимо от того, есть ли у вас уже Mark II или вы покупаете новый, для этого простого мода требуется всего одна недорогая деталь, позволяющая запрограммировать любой ISP AVR.

Мой Марк II разорен

Ух ты, какая ерунда. Atmel произвела несколько Mark II (в период с октября 2007 г. по январь 2008 г.), которые не могут программировать целевой ISP AVR. Если у вас есть один из этих капризных программаторов интернет-провайдера, спешите в Atmel за бесплатным выпуском обновления прошивки, который исправит ваш сломанный программатор. Теперь ваш Mark II должен работать.

Время: 1 час
Стоимость: 1,50 $
Сложность: Легко

Запчасти

шагов**

1. Загрузите указания по применению AVR042. См. стр. 5 для подключения нашего 10-контактного кабеля к 6-контактному разъему Mark II. ПРИМЕЧАНИЕ: Сеть изобилует неправильными соединениями проводки для 10-контактного интерфейса. Используйте это руководство по применению Atmel, и у вас не возникнет никаких проблем.

2. Аккуратно снимите пластиковую оболочку AVRISP mkII.Освободите два пластиковых ушка, которые удерживают печатную плату на месте, и вытащите плату из пластикового корпуса. Найдите 6-контактный разъем ISP и переверните плату. На нижней стороне этого 6-контактного разъема вы будете припаивать 10-контактный ленточный кабель. На нижней стороне контакт 1 обозначен квадратом.

3. Отрежьте один из разъемов ленточного кабеля IDC 2×5. Осторожно отделите каждый из десяти проводов; около одного дюйма длины будет делать. Зачистите, скрутите и залудите каждый провод.

4.ЭТОТ ШАГ КРИТИЧЕСКИ ВАЖЕН. Определите провод 1 ленточного кабеля IDC с 2 × 5 контактами. Это MOSI для 10-контактного ISP. Контакт 4 на 6-контактном интерфейсе Mark II — MOSI. Найдите этот контакт MOSI на нижней стороне 6-контактного интерфейса Mark II. ПОМНИТЕ, что 6-контактный интерфейс ПЕРЕВЕРНУТ. Убедитесь, что вы правильно расположили контакт 4, а затем припаяйте провод 1 к НИЖНЕЙ СТОРОНЕ 6-контактного интерфейса платы Mark II. Понятно? Прочтите этот шаг несколько раз, изучите схему Application Note, а затем выполните подключение.

5. Повторите тот же процесс идентификации для каждого из оставшихся 9 контактов 10-контактного интерфейса. Подключите провод 3 2×5-контактного ленточного кабеля IDC к земле. Кроме того, провода 4, 6, 8 и 10 — это , все подключены к контакту 6 6-контактного интерфейса Mark II. Это заземление (GND). Я использовал черный удлинительный провод, чтобы связать все провода GND вместе перед пайкой только удлинительного провода к контакту 6 GND Mark II.

Программатор AVRISP mk II

6.Проверьте все паяные соединения с помощью мультиметра, затем установите печатную плату в пластиковый корпус, протяните 6-контактный ленточный кабель и , 10-контактный ленточный кабель через прорезь в пластиковом корпусе Mark II и защелкните корпус. Вернуться вместе. Это жесткая посадка, но как только корпус защелкивается, это приятный мод.

7. Попробуйте запрограммировать AVR из БЕСПЛАТНОЙ среды AVR Studio 4.13 (сборка 528) с 10-контактным разъемом ISP на плате Olimex AVR-MT (или выберите другую 10-контактную плату разработчика ISP).Он должен работать без сбоев.

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

AVRISP используется

Модифицированный AVRISP mkII используется для программирования 10-контактной платы ISP Olimex.

Клон LUFA AVRISP MKII | Блуждающая собака

LUFA AVRISP MKII Клон

Так что это действительно должен быть пост, с которого он начинается.Я хотел написать что-нибудь о моем любимом программаторе AVR, клоне LUFA AVRISP MKII. LUFA (Lightweight USB Framework for AVRs) — это библиотека USB с открытым исходным кодом для AVR — микроконтроллеры ATMEL с поддержкой USB, а клон AVRISP MKII — один из проектов по умолчанию, который поставляется с библиотекой. AVRISP MKII — это физическая модель программатора, разработанная ATMEL. Проект LUFA AVRISP MKII можно использовать для создания самодельной эмуляции программатора на платах контроллеров, доступных для любителей.

История

Когда я начал программировать AVR, я (как и многие новички) купил и собрал Adafruit USBTinyISP.Это отличный маленький программатор, и он может стать хорошим (хотя и немного продвинутым) проектом для начала пайки. Я построил свой и смог заставить его работать. У меня было несколько проблем, но они были связаны с тем, что это был мой первый программатор, моя первая работа по пайке, моя первая схема микроконтроллера, к которой я его подключал, и т.д. возможные причины казались бесконечными. Я помню, как даже задавался вопросом, действительно ли ATTiny2313, поставляемый с программатором, был запрограммирован.С тех пор я видел множество тем на форумах, где похожие новички сталкивались с одними и теми же проблемами. Многие из них выкладывают фотографии своей пайки, в надежде, что кто-то найдет явную ошибку.

Поскольку программатор сделан на чипе AVR (что-то вроде курицы или яйца, если не покупать комплект), как только он заработал, я почти сразу начал думать о его расширении. Примерно в то же время Adafruit начала продавать коммутационную плату ATMega32u4. По сути, это микроконтроллер со встроенным USB, закрепленный на готовой к прототипу плате.Меня интересовали AVR и USB, поэтому приобрести один из них было несложно. Я быстро узнал о LUFA, так как 32u4 — это один из чипов, для которых предназначена LUFA (загрузчик AVR109 на плате Adafruit 32u4 был основан на версии от LUFA). Попробовав какое-то время портировать USBTinyISP на 32u4, я понял, что LUFA поставляется с проектом AVRISP! Я изменил make-файл, скомпилировал код и загрузил HEX-файл. Он загрузился, но как его подключить к моему AVR. Я искал вокруг, но не мог понять это.Я признаю, что документация для LUFA не совсем начальный уровень. Наконец, пока я искал что-то еще, я нашел это, в котором мне было сказано, как подключить аналогичную карту. Прочитав его, я понял, почему по нему так мало документации. Это было так прямолинейно! В основном вам нужно Power/Ground + SPI +/RESET. Ключ /RESET, который, я думаю, работает как ChipSelect для SPI. Все остальные сигналы имеют аппаратно выделенные контакты на чипах AVR, но контакт для подключения к / RESET основан на программном обеспечении.По умолчанию в коде, который я видел, был PB4, но его можно изменить с помощью make-файла #define (это еще одна причина, по которой он, вероятно, не слишком документирован).

Сейчас

Я больше не использую свой USBTinyISP. Он больше, громоздче и использует полноразмерный USB-кабель B. Программатор LUFA меньше по размеру, использует кабель, который у меня обычно есть, и он многозадачный (я могу использовать его для других проектов). Но основная причина его использования (особенно если я только начинала) заключается в том, что он мог бы сделать мой первый проект немного проще.Паять разъемы штифтов проще, чем компоненты с сквозными отверстиями, и когда вы закончите, есть множество способов опробовать (протестировать) 32u4, чтобы убедиться, что он работает. Каждый раз, когда я слышу на форуме вопрос о первом программаторе AVR, я пытаюсь проповедовать преимущества моего фаворита.

Я обновил свой программатор, создав «щит» для программирования из небольшого кусочка макетной платы и нескольких разъемов для сокетов (TODO: картинка здесь была бы выдающейся!). Это делает его очень простым в подключении и программировании.Я также пробовал другие USB-платы AVR (TODO: список плат здесь). У меня были некоторые проблемы с работой платы Teensy 2.0 (32u4) с программатором. Что странно, так как он так хорошо работает для меня в любом другом приложении.

Я создаю собственную версию документации LUFA AVRISP MKII Clone. Надеюсь, я смогу их улучшить (настоящая графика, более качественные описания, больше примеров досок).

Смотрите! Я же говорил, что склонен к блужданиям!

Нравится:

Нравится Загрузка...

Навигация по одной почте

Atmel AVR — документация PlatformIO v5.2

ATmega128/A

АТМЕГА128

16 МГц

128 КБ

4 КБ

ATmega1280

АТМЕГА1280

16 МГц

128 КБ

8 КБ

ATmega1281

АТМЕГА1281

16 МГц

128 КБ

8 КБ

ATmega1284

АТМЕГА1284

16 МГц

128 КБ

16КБ

ATmega1284P

АТМЕГА1284П

16 МГц

128 КБ

16КБ

ATmega16

АТМЕГА16

16 МГц

16КБ

1 КБ

ATmega164P/PA

АТМЕГА164П

16 МГц

16КБ

1 КБ

ATmega168/A

АТМЕГА168

16 МГц

16КБ

1 КБ

ATmega168P/PA

АТМЕГА168П

16 МГц

16КБ

1 КБ

ATmega2560

АТМЕГА2560

16 МГц

256 КБ

8 КБ

ATmega324A

АТМЕГА324А

16 МГц

32 КБ

2КБ

ATmega324P

АТМЕГА324П

16 МГц

32 КБ

2КБ

ATmega324PA

АТМЕГА324ПА

16 МГц

32 КБ

2КБ

ATmega328

АТМЕГА328

16 МГц

32 КБ

2КБ

ATmega328P/PA

АТМЕГА328П

16 МГц

32 КБ

2КБ

ATmega48/A

АТМЕГА48

16 МГц

4 КБ

512Б

ATmega48P/PA

АТМЕГА48П

16 МГц

4 КБ

512Б

ATmega644P/PA

АТМЕГА644П

16 МГц

64 КБ

4 КБ

ATmega8/A

АТМЕГА8

16 МГц

8 КБ

1 КБ

ATmega88/A

АТМЕГА88

16 МГц

8 КБ

1 КБ

ATmega88P/PA

АТМЕГА88П

16 МГц

8 КБ

1 КБ

ATtiny13

АТТИНИ13

9 МГц

1 КБ

64Б

ATtiny13A

АТТИНИ13А

9 МГц

1 КБ

64Б

Адафрут Блюфрут Микро

АТМЕГА32У4

8 МГц

28 КБ

2.50 КБ

Adafruit Circuit Playground Classic

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

Перо Adafruit 328P

АТМЕГА328П

8 МГц

31,50 КБ

2КБ

Adafruit Feather 32u4

АТМЕГА32У4

8 МГц

28 КБ

2.50 КБ

Адафрут Флора

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

Джемма Адафрут

ATTINY85

8 МГц

8 КБ

512Б

Adafruit ItsyBitsy 3V/8MHz

АТМЕГА32У4

8 МГц

28 КБ

2.50 КБ

Adafruit ItsyBitsy 5V/16MHz

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Адафрут Метро

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Брелок Adafruit Pro 3 В/12 МГц (FTDI)

АТМЕГА328П

12 МГц

28 КБ

2КБ

Брелок Adafruit Pro 3 В/12 МГц (USB)

АТМЕГА328П

12 МГц

28 КБ

2КБ

Брелок Adafruit Pro 5 В/16 МГц (FTDI)

АТМЕГА328П

16 МГц

28 КБ

2КБ

Брелок Adafruit Pro 5 В/16 МГц (USB)

АТМЕГА328П

16 МГц

28 КБ

2КБ

Брелок Adafruit 3 В/8 МГц

ATTINY85

8 МГц

8 КБ

512Б

Брелок Adafruit 5 В/16 МГц

ATTINY85

16 МГц

8 КБ

512Б

Алориум Хиндж

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Алориум Сно

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Алориум XLR8

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Anarduino MiniWireless

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Ардубой

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Комплект разработчика Arduboy

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Ардуино БТ ATmega168

АТМЕГА168

16 МГц

14 КБ

1 КБ

Ардуино БТ ATmega328

АТМЕГА328П

16 МГц

28 КБ

2КБ

Arduino Duemilanove или Diecimila ATmega168

АТМЕГА168

16 МГц

14 КБ

1 КБ

Arduino Duemilanove или Diecimila ATmega328

АТМЕГА328П

16 МГц

30 КБ

2КБ

Ардуино Эсплора

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

Ардуино Ethernet

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Ардуино Фио

АТМЕГА328П

8 МГц

30 КБ

2КБ

Ардуино промышленный 101

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

Ардуино Леонардо

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Ардуино Леонардо ETH

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Arduino LilyPad ATmega168

АТМЕГА168

8 МГц

14 КБ

1 КБ

Arduino LilyPad ATmega328

АТМЕГА328П

8 МГц

30 КБ

2КБ

Arduino LilyPad USB

АТМЕГА32У4

8 МГц

28 КБ

2.50 КБ

Ардуино Мега АДК

АТМЕГА2560

16 МГц

248 КБ

8 КБ

Arduino Mega или Mega 2560 ATmega1280

АТМЕГА1280

16 МГц

124 КБ

8 КБ

Arduino Mega или Mega 2560 ATmega2560 (Mega 2560)

АТМЕГА2560

16 МГц

248 КБ

8 КБ

Ардуино Микро

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

Ардуино Мини ATmega168

АТМЕГА168

16 МГц

14 КБ

1 КБ

Ардуино Мини ATmega328

АТМЕГА328П

16 МГц

28 КБ

2КБ

Arduino NG или старше ATmega168

АТМЕГА168

16 МГц

14 КБ

1 КБ

Arduino NG или старше ATmega8

АТМЕГА8

16 МГц

7КБ

1 КБ

Ардуино Нано ATmega168

АТМЕГА168

16 МГц

14 КБ

1 КБ

Ардуино Нано ATmega328

АТМЕГА328П

16 МГц

30 КБ

2КБ

Arduino Nano ATmega328 (новый загрузчик)

АТМЕГА328П

16 МГц

30 КБ

2КБ

Arduino Pro или Pro Mini ATmega168 (3.3 В, 8 МГц)

АТМЕГА168

8 МГц

14 КБ

1 КБ

Arduino Pro или Pro Mini ATmega168 (5 В, 16 МГц)

АТМЕГА168

16 МГц

14 КБ

1 КБ

Arduino Pro или Pro Mini ATmega328 (3,3 В, 8 МГц)

АТМЕГА328П

8 МГц

30 КБ

2КБ

Arduino Pro или Pro Mini ATmega328 (5 В, 16 МГц)

АТМЕГА328П

16 МГц

30 КБ

2КБ

Управление роботом Arduino

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

Двигатель робота Arduino

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Ардуино Уно

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Ардуино Юн

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

Ардуино Юн Мини

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

БК ЗУМ БТ-328

АТМЕГА328П

16 МГц

28 КБ

2КБ

BitWizard Raspduino

АТМЕГА328П

16 МГц

30 КБ

2КБ

Контроллино Макси

АТМЕГА2560

16 МГц

248 КБ

8 КБ

Автоматика Controllino Maxi

АТМЕГА2560

16 МГц

248 КБ

8 КБ

Контроллино Мега

АТМЕГА2560

16 МГц

248 КБ

8 КБ

Контролино Мини

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Digispark USB

ATTINY85

16 МГц

5,87 КБ

512Б

Энгдуино 3

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

EnviroDIY Поденка

АТМЕГА1284П

8 МГц

127 КБ

16КБ

FYSETC F6 V1.3

АТМЕГА2560

16 МГц

252 КБ

8 КБ

Универсальный ATtiny2313

АТТИНИ2313

8 МГц

2КБ

128Б

Универсальный ATtiny24

АТТИНИ24

8 МГц

2КБ

128Б

Универсальный ATtiny25

АТТИНИ25

8 МГц

2КБ

128Б

Универсальный ATtiny4313

АТТИНИ4313

8 МГц

4 КБ

256Б

Универсальный ATtiny44

АТТИНИ44

8 МГц

4 КБ

256Б

Универсальный ATtiny45

АТТИНИ45

8 МГц

4 КБ

256Б

Универсальный ATtiny84

ATTINY84

8 МГц

8 КБ

512Б

Универсальный ATtiny85

ATTINY85

8 МГц

8 КБ

512Б

Светло-голубая фасоль

АТМЕГА328П

8 МГц

31.50 КБ

2КБ

Светло-голубая фасоль+

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Освещение

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

Линино Один

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

LinkIt Smart 7688 Duo

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

LoRa32u4II (868–915 МГц)

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

LowPowerLab MightyHat

АТМЕГА328П

16 МГц

31 КБ

2КБ

LowPowerLab Moteino

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

LowPowerLab Moteino (8 МГц)

АТМЕГА328П

8 МГц

31,50 КБ

2КБ

LowPowerLab MoteinoMEGA

АТМЕГА1284П

16 МГц

127 КБ

16КБ

Ядро Microduino ([email protected], 5 В)

АТМЕГА168П

16 МГц

15.50 КБ

1 КБ

Ядро Microduino ([email protected], 3,3 В)

АТМЕГА168П

8 МГц

15,50 КБ

1 КБ

Ядро Microduino ([email protected],5V)

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

Ядро Microduino ([email protected],3.3В)

АТМЕГА328П

8 МГц

31,50 КБ

2КБ

Microduino Core USB ([email protected], 5V)

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Microduino Core+ ([email protected], 5V)

АТМЕГА1284П

16 МГц

127 КБ

16КБ

Microduino Core+ ([email protected],3.3В)

АТМЕГА1284П

8 МГц

127 КБ

16КБ

Microduino Core+ ([email protected], 5V)

АТМЕГА644П

16 МГц

63 КБ

4 КБ

Microduino Core+ ([email protected], 3,3 В)

АТМЕГА644П

8 МГц

63 КБ

4 КБ

OpenEnergyMonitor emonPi

АТМЕГА328П

16 МГц

30 КБ

2КБ

Оригинал Prusa i3 MK3 Мультиматериал 2.0 Обновление

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

PanStamp AVR

АТМЕГА328П

8 МГц

31,50 КБ

2КБ

Pololu A-Star 32U4

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

Пруса РАМБо

АТМЕГА2560

16 МГц

252 КБ

8 КБ

Квиркбот

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

Смесь RedBearLab

АТМЕГА32У4

16 МГц

28 КБ

2.50 КБ

RedBearLab Blend Micro 3,3 В/16 МГц (разгон)

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

RedBearLab Blend Micro 3,3 В/8 МГц

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

RepRap RAMBo

АТМЕГА2560

16 МГц

252 КБ

8 КБ

SODAQ GaLoRa

АТМЕГА1284П

8 МГц

127 КБ

16КБ

СОДАК Мбили

АТМЕГА1284П

8 МГц

127 КБ

16КБ

СОДАК Мойя

АТМЕГА328П

8 МГц

31.50 КБ

2КБ

СОДАК Ндого

АТМЕГА1284П

8 МГц

127 КБ

16КБ

СОДАК Тату

АТМЕГА1284П

8 МГц

127 КБ

16КБ

Sanguino ATmega1284p (16 МГц)

АТМЕГА1284П

16 МГц

127 КБ

16КБ

Sanguino ATmega1284p (8 МГц)

АТМЕГА1284П

8 МГц

127 КБ

16КБ

Sanguino ATmega644 или ATmega644A (16 МГц)

АТМЕГА644

16 МГц

63 КБ

4 КБ

Sanguino ATmega644 или ATmega644A (8 МГц)

АТМЕГА644

8 МГц

63 КБ

4 КБ

Sanguino ATmega644P или ATmega644PA (16 МГц)

АТМЕГА644П

16 МГц

63 КБ

4 КБ

Sanguino ATmega644P или ATmega644PA (8 МГц)

АТМЕГА644П

8 МГц

63 КБ

4 КБ

Зеэдуино

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Плата разработки SparkFun ATmega128RFA1

АТМЕГА128РФА1

16 МГц

124 КБ

16КБ

Цифровая песочница SparkFun

АТМЕГА328П

8 МГц

31,50 КБ

2КБ

SparkFun Fio V3 3.3 В/8 МГц

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

SparkFun Макей Макей

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

SparkFun Mega Pro 3,3 В/8 МГц

АТМЕГА2560

8 МГц

252 КБ

8 КБ

SparkFun Mega Pro 5 В/16 МГц

АТМЕГА2560

16 МГц

248 КБ

8 КБ

SparkFun Mega Pro Mini 3.3В

АТМЕГА2560

8 МГц

252 КБ

8 КБ

SparkFun MicroView

АТМЕГА328П

16 МГц

31,50 КБ

2КБ

SparkFun Pro Micro 3,3 В/8 МГц

АТМЕГА32У4

8 МГц

28 КБ

2.50 КБ

SparkFun Pro Micro 5 В/16 МГц

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

SparkFun Qduino Mini

АТМЕГА32У4

8 МГц

28 КБ

2,50 КБ

SparkFun RedBoard

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Последовательный 7-сегментный дисплей SparkFun

АТМЕГА328П

8 МГц

31,50 КБ

2КБ

SpellFoundry Sleepy Pi 2

АТМЕГА328П

8 МГц

30 КБ

2КБ

Узел Talk2 Whisper

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Вещи Uno

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Плата процессора TinyCircuits TinyDuino

АТМЕГА328П

8 МГц

30 КБ

2КБ

Мини-процессор TinyCircuits TinyLily

АТМЕГА328П

8 МГц

30 КБ

2КБ

USB-накопитель

АТМЕГА8

12 МГц

8 КБ

1 КБ

Wicked Device WildFire V2

АТМЕГА1284П

16 МГц

120.00КБ

16КБ

Wicked Device WildFire V3

АТМЕГА1284П

16 МГц

127 КБ

16КБ

футаДуино

АТМЕГА32У4

16 МГц

28 КБ

2,50 КБ

Кодирующий бот nicai-systems BOB3

АТМЕГА88

8 МГц

8 КБ

1 КБ

Робот nicai-systems NIBO 2

АТМЕГА128

16 МГц

128 КБ

4 КБ

nicai-systems NIBO Burger Robot

АТМЕГА16

15 МГц

16КБ

1 КБ

Робот-бургер nicai-systems NIBO с набором для настройки

АТМЕГА1284П

20 МГц

128 КБ

16КБ

Робот nicai-systems NIBObee

АТМЕГА16

15 МГц

16КБ

1 КБ

Робот nicai-systems NIBObee с набором для настройки

АТМЕГА1284П

20 МГц

128 КБ

16КБ

ubIQio Ardhat

АТМЕГА328П

16 МГц

31.50 КБ

2КБ

Автономный программатор Raspberry Pi — Learn.sparkfun.com

Избранное Любимый 10

Введение

Используя мощь Raspberry Pi, Python, avrdude, специальной HAT с кабельным адаптером, мы разработали собственное программирование AVR, которое оказалось чертовски надежным. В дополнение к созданию автономного решения, это был отличный эксперимент, чтобы узнать больше о запуске Raspberry Pi «без головы», автоматическом запуске модулей Python при загрузке, управлении файлами, анализе файлов, общем управлении GPIO с использованием встроенного SPI. оборудование на Raspberry Pi и даже некоторое преобразование логического уровня.

Если вы хотите создать свой собственный «безголовый» программатор AVR, все файлы дизайна оборудования и код размещены на GitHub здесь:

Репозиторий Github для программатора SparkFun Pi AVR

История фиксации многое говорит об этой истории, но это руководство заполняет некоторые пробелы и включает более общую информацию, полезную за пределами нашего конкретного приложения.

Фон

За последние 10 с лишним лет мы использовали программатор под названием AVR ISP MKII в SparkFun Production.Он сослужил нам хорошую службу, но из-за пары болевых точек и, наконец, уведомления об окончании срока службы пришло время обновиться.

На первый взгляд можно подумать: "Хорошо, а какой последний программатор от ATMEL? А нельзя ли просто поменять их на старые?" С нашими нынешними методами программирования это оказалось немного сложнее. Кроме того, мы много программируем AVR в SparkFun для более чем 50 продуктов, так что на самом деле проблема была довольно серьезной и требовала надежного и долгосрочного решения.

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

С программистами MKII у нас были два доступных варианта: использовать графический интерфейс (AVR Studio) или делать все это в командной строке. Как только вы узнаете свои команды, вы можете поместить их в пакетный файл, и технический специалист может просто дважды щелкнуть пакетный файл, чтобы начать программирование — вау!! Вот как мы сделали это навсегда.

(Oldschool Memory Lane Side Note) Ну, на самом деле, как только я пришел на борт в 2007 году, мы вручную вырезали и вставляли команды из текстовых файлов в наше окно командной строки и читали весь вывод, чтобы найти «Flash Verified ." Дэн, какая боль. Я помню, как подумал: «Должен быть лучший способ!». Затем я сошел с ума по пакетным файлам, а три года спустя сделал довольно шаткое групповое программирование своими руками. Посмотрите на этого зверя:

Вы также можете ознакомиться с развитием методов тестирования здесь:

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

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

Автономное решение для программирования чипов AVR всегда было моей мечтой.Если бы существовало готовое решение (похожее на PICkit3 для PIC), то мы, вероятно, мигрировали бы раньше. Но не было, поэтому мы продолжали использовать MKII. С повседневными делами и появлением множества новых продуктов трудно найти время для таких проектов. И именно это решение (известное здесь как Pi_Grammer) было моим проектом в течение почти двух лет.

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

Болевые точки с AVR ISP MKII

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

Моя команда и я известны здесь, в SparkFun, как отдел контроля качества. Одной из наших обязанностей является проектирование, изготовление, документирование и техническое обслуживание испытательного оборудования для производства. Это включает в себя не только тестовые приспособления, которые мы разрабатываем, но также включает в себя проверку того, что их настольные компьютеры с Windows работают и имеют обновленные (или взломанные и работающие) драйверы для всех наших потребностей в тестировании.

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

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

Зная это, становится ясно, что любая проблема, возникающая в процессе производства, причиняет много боли QC.

Основные болевые точки были следующие:

  • Драйверы — обновления Windows конфликтуют с драйверами устройств. Слишком часто мы видели следующее сообщение в наших пакетных файлах программирования:

    .

    Причиной этого обычно был тот факт, что Windows выполняла автоматическое обновление в выходные дни, а затем в понедельник утром приходил технический специалист, чтобы увидеть этот сбой в своем пакетном файле.ФУ!

    В качестве примечания: последним обходным решением, которое позволило нам использовать MKII в Windows 7, был отличный небольшой инструмент под названием Zadig. Я рекомендую проверить это, если вам нужно заставить ваш компьютер использовать чертов драйвер, который вы точно хотите:

    Zadig — простая установка USB-драйвера
  • Версии AVR Studio — Новые версии AVR Studio конфликтуют со старыми версиями. Мы начали использовать Atmel ICE для некоторого программирования чипов SAMD21, и для этого нужна последняя версия AVR Studio 6 или 7 (которая поставляется с новой программой под названием « ATPROGRAM »). Все наши старые пакетные файлы называются « STK500».exe », так что это была проблема. На компьютере каждого технического специалиста начались танцы относительно того, какую версию они установили, в каком порядке они были установлены и какая «фактическая» деинсталляция произошла правильно. Никакого удовольствия.

  • Износ ленточных кабелей — ленточные кабели не подключаются после слишком большого количества циклов. Ленточные кабели отлично подходят для 20, 30, 50? циклов, но по прошествии стольких лет эти соединения без пайки, как лезвия бритвы, ослабевают и больше не соединяются.

  • Внутренние серверы не работают . Последнее случалось довольно редко, но иногда наши внутренние серверы отключались, и пакетные файлы не запускались, потому что не было доступа к шестнадцатеричному файлу, размещенному в сети.

Решение: автономные программаторы AVR

Как избавиться от всех этих проблем навсегда? Сделайте новое решение собственными силами и полностью автономным! Больше никаких автоматических обновлений!

Первая попытка — программирование между чипами

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

Это первое, с чем я столкнулся:

Учебник Adafruit по программированию автономных микросхем AVR

Я обнаружил, что некоторые из наших объединенных шестнадцатеричных файлов не помещаются во флэш-память.Кроме того, процесс получения шестнадцатеричных данных в массив и в скомпилированный код, который живет в программаторе, был немного утомительным. В любом случае, я прыгнул в эту кроличью нору и подумал, что это будет решением для RedBoard Programming. Это был зверь из двенадцати за раз, который я придумал:

.

Мое приспособление для программирования Redboard по 12 штук готово на 99%. Я не могу дождаться, чтобы отправить его в дикую природу завтра утром! pic.twitter.com/2BkhlOFp3p

— QCPete (@qcpete) 14 октября 2015 г.

Ух ты, с ума сойти, что это было в октябре 2015 года.Упс, время пролетело!

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

Вход в Raspberry Pi — программирование через GPIO

Изучив вариант программирования между чипами и обнаружив, что он не подходит для нашего приложения, мы искали другое решение. На этот раз мы задались вопросом, сможет ли Raspberry Pi справиться с этой задачей. Быстрый поиск в Интернете привел нас к отличному руководству от Adafruit, в котором используется GPIO для «битового» программирования на чипах AVR.

Учебник Adafruit: запрограммируйте AVR или Arduino с помощью Raspberry Pi GPIO

Мы довольно быстро все запустили.В восторге! Сделали специальную шляпу, чтобы мы могли запускать ее без головы, и начали перенос некоторых процедур программирования комплекта. Немного медленнее, чем MKII, но он был полностью автономным и очень надежным — я в деле!

Мой последний проект @Raspberry_Pi: автономное программирование AVR @sparkfun. 3 живут в производстве. Осталось всего 100 🙂 pic.twitter.com/6ci5N5gcCI

— QCPete (@qcpete) 6 сентября 2016 г.

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

Глядя в прицел, я увидел, что тактовый сигнал летит на частоте 84К. Это приводило к некоторому времени программирования около 4 или 5 секунд, а затем к дополнительным 4-5 секундам для проверки. К сожалению, это не сработало в продакшене, и нам нужно было найти более быстрое решение.

Жажда скорости — Аппаратный SPI

В поисках более быстрых решений мы нашли еще одно руководство по использованию оборудования SPI на Raspberry Pi.

Кевин Кузнер: Raspberry Pi как программист AVR

Круто.Это должно сработать. Ну, также обнаружил, что вам нужно также открыть аппаратное обеспечение SPI на Pi. Посмотрите этот урок ниже, чтобы узнать, как это сделать. Спасибо Байрон!

Учебник SparkFun по Raspberry Pi SPI и I2C

Благодаря этому новому методу программирования через аппаратный SPI мы смогли добиться гораздо более высоких скоростей программирования. На самом деле нам нужно было только до 2 МГц для большинства наших чипов (рекомендуется менее 1/4 тактовой частоты).

Увидев некоторое странное поведение тактовых частот, мы обнаружили, что эта статья хорошо объясняет это и показывает все доступные скорости:

Документация Raspberry Pi: SPI

РЦ.LOCAL + Python + HAT = Операция без головы!

RC.МЕСТНЫЙ

Быстрая модификация rc.local для вызова Python при загрузке означает, что мы можем запускать эту штуку без головы. Ваху!

  язык: Баш
#!/бин/ш -е
# rc.local
# Этот сценарий выполняется в конце каждого многопользовательского уровня выполнения.
# Убедитесь, что скрипт "выйдет из 0" в случае успеха или любой другой
# значение при ошибке.
# Чтобы включить или отключить этот скрипт, просто измените выполнение
# бит.
# По умолчанию этот скрипт ничего не делает.# Распечатать IP-адрес
_IP=$(имя хоста -I) || истинный
если [ "$_IP" ]; тогда
  printf "Мой IP-адрес: %s\n" "$_IP"
фи
питон /home/pi/test.py &
выход 0
  

Скрипт Python

Обратите внимание на самую важную строку здесь:

  язык: Баш
питон /home/pi/test.py &
  

И не забывайте, что " & " и конец команды - это действительно позволит вашему pi продолжить загрузку и запустить ОС!

Test.py в основном ждет нажатия «кнопки» для включения программирования ( pi_program.ш ). В этом случае на самом деле это микросхема capsense, которая отправляет HIGH/LOW на GPIO на пи. Чтобы прочитать весь test.py , вы можете проверить его в репозитории здесь:

Репозиторий Pi-Grammer на GitHub: test.py

А файл pi_program.sh — это, по сути, единственный вызов avrdude для фактического программирования. На большинстве наших производственных машин он выглядит примерно так:

  язык: Баш
#запрограммировать flash и lock биты
sudo avrdude -p $DEVICE -C /home/pi/avrdude_gpio.conf -c linuxspi -P /dev/spidev0.0 -b 2000000 -D -v -u -U flash:w:$firmware:i -u -U lock:w:$LOCK:m 2>/home/pi/ flash_results.txt
  
Репозиторий Pi-Grammer на GitHub: pi_program.sh

Pi_Grammer HAT

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

Анализ выходных данных из avrdude с Python

Для того, чтобы мигать этими прекрасными новыми светодиодами на HAT, нам понадобится модуль Python, который сможет анализировать вывод avrdude и мигать светодиодом успеха или неудачи по мере необходимости.О человек, Какой сон! Python делает это так просто.

Немного предыстории синтаксического анализа

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

Это то, что мы добавили в наши пакетные файлы много лет назад. Используя наши старые пакетные файлы, мы анализировали «токены», возвращенные с stk500.exe и код загадочный. Вот как может выглядеть типичный командный файл:

  язык: Баш
FOR /F "tokens=*" %%i IN ('"%step1%"') DO (
if "%%i" == "Фьюз-биты успешно проверены" echo Успех на %$step1%
) & (
if "%%i" == "Целевое напряжение находится в пределах 5%% от желаемого значения" (эхо целевого напряжения в норме)
) & (
if "%%i" == "Заданное напряжение НЕ находится в пределах 5%% от желаемого значения" (эхо %%i) и перейти в меню
) & (
if "%%i" == "ВНИМАНИЕ! Одна или несколько операций завершились неудачно! Пожалуйста, проверьте выходной журнал выше!" (эхо не удалось на %$step1%) и перейти в меню
) & (
если "%%i" == "Не удалось подключиться к STK500 V2 через USB" (эхо %%i) и перейти в меню
) & (
если "%%i" == "Не удалось подключиться к AVRISP mkII через USB" (эхо %%i) и перейти в МЕНЮ
)
  

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

  язык: питон
# стереть, а затем записать биты FUSE
sudo avrdude -p $DEVICE -C /home/pi/avrdude_gpio.conf -c linuxspi -P /dev/spidev0.0 -b 125000 -D -v -e -u -U hfuse:w:$HIGH_FUSE:m -u -U lfuse:w:$LOW_FUSE:m -u -U efuse:w:$EXT_FUSE:m 2>/home/pi/fuse_results.txt
  

Обратите внимание на небольшой трюк с использованием " 2> ":

  язык: питон
2>/home/pi/fuse_results.txt
  

На самом деле здесь вся отладочная информация от avrdude сохраняется в текстовом файле.

Наконец, мы можем выполнить синтаксический анализ текстового файла в Python следующим образом:

  язык: питон
f = открыть ('/home/pi/fuse_results.txt', 'r')
    для строки в f:
            если в строке 'avrdude: 1 байт hfuse проверено':
                    линия печати
                    hfuse = Истина
            elif 'avrdude: 1 байт lfuse проверено' в строке:
                    линия печати
                    lfuse = Истина
            elif 'avrdude: проверено 1 байт efuse' в строке:
                    линия печати
                    излияние = Истина
            elif 'avrdude: устройство AVR не отвечает' в строке:
                    линия печати
ф.близко()
  

Так чище! Спасибо, Питон!

Чтобы узнать больше об обработке файлов, вот отличный учебник, который помог нам начать работу:

Python для начинающих: работа с файлами

Самое прекрасное в Python то, что все, что вы хотите сделать, обычно находится на расстоянии поиска в Google. Удивительно, насколько велика поддержка инструментов Python. В паре с безголовым пи, и нет предела возможностям!

Лучше перестраховаться, чем сожалеть

Логические уровни

В какой-то момент во время моего исследования я прочитал, что аппаратные контакты SPI на Raspberry Pi никогда не должны видеть логический уровень выше 3.3В. Ой! Я программировал цели 5V весь день.

Я решил, что лучше перестраховаться, чем потом сожалеть. И разве весь смысл моей конструкции не в том, чтобы быть надежным? Поэтому я какое-то время возился с конвертером TXB, но не смог заставить его работать. Я также пробовал двунаправленный преобразователь логических уровней, и он просто работал, поэтому я решил пойти по этому пути. В дизайн были добавлены несколько удобных перемычек, чтобы выбрать, откуда я хочу получить целевой логический уровень.

Перезапуск / завершение работы безголового пи с использованием Python

Еще одна вещь, которая возникла в этой конструкции HAT, заключалась в том, как правильно отключить Raspberry Pi из модуля Python.Ах да, это был просто еще один поиск Google:

  язык: питон
перезагрузка защиты ():
    command = "/usr/bin/sudo /sbin/shutdown -r сейчас"
    подпроцесс импорта
    процесс = подпроцесс.Popen(command.split(), stdout=subprocess.PIPE)
    вывод = процесс.общаться()[0]
    вывод на печать
  
Решения Ridge: Raspberry Pi — перезапустите / выключите ваш Pi из кода Python

Прочный соединительный кабель

Я также решил использовать специальную плату адаптера.Ленточные кабели на MKII всегда умирали, поэтому я хотел убедиться, что мы не увидим ни одной из этих проблем. Я пошел с соединительным кабелем 1x6 и специальной платой адаптера для соединения со стандартным разъемом для программирования AVR 2x3.

Это сработало очень хорошо, но по мере того, как масштабы расширялись, я все же пересмотрел это один раз. У V2 целевой VCC возвращался на 6-й контакт, так что это можно было использовать при настройке целевого логического уровня.

Эта добавленная функция на самом деле сопровождалась второй функцией, которую я не ожидал.Если вы соедините перемычкой как «целевой» VCC, так и один из перемычек, поставляемых Raspberry Pi (3,3 В или 5 В), вы можете подать питание на цель. Это было очень удобно для тех процедур программирования голых ИС. Теперь нашим техникам нужно подключить только один кабель для программирования и питания. Ваху!

Capsense для победы!

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

Во всех наших тестовых приспособлениях мы используем библиотеку capsense и два контакта ввода/вывода на Arduino для «считывания» площадки capsense. Вместо того, чтобы идти по этому пути на Raspberry Pi, я решил поместить специальную микросхему Capsense в HAT, а затем просто считывать ввод-вывод, как цифровой пин, для программирования.

Это прекрасно работало... до... чертова микросхема EOL. Эй!

Выяснилось, что только конкретный пакет микросхемы capsense стал EOL, и что производитель собирался продолжать выпускать уменьшенную версию микросхемы QFN.Итак, мы пересмотрели HAT, и все хорошо. Эта красивая корзина со шляпами прибыла на мой стол. Спасибо производство!!

Последним шагом было надеть эти шляпы на более чем 60 Raspberry Pi, стоящих на моем столе, и развернуть их в рабочей среде!

Извлеченные уроки — как новичок в Raspberry Pi

До этого я не использовал Raspberry Pi ни в одном проекте, и я был удивлен, насколько они классные! Мне потребовалось некоторое время, чтобы привыкнуть выполнять так много работы в командной строке (сначала права доступа к файлам были болезненными), но как только я начал набирать sudo перед всеми, я был готов к работе! Вот несколько советов, которые я бы порекомендовал любому новичку в Raspberry Pis.Есть так много всего, что нужно узнать, и обычно это можно сделать только с помощью поиска в Google. Я надеюсь, что они пригодятся.

  • Суперпользователь Do -- Используйте « sudo » перед каждой командой.

  • Pi GPIO -- управление/чтение GPIO в камнях питона. Ознакомьтесь с учебным пособием здесь.

  • «Пакетные» файлы — файлы « .sh » на Pi похожи на файлы « .bat » в MSDOS.

  • Полезная команда -- " sudo killall python " очень удобна." sudo killall avrdude " тоже! В конечном итоге это стало ключевым компонентом для исправления маленькой хитрой проблемы, которая возникла позже в процессе производства.

  • Невидимые символы -- Не редактируйте файлы на компьютере с Windows. Чертовски невидимые персонажи ( NL и CF ). Гримленс, я тебе говорю!! Когда эти дополнительные невидимые символы существуют в файле pi_program.sh , возникает действительно странное поведение.

    В конце концов я решил отредактировать все файлы на Raspberry Pi, чтобы избежать этих проблем.Встроенный текстовый редактор довольно удобен. Один из моих сотрудников в команде контроля качества хорошо разбирается в VIM и может найти несколько серьезных путей.

  • Headless Pis - rc.local — довольно крутой способ запуска некоторых вещей при загрузке. Мы вызываем модуль Python с именем test.py для всех наших потребностей в программировании. Вы действительно можете поместить туда любые команды, которые хотите. Мы находим это очень удобным, потому что мы запускаем эти Pi_grammers в производстве без монитора, клавиатуры или мыши — «без головы», как они говорят.

  • Истечение времени ожидания последовательной загрузки -- Если что-то пойдет не так во время последовательной загрузки, avrdude может пройти НАВСЕГДА до истечения времени ожидания. Это может выглядеть так, будто безголовый пи заморожен. В конце концов мы исправили это, сделав снимок файла upload_results.txt , проанализировав его, а затем вызвав « sudo killall avrdude », если казалось, что это не удастся.

  • ** Аппаратный SPI** -- Открытие линий SPI в raspi-config . Ознакомьтесь с учебным пособием здесь.

  • Клавиатура для английского языка (США) -- Остерегайтесь, здесь очень много окон, в которых можно щелкать/выбирать, но в конечном итоге вы можете получить стандартную английскую американскую клавиатуру, если хотите. Это в raspi-config .

  • Ограничения привода/приемника GPIO -- Имейте в виду, что существуют контакты ввода/вывода, которые не могут управлять/приемником светодиода. В моем первом прототипе HAT я выбрал несколько входов/выходов, которые не подходили для светодиодов, и мне пришлось заменить их. У меня до сих пор нет окончательного списка, но я точно знаю, что 9 GPIO в текущем дизайне отлично работают!

Ура открытому исходному коду и спасибо!

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


Готовы использовать Raspberry Pi в качестве автономного программатора? Попробуйте проверить шляпу программиста Pi AVR!

Ресурсы и дальнейшее продвижение

Для получения дополнительной информации о Pi_Grammer и , ознакомьтесь со следующими ресурсами:

Хотите проверить некоторые другие производственные процессы SparkFun или информацию о записи загрузчиков на микроконтроллеры? Ознакомьтесь с некоторыми из этих связанных руководств:

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

В этом руководстве вы узнаете, что такое загрузчик и зачем его устанавливать или переустанавливать.Мы также рассмотрим процесс записи загрузчика путем прошивки шестнадцатеричного файла в микроконтроллер Arduino.

Постоянные инновации в области контроля качества

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

Параметры загрузки | Groovesizer

USBTINYISP
Комплекты

Groovesizer MB теперь поставляются с программаторами USBTINYISP.Несмотря на то, что они являются надежным и экономичным способом загрузки прошивки в MB, они, безусловно, не являются самым быстрым решением на блоке — время загрузки может составлять минуты, тогда как AVRISP mkII загружает ту же прошивку за секунды, так что приготовьтесь к быть немного терпеливым.

Установка драйверов

Если вы работаете в Windows, следуйте инструкциям на сайте Adafruit, чтобы загрузить и установить соответствующий драйвер для вашей ОС. Если вы используете OS X или Linux, драйверы не требуются.

ПРИМЕЧАНИЕ. Моя установка Windows 7 пожаловалась на неподписанный драйвер, поэтому я допустил сбой установки драйвера, загрузил подписанный драйвер Windows 8 и обновил драйвер  из диспетчера устройств с помощью подписанного драйвера Win 8.Работает очарование.

Пошаговые инструкции

Вот краткое изложение всех шагов, необходимых для загрузки микропрограммы в MB

.
  1. Загрузите и установите Arduino IDE
  2. Загрузите файл микропрограммы по вашему выбору
  3. Разархивируйте и скопируйте в папки проектов Arduino
  4. Загрузите необходимые библиотеки и установите (если они еще не установлены)
  5. Откройте прошивку в среде IDE. Вам нужно открыть только основной файл — все остальные зависимые файлы откроются во вкладках автоматически.Основной файл имеет следующий формат:   Groovesizer_Alpha_xxx.ino
  6. Убедитесь, что Arduino Uno выбран в среде IDE в разделе Tools/Board
  7. Нажмите кнопку Verify (галочка на панели инструментов) и убедитесь, что прошивка компилируется без ошибок
  8. Установите перемычки на Multiboard для прошивки, которую вы хотите использовать
  9. Подключите USBTINYISP к компьютеру и к MB — питание не требуется, так как USBTINYISP подает питание на MB
  10. Убедитесь, что USBtinyISP выбран в разделе Tools/Programmer
  11. Загрузите прошивку в МБ с помощью Sketch/Upload Using Programmer
Другие методы

Существует ряд других способов загрузить микропрограмму в процессор Atmega 328 на плате Groovesizer MB.Первые два связаны с использованием Arduino — я использую Arduino Uno. Arduino невероятно забавны и полезны, особенно если вы заинтересованы в изучении электроники, управляемой микропроцессором.

Arduino (метод 1) – замена микросхем

Для этого метода вам понадобится Arduino со съемным Atmega 328 (некоторые платы имеют компоненты для поверхностного монтажа с припаянным к плате чипом).

  1. Загрузите скетч прошивки на плату Arduino из Arduino IDE.
  2. Удалите запрограммированную Atmega с платы Arduino (для этого требуется осторожно подрезать плоской отверткой с обоих концов микросхемы или использовать инструмент для удаления ИС) и используйте ее для замены Atmega, которая в настоящее время находится на плате Groovesizer. В последнее время я не стал полностью вставлять Atmega в гнездо, чтобы облегчить извлечение.

ПРИМЕЧАНИЯ:

  • Возможно, вы погните или даже сломаете ножки на Атмеге в процессе. Таким образом, хотя, вероятно, можно сделать один или два обновления прошивки, это определенно не рекомендуется, если вы планируете разработать собственную прошивку и вам нужно много загружать.
  • Микросхемы Atmega в серии Pioneers были запрограммированы с помощью ISP (внутрисистемного программатора). К сожалению, это перезаписывает загрузчик Arduino, а это означает, что вы не сможете использовать Atmega на Groovesizer для замены того, который вы взяли из Arduino, если только вы сначала не прошьете загрузчик на чип.

Arduino (метод 2) — Arduino как интернет-провайдер

  1. Загрузите скетч ArduinoISP (в папке «Примеры» Arduino IDE) на плату Arduino.
  2. Подключите соединительные кабели между Arduino и разъемом ICSP на Groovesizer следующим образом:
  3. В Arduino IDE в разделе Tools/Programmer выберите Arduino в качестве интернет-провайдера.
  4. Откройте нужную прошивку Groovesizer в Arduino IDE.
  5. Загрузите его в Groovesizer с помощью File/Upload Using Programmer.

ПРИМЕЧАНИЯ:

  • Частое подключение перемычек может раздражать. Чтобы сделать это менее хлопотным, вы можете легко сделать свой собственный кабель с перемычками, постоянно припаянными к разъемам, которые подходят к разъемам на Groovesizer и Arduino.
  • При использовании этого метода вам не нужно подавать питание на Groovesizer, так как питание подается от Arduino.

AVRISP mkII

 

AVRISP mkII — это собственное решение Atmel для программирования чипов Atmega.    Честно говоря, я, вероятно, не получил бы один из них, если бы знал, что использовать Arduino в качестве интернет-провайдера так просто. Тем не менее, он аккуратный, автономный и в значительной степени надежный (хотя см. примечание о драйвере).

  1. Подключите AVRISP mkII через USB к компьютеру и через невыпадающий провод и 6-контактный разъем к разъему ICSP Groovesizer.
  2. Включите Groovesizer (программатор не подает питание).
  3. В Arduino IDE в разделе Tools/Programmer выберите AVRISP mkII.
  4. Откройте нужную прошивку Groovesizer в Arduino IDE.
  5. Загрузите его в Groovesizer с помощью File/Upload Using Programmer.

ПРИМЕЧАНИЯ:

  • Arduino IDE не поддерживает USB-драйвер Jungo от Atmel для AVRISP mkII.Поскольку их драйвер устанавливается вместе с программным обеспечением Atmel Studio, которое поставляется вместе с программатором, это означает, что вы не можете использовать Atmel Studio и его классные инструменты. Вместо этого используйте драйвер, поставляемый с Arduino IDE.
  • Вот пошаговая инструкция по установке драйвера под Windows 7 32-bit :
    1. Подключите AVRISP mkII к USB-порту вашего компьютера. Windows попытается найти драйверы и потерпит неудачу.
    2. Перейти к Панель управления/Диспетчер устройств
    3. Найдите AVRISP mkII (с желтым восклицательным знаком) в списке Other Devices
    4. Щелкните правой кнопкой мыши AVRISP mkII и выберите Обновить программное обеспечение драйвера
    5. Выбрать Выполнить поиск драйвера на моем компьютере
    6. В поле с пометкой Найдите программное обеспечение драйвера в этом месте , используйте кнопку Browse и перейдите к драйверу в папке установки для вашего программного обеспечения Arduino — мой находится в C:\Program Files\Arduino\hardware\tools \avr\utils\libusb
    7. Выбрать Далее
    8. Появится окно безопасности с сообщением Windows не может проверить издателя этого программного обеспечения драйвера — выберите Все равно установить этот драйвер .
  • 64-разрядная версия Windows 7 намного строже относится к использованию неподписанных драйверов, чем Win 7 32. Сначала вам необходимо создать подписанный драйвер, следуя этим инструкциям:
    1. Загрузите последнюю версию libusb-win32.
    2. Разархивируйте папку.
    3. Подключите AVRISP mkII к порту USB на вашем компьютере. Windows попытается найти драйверы и потерпит неудачу.
    4. В извлеченной папке libusb-win32 перейдите в папку bin и откройте inf-wizard.ехе .
    5. Подтвердите, что AVRISP mkII подключен к вашему компьютеру, и нажмите Далее .
    6. Выберите запись для AVRISP mkII в списке и нажмите Next .
    7. Если вы видите что-то вроде следующего, нажмите Далее .
    8. Сохраните новый INF-файл.
    9. Щелкните Установить сейчас .
    10. При появлении запроса нажмите Разрешить этой программе вносить изменения.
    11. Выберите Все равно установите этот драйвер .
    12. Если вы видите следующее сообщение, все готово.

USBASP

Я добавляю эту опцию для полноты картины, но честно предупреждаю, я не смог заставить свою работать. Эти штуки стоят дешево на ebay, и я купил одну, чтобы загрузить прошивку на свой Shruthi-1. Он отлично работал в этой роли, общаясь напрямую с avrdude. К сожалению, он страдает от того, что кажется распространенной проблемой при использовании с Arduino ide — загрузка завершается с ошибкой с сообщением avrdude: предупреждение: невозможно установить период sck.проверьте наличие обновления прошивки usbasp . Я пытался обновить прошивку по этой инструкции, но безуспешно — инструкция отличная, так что, скорее всего, это только моя плата. Если у вас есть один лежащий вокруг, это стоит попробовать. Кроме того, если у вас есть работающий USBASP, сообщите нам, где вы его приобрели!

Интернет-провайдер | Ваш ITronics

В этом выпуске я буду ремонтировать свой программатор AVR ISP MKII, заменив встроенный повышающий преобразователь (TPS61020), а также модернизирую 6-контактный кабель для программирования ISP до длины 1 м.

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

Итак, решение состояло в том, чтобы заменить два транзистора, которые использовались для адаптации уровней напряжения RS-232 к уровням напряжения TTL, на микросхему USB-RS-232, такую ​​как FT-232BM .

USB ISP программатор для AVR: [ссылка]

Этот проект является экземпляром проекта UsbProg, созданного Бенедиктом Заутером. Bene выпустила схемы, макет платы и прошивку в качестве проекта с открытым исходным кодом. Дин Холл взял этот проект и внес следующие изменения:

.
  • CONN1 заменен на розетку типа Mini-B (так что это будет поверхностный монтаж).
  • Изменено большинство деталей для поверхностного монтажа (кроме перемычек и разъемов).
  • Добавлены конденсаторы C1 и C2 для развязки.
  • Добавлен контактный разъем CONN3 2×5 для порта A (входы АЦП).
  • Добавлена ​​перемычка JP3 для выбора контакта, управляющего LED1.

Приложив немного усилий, плату можно вытравить дома, и у вас есть самодельный программатор. Или вы можете просто заплатить 30 долларов и получить оригинальный mkII от Atmel. (Я выбрал оригинальный 🙂)

UsbProg-SHARP Клон AVRISP mkII: [Ссылка]

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

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

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