КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 714295 томов
Объем библиотеки - 1412 Гб.
Всего авторов - 275021
Пользователей - 125157

Новое на форуме

Новое в блогах

Впечатления

чтун про серию Вселенная Вечности

Все четыре книги за пару дней "ушли". Но, строго любителям ЛитАниме (кароч, любителям фанфиков В0) ). Не подкачал, Антон Романович, с "чувством, толком, расстановкой" сделал. Осталось только проду ждать, да...

Рейтинг: 0 ( 0 за, 0 против).
Влад и мир про Лапышев: Наследник (Альтернативная история)

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

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
Влад и мир про Романов: Игра по своим правилам (Альтернативная история)

Оценку не ставлю. Обе книги я не смог читать более 20 минут каждую. Автор балдеет от официальной манерной речи царской дворни и видимо в этом смысл данных трудов. Да и там ГГ перерождается сам в себя для спасения своего поражения в Русско-Японскую. Согласитесь такой выбор ГГ для приключенческой фантастики уже скучноватый. Где я и где душонка царского дворового. Мне проще хлев у своей скотины вычистить, чем служить доверенным лицом царя

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
kiyanyn про серию Вот это я попал!

Переписанная Википедия в области оружия, изредка перемежающаяся рассказами о том, как ГГ в одиночку, а потом вдвоем :) громил немецкие дивизии, попутно дирижируя случайно оказавшимися в кустах симфоническими оркестрами.

Нечитаемо...


Рейтинг: +2 ( 3 за, 1 против).
Влад и мир про Семенов: Нежданно-негаданно... (Альтернативная история)

Автор несёт полную чушь. От его рассуждений уши вянут, логики ноль. Ленин был отличным экономистом и умел признавать свои ошибки. Его экономическим творчеством стал НЭП. Китайцы привязали НЭП к новым условиям - уничтожения свободного рынка на основе золота и серебра и существование спекулятивного на основе фантиков МВФ. И поимели все технологии мира в придачу к ввозу промышленности. Сталин частично разрушил Ленинский НЭП, добил его

  подробнее ...

Рейтинг: +6 ( 6 за, 0 против).

ISP (ICSP) программатор из Arduino [Автор неизвестен -- Техника] (fb2) читать онлайн


 [Настройки текста]  [Cбросить фильтры]
  [Оглавление]

freeduino.ru/arduino/isp.html
ISP (ICSP) программатор из Arduino

Любая версия Freeduino / Arduino может выступать в роли ISP программатора, с помощью которого можно, например, изменить bootloader в другой аналогичной плате, или прошить bootloader в новую микросхему ATmega. В описании указывается Arduino, но фактически может быть использован любой клон, включая все варианты Freeduino.

Здесь рассматривается два варианта ISP программатора на основе Arduino: Mega-ISP, который может быть собран из любой версии Arduino и его клонов, и Bit-Bang программатор, для которого подойдут только те варианты Arduino, которые имеют дополнительно выведенные на специальный разъем контакты микросхемы FT232RL.

Особенности ISP/ICSP

Аббревиатуры ISP и ICSP означают In System Programming и In Circuit Serial Programming соответственно. Это означает программирование чипа уже подключенного в некоторую схему, программирование в готовом устройстве по последовательному протоколу.

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

Источник тактовых сигналов выбирается в микроконтроллерах серии ATmega с помощью так называемых fuse-битов, которые, также как и память программ, и EEPROM доступны для изменения с помощью программатора.

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

Mega-ISP

Из известных проектов по созданию ISP программатора на основе Arduino наиболее интересным нам кажется Mega-ISP ( http://code.google.com/p/mega-isp/ ) К сожалению проект не имеет нормальной документации, поэтому здесь мы опишем его наиболее важные особенности.

Во-первых, после загрузки .pde проекта в вашу плату Arduino, скорее всего потребуется тем или иным образом отключить программный сброс. Владельцы Freeduino 2009 могут просто снять перемычку JRS, владельцы Arduino Duemilanove могут перерезать ножом ту же перемычку. Для Freeduino Through-Hole, Arduino Diecimila, Freeduino MaxSerial (и Arduino Duemilanove) можно выпаять конденсатор CRS, но мы советуем менее радикальный способ – соединить выводы Reset и +5V резистором номиналом порядка 120 Ом.



http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection


Если все сделано правильно, при открытии COM-порта не будет происходить сброс микроконтроллера (это видно по светодиоду 13), и как побочный эффект станет невозможно обновить его собственную прошивку из среды Arduino.

Во-вторых, данный ISP программатор при общении с ПК использует протокол AVRISP/STK500v1 только со скорость 19200 бит/сек, и нормально работает не со всеми вариантами ПО для ПК. Поэтому не удивляйтесь, что не удается что-либо прошить из среды Arduino. Авторы рекомендуют использовать программу avrdude из состава Win-AVR.

Сборка программатора Mega-ISP

Если Вы с помощью одной платы Arduino собираетесь прошить другую, то Вам потребуется разъем 2x3 и 6 проводков. Схема сборки:


Если нужно прошить отдельный микроконтроллер (не забываем, что его fuse-биты должны быть выставлены так, что он тактируется от внутреннего осцилятора), то нужно узнать согласно документации Atmel расположение вывовдов Gnd, Vcc, MOSI, MISO, SCK.

Соединение с Arduino такое: 10 – Reset, 11 – MOSI, 12 – MISO, 13 – SCK.

Не забываем подключить "землю" и питание.

Для примера приводим разводку для разъема ICSP и микроконтроллеров ATmega168 и ATtiny85.

На фото представлен один из вариантов реализации:


Работа с программатором Mega-ISP

Рассмотрим например, как прошить новый boot-loader.

Скачайте архив с .pde проектом и подходящей версией avrdude. ( http://freeduino.ru/arduino/files/Arduino-Mega-ISP.zip )

Распакуйте архив в какую-нибудь папку.

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

Подсоедините вторую плату (которую будем "прошивать") к первой.

В режиме командной строки перейдите в папку с avrdude. Теперь можно запускать avrdude с соответствующими ключами:


Разберем ключи:

– q – уменьшает объем выводимой на экран отладочной информации

– C avrdude.conf – указывает расположение .conf файла (в нашем случае он в той же папке)

– p m168 – выбор типа микроконтроллера ATmega168

– c avrisp – выбор протокола

– P COM3 – выбор COM порта. Здесь нужно поставить свой

– b 19200 – выбор скорости порта

– e – Команда на предварительную очистку памяти программ

– U flash:w:ATmegaBOOT168diecimila.hex – указывает на .hex файл с прошивкой

Прочие замечания

В процессе работы с программатором было замечено, что иногда процесс прошивки не начинается, и avrdude завершается с ошибкой. В таких случаях нам помогал сброс программатора кнопкой Reset и повторная прошивка.

Архив с ПО также содержит файл sample.bat, в котором кроме bootloader’а программируются fuse и lock биты.

В Сети есть страничка с разведенной платой такого программатора, включающей дополнительные отладочные светодиоды: http://drug123.org.ua/mega-isp-shield/


Bit-Bang программатор

"Сердцем" Bit-Bang программатора является микросхема FD232RL (та самая, которая реализует COM-порт на шине USB), а собственно микроконтроллер ATmega никакого участия в процессе программирования не принимает. Это позволяет программировать микроконтроллер, установленный в "панельке" Вашей Arduino – вторая плата Arduino не потребуется.

Соответственно, для данного программатора подойдут только USB версии Arduino, да и то не все, т.к. не на всех вариантах разведен разъем X3 с дополнительными выводами FT232RL.

Сборка программатора Arduino Bit-Bang

Для сборки Вам потребуются разъемы 1x4, 2x6, штекер 1x2 (для питания) и несколько проводов. Можно использовать, например пару Audio-кабелей от CD-ROM – у них удобные разборные разъемы, и в таком случае можно обойтись даже без паяльника.

Схема соединений следующая:


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

На фотографиях представлены оба варианта соединения – программирование микроконтроллера ATmega168, находящегося в панельке Arduino (провода питания и "земли" не нужны),

и программирование микроконтроллера во второй плате.


Рбота с программатором Arduino Bit-Bang

Аналогично рассмотрим прошивку нового boot-loader’а.

Скачайте архив с соответствующей версией avrdude ( http://freeduino.ru/arduino/files/Arduino-Bit-Bang-ISP.zip).

Распакуйте архив в какую-нибудь папку.

Подсоедините программатор к USB порту.

В режиме командной строки перейдите в папку с avrdude. Теперь можно запускать avrdude с соответствующими ключами:



Разберем ключи:

– q – уменьшает объем выводимой на экран отладочной информации

– C avrdude.conf – указывает расположение .conf файла (в нашем случае он в той же папке)

– p m168 – выбор типа микроконтроллера ATmega168

– c diecimila – выбор программатора (он описан под таким именем в .conf файле)

– P ft0 – выбор порта. Выбрано первое устройство с чипом FTDI

– e – Команда на предварительную очистку памяти программ

– U flash:w:ATmegaBOOT_168_diecimila.hex – указывает на .hex файл с прошивкой

Прочие замечания

Архив с ПО также содержит файл sample.bat, в котором кроме bootloader’а программируются fuse и lock биты.

Более полную информацию можно найти по ссылкам:

http://www.geocities.jp/arduinodiecimila/bootloader/indexen.html

http://www.geocities.jp/arduinodiecimila/bootloader/indexolden.html


Оглавление

  • Особенности ISP/ICSP
  • Mega-ISP
  • Сборка программатора Mega-ISP
  • Работа с программатором Mega-ISP
  • Прочие замечания
  • Bit-Bang программатор
  • Сборка программатора Arduino Bit-Bang
  • Рбота с программатором Arduino Bit-Bang
  • Прочие замечания