Sinaprog ардуино не работает

Дополнение к статье «Делаем ISP-программатор из Arduino»

Заметка-отчет о проверке работоспособности «ArduinoISP» не имеющего на борту чипа FT232RL от FTDI. Я не открою ничего нового, лишь поделюсь своим личным опытом использования.

В качестве предисловия хочется сказать что с AVR8 знаком уже давно еще с техникума (в 2004 году AT90S8535 помните? :)), но при этом работал с ними не много, учеба в институте не позволяла уделять достаточное кол-во времени. Ну и естественно много того что знал благополучно забыл. Жизнь внесла свои коррективы и увела в web-разработку, разобравшись с принципами работы которого захотелось большего. И пару лет назад, пришла 3я волна увлечения МК и я собрал себе новую макетку на ATmega32… и ведь западло, если раньше легко можно было шиться через LPT «пятью проводками», то теперь дома уже не нашлось такого интерфейса 🙁 зато завелся Arduino Uno, точнее кЫтайская поделка.

После покупки Uno первым делом стал прикидывать как же заставить его прошивать хотя-бы Arduino-совместивые камешки (ATmega8, ATmega168, ATmega328 . ) и прочие АВРки ну не совать же в финальное устройство целый Arduino, расточительно однако! Да и не всегда же барахтаться в «Wiring» хочется вспомнить Си, а теперь еще и понять C++ на котором пишут и написаны библиотеки для Arduino.

Конечно я планирую взять себе адаптер на FT232RL и шиться по рецепту DI Halt’a , но позже. И тут счастье то какое! нахожу этот замечательный сайт (низкий поклон администрации и авторам за ваш Труд) и статью Делаем ISP-программатор из Arduino . И ураааа! Но позже фак… на Uno ведь вместо FT232RL стоит мега8U!

Немного позже, скачав arduino-1.0.1 нахожу скетч ArduinoISP, и собираю:

Комментировать схему нет смысла, т.к. она повторяет все что написано в комментарии к скетчу ArduinoISP. Но все же следует упамянуть что желтый светодиод это т.н. «Heartbeat» — который пульсируя, говорит что программатор готов к работе. А белый — это на самом деле два светодиода (красный и зеленый) в одном корпусе с общим катодом, которые сигнализируют «Error» и «Programming» об ошибке и процессе загрузки прошивки в целевой контроллер. Сверху справа, вы можете видеть мою самодельную макетку с ATmega32, ST232BN (аналог MAX232) и обвязкой. Несмотря на то, что на целевой макетке есть свой стабилизатор питания я запитал ее от Uno.

А вот теперь давайте попробуем настроить софт-программатора и собственно прошить/прочесть. Естественно, для прошивки будем использовать avrdude, но мне впадлу использовать консоль 🙂 «… хочется открывать окна мищькой. » и я по совету DI Halt’a решил использовать SinaProg. Итак скачал запустил в комбо Device выбрал целевой камень, в Programmer — AVRISP (потому что данный программатор работает по протоколу AVRISP MkI), выбираю пустой файл для сохранения прошивки, жму Flash -> Read и первые грабли:

Т.к. у меня виндоуз (Win 7 x64) стоит уже довольно долго, и при установке дров, Arduino стал аж на COM23, но в SinaProg в комбо боксе с выбором порта программатора максимум СOM9:

Лечится очень легко, добавлением соответствующего порта в файл Port.txt в папке с SinaProg:

В принципе структура этого файла интуитивно понятна, но хочется обратить внимание что COM23 заглавными это название порта, а сам «адрес» указывается через табуляцию строчными.

Ок! Пробуем снова ииии вторые грабли:

Получаю ошибку Can’t open port и ответ

Так, как это! Порт доступен, другие приложения открывают, а ты не можешь! И вспоминаю об сообщениях о разных версиях avrdude и о странностях в их работе. Ну ладно, копирую avrdude.exe из arduino-1.0.1\hardware\tools\avr\bin\ в каталог с SinaProg, заменяя тот что был внутри, пробую прочесть и снова ошибка, но уже другая:

Что-то в структуре в конфига avrdude. Далее я пытался править, подменять, очищать avrdude.conf и ничего не получалось! Или порт не может быть открыт или не нравятся символы в конфиге…

Читайте также:  Страшилки больше не работают

НО проблему я все же решил, скопировав файлы avrdude.exe и avrdude.conf из папки bin\ свежей версии WinAvr (WinAVR-20100110). Подобрав рабочую связку «дудки» и его конфига, пробую читать очередной раз получаю грабли три:

И ошибку на светодиоде «Error»

На видео запечатлен процесс прошивки (точнее чтения) завершившийся не удачно.
Также на целевой макетной плате вы можете видеть ряд зеленых светящихся и красных не светящихся светодиодов. Эти диоды стоят на старшей тетраде (биты 4-7) порта A и при выводе «0» на соответствующем выводе загорается зеленый, а при «1» — красный. При высоком импедансе — светятся оба но тускло. И еще немного левее, желтый светодиод это «Сеть».

Возвращаясь к предмету заметки, пробуем понять что же все таки значит not in sync: в ошибке дудки. А значит это то, что мы по сути работаем через USART — асинхронный UART и у нас на лицо рассинхронизация. Тьфу ты! Подумал я и вспомнил про баудрейт (скорость передачи через порт) и выставил 19200 в комбобоксе скорости. И в итоге настроенная SinaProg стала выглядеть так:

На группу Fuses не обращайте внимание, это значение там было сразу же после первого запуска SinaProg и пока вы не нажмете Programm фьюзы не прошьются, так что просто игнорируем.

Жму Flash Read и смотрю на железо:

Урааа! Заработало! Теперь было бы не плохо прошить. Для этого в Atmel Studio 6 (бывшая AVRStudio) набросал такую программку

Мигаем всем портом. А если точнее, то выставляем пины порта A в «1» ждем 1с сбрасываем пины в «0» ждем 5с и повторяем снова.

Компилирую и загружаю полученный hex в целевой контроллер:

Вот, собственно, теперь я получи вполне себе удобный USB программатор для AVR’ок. Нужно будет купить комплект ATmega8/168/328 прошить фьюзы, бутлоадер и спрятать в пенале с прочей мелочью, на всякий случай как резервную копию 🙂

У меня всё, спасибо за внимание. Если что не точно/не понятно укажите в комментариях, исправлю/дополню.
С ув.

Источник

Sinaprog ардуино не работает

Администратор

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

Программирование микроконтроллеров*,
DIY или Сделай Сам,
Arduino*

Приветствую всех пользователей хабра, в частности тех кто страдает темой Arduino как собственно и я.

Меня уже давно спрашивают, можно ли прошивать hex файлы при помощи Arduino, изменять фьюзы, считывать прошивку и всякое такое… Ответ — да можно, и я сегодня вам расскажу, как я это делаю.

(Данное видео дублирует представленную ниже информацию, в текстовом формате )

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

Одного прекрасного дня я наткнулся на отличный проект на ATtiny13, но увы автор выгрузил в сеть только hex файл и схему и конечно я так и не смог его попробовать в железе. Меня этот вопрос мучил всё больше и больше, и тут, я случайно наткнулся на одно видео в сети, где автор при помощи Arduino прошил другой микроконтроллер имея только hex файл, ну и схему разумеется, именно он мне подсказал что типа использую SinaProg но с Arduino’вскими файлами.

Загуглив на тему SinaProg я скачал SinaProg 2.1.1.RUS но он работать отказывался с Arduino, потому я закинул парочку-тройку файлов из Arduino IDE в папку SinaProg 2.1.1data и всё заработало.

Пройдёмся коротко по возможностям софта, вот его скрин:

В блоке Hex-file выбираем hex или eep(первый прошивка второй содержимое энергонезависимой памяти).

А той части где кнопка «>» мы можем видеть всякие сообщения, типа OK прошилось, или ERROR, сама же кнопка «>» открывает логи.

В блоке Flash есть кнопки:

Program — запись hex-файла в микроконтроллер( возможно когда выбран Hex-file);

Verify — проверка прошивки что в микроконтроллере и hex-файла, проще говоря, их сравнение, если всё норм то программа говорит OK;

Читайте также:  Как настроить колонку орбита

Read — считать hex-файл.

С блоком EEPROM всё аналогично.

Далее блок Device, тут можно выбрать нужный микроконтроллер, вот весь список поддерживаемых( не обращайте внимания цифры и буквы после названий микроконтроллеров, список выдрал из файла Device.txt который лежит в папке SinaProg 2.1.1data):

Тут их пара–тройкаШутка, вон их сколько:

Как видите есть всё популярные микроконтроллеры фирмы ATmel, в частности ATmega328P, ATmega8, ATtiny13, ATtiny2313 и всякие другие.

Далее — кнопка Search, если её нажать то программа попытается прочитать сигнатуры того микроконтроллера который подключен к программатору, проще говоря поищет микроконтроллер. Потом может ответить OK, или ERROR в информационном блоке, если всё норм или когда нет соответственно.

В блоке Fuses есть предустановки для ATmega8 для работы на разных частотах, но увы только для ATmega8 и ATmega32, можно добавить в файле Fuse.txt (который лежит в папке SinaProg 2.1.1data).

Есть кнопка Program — записать предустановки, смотри на абзац выше.

А так же Advanced… лихая кнопка, после её нажатия можно увидеть вот такое окно:

Device signature — какие-то циферки, я так понял это идентификатор микроконтроллера, по им программа опознаёт что за микроконтроллер мы ей суём.

Информационная часть, всё как выше.

Чуть ниже идут фьюзы… если уж зачешется то не забывай их сначала считать кнопкой Read, записать фьюзы — кнопка Write, кнопка Chip Erase стирает микроконтроллер, аналогия — форматирование флешки к примеру на компьютере(но фьюзы не устанавливаются по умолчанию, так что забывать об этом не стоит).

Пару слов о фьюзах, фьюзы это такие как бы тонкие подстройки микроконтроллера, то частоту поднять то убавить, то вкл/выкл тактирование от внутренней RC цепочки то ещё что-то… вообщем туда лезть только в крайнем случае, иначе можно заблокировать(нашаманить так что перестанет работать, серьёзно) микроконтроллер, и без Atmega fusebit doctor уже никак.

Вот первая ссылка с гугла по запросу «калькулятор фьюзов», но предупреждаю, тыкать что-то там, не зная зачем оно — ни к чему хорошему не приведёт, я то знаю.

Далее ещё какой-то информационный блок, не вникал особо, ну и кнопка выход, но я думаю вы уже об этом догадались, даже если и не знаете английский.

Итак, последний блок основного окна программы — Programmer, тут выбирается тип программатора, если вы используете Arduino в качестве программатора, то ставьте всё как у меня на скрине, только не COM19, это у меня такой, у тебя будет другой, в любом случае точно не COM1, первый это системный, на ноутбуке может не быть, а на компьютерах как правило есть, особенно тех, что постарше. Можно использовать и другой программатор, к примеру, USBASP, только не забудьте выбрать его в списке.

Источник

Как загрузить HEX прошивку Ардуино

Прошивка является популярным способом распространения программ для ардуино и микроконтроллеров.

Здесь описана процедура загрузки прошивки микроконтроллера платы Arduino.

Данная инструкция позволит вам установить прошивку на наиболее популярные платы такие как Nano, UNO, Leonardo, Mini, Pro Micro и другие, собранные на микроконтроллере atmega328p, atmega168, atmega32u4 и других.

Для прошивки других типов плат обратитесь за помощью (http://jarduino.ru/support).

О прошивках Arduino

Не стоит путать прошивку со скетчем!

Скетч – это исходный код прошивки.

Прошивка ардуино – это скомпилированный (бинарный) файл, загружаемый в плату Arduino (в микроконтроллер). Прошивка не является исходным кодом программы (скетча). Файл прошивки обычно имеет расширение HEX.

Преимущество прошивки – это простота ее использования:

  • Не нужны никакие библиотеки,
  • Легко загрузить и выгрузить,
  • Можно перенести с одного устройства на другое.

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

Вместе с прошивкой часто может поставляться и копия памяти ПЗУ (EEPROM), в которой хранятся данные, необходимые для работы устройства.

Способы прошивки Arduino

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

Рассмотрим пару наиболее популярных программ прошивки.

Читайте также:  Фоллаут 4 как починить энергоцикл 1000

XLoader

Самая простая и лаконичная программа, которая подойдет любому, кому просто надо загрузить hex на популярную Arduino.

Xloader

Загрузка прошивки интуитивно понятна:

  • Выбираем…
    • файл прошивки
    • плату ардуино
    • COM-порт
    • Скорость передачи данных
  • Нажимаем кнопку Upload (Загрузить).

Последняя версия – 1.0.

Не может загружать EEPROM.

SinaProg

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

Универсальная оболочка для AVRDude

  1. Выбираем файл прошивки
  2. Настраиваем программатор: выбираем…
  3. Arduino,
  4. Порт
  5. Скорость передачи

Последняя версия — 2.1.1

Avrdude

Большинство всех загрузчиков используют одну и ту же утилиту – AVRDude (AVR Downloader-Uploader), которая давно вошла во многие среды разработки для ардуино, в т.м. числе и в Arduino IDE.

Это мощнейшая утилита для работы с чипами AVR, но все-таки это утилита командной строки, что многим неудобно.

Загрузка HEX прошивки в Arduino

Читайте в следующем параграфе как прошить ардуино и с его помощью.

Последняя версия – 6.3.

Arduino IDE, AVRDude

Рассмотрим как загрузить прошивку, имея только Arduino IDE на компьютере с Windows.

Напомню, что вместе с Arduino IDE ставится и AVRDude, с помощью которого мы и загрузим прошивку.

Установка программного обеспечения

  • Установить программу Arduino IDE, если она не установлена
    • В ряде случаев потребуется установить дополнительный драйвер вашей платы (если плата – китайский клон). Драйвер нужен только в случае если вы не видите вашу плату в Arduino IDE.

Подготовка

  • Подключить плату к компьютеру
  • Запустить Arduino IDE
  • Определить к какому порту подключена Arduino, через меню, как показано ниже:

Выбор COM-порта ардуино

  • Определите в какой папке установлена Arduino IDE

Обычно – «C:Program Files (x86)Arduino»

Загрузка прошивки ардуино

  • Открываете командную строку и вводите следующую команду, предварительно скорректировав ее под свои условия:

« C:Program Files (x86)Arduino hardwaretoolsavr/bin/avrdude» -« C:Program Files (x86)Arduino hardwaretoolsavr/etc/avrdude.conf» -v -patmega328p -carduino -PCOM 3 -b 115200 -D -Uflash:w: Firware .hex:i

Обратите внимание на:

  • Путь к Arduino IDE ( желтым ),
  • Номер порта ( голубым ),
  • Скорость передачи данных ( зеленым )
  • Название (путь) файла прошивки ( фиолетовым )

Если при выполнении команды вы увидите ошибку как ниже

, значит ваша плата не может работать со скоростью 115200, и необходимо установить скорость 57600.

Нажмите CTRL+C, чтобы прервать процесс.

Получение помощи

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

Часто задаваемые вопросы о прошивке

Какой COM-порт выбирать?

Такой вопрос возникает обычно, когда программа не может автоматически выбрать COM-порт, к которому подключена Arduino.

Прежде всего, чтобы ардуино определялась, необходимо, чтобы на компьютере были установлены ее драйвера. Они ставятся вместе с Arduino IDE. Для китайских удешевлённых колонов может понадобится поставить драйвер CH340.

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

Порт можно посмотреть в Arduino IDE…

Выбор COM-порта в Arduino IDE

… или, если вы на Windows, в диспетчере устройств:

Определение COM-порта, к которому подключена Arduino через диспетчер устройств Windows.

Однозначно, это не COM1. Поэтому, в моем случае это будет COM3.

Какую скорость выбрать?

Скорость передачи зависит от версии платы. Если мы говорим о популярных Nano или UNO, то скорость будет 115200. Однако, если вы имеете дело с китайский клоном, то, возможно, придется выбрать 57600.

В общем, рецепт прост: если не получается с одной скоростью, тут же пробуете другую.

5 Replies to “Как загрузить HEX прошивку Ардуино”

Чем регулируется частота и амплитуда , Какой кабель нужен для прошивки Arduino nano ?

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

Со строкой для cmd у вас какая-то беда. Вот рабочий вариант.

«C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe» -C «C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf» -v -p atmega328p -c arduino -P COM3 -b 57600 -D -U flash:w:D:\Documents\Arduino\C\WinAVRC\main.hex:i

За статью спасибо.

А как все это проделать в Линукс?

Не найду ссылку для скачивания демо версии для автокормушки. Подскажите.

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

Для отправки комментария вам необходимо авторизоваться.

Источник

Оцените статью