Автоматизируем загрузку *.hex в PinBoard

Есть у меня PinBoard 1.1 Пользуюсь ним уже больше двух лет. Со временем стало как то напрягать все время делать одну и туже тупую операцию, чтоб прошить скомпиленный hex. На дворе у нас уже 2014 год, утекло много води, вышло несколько обновлений AVR Studio. Настал час автоматизировать роботу студии, чтоб она сама прошивала камень после компиляции, как это умеет Ардуино. Стоит только нажать F7.

Да-да, знаю что у большинства уже давно Пинборди второй ревизии и все потихоньку перелазят на STM-ки и прочее добро. Но надеюсь что кому то эта статья пригодится. Перед тем как начать рассказывать что нужно сделать да бы нажимать только одну клавишку, нужны некоторые приготовления из самим Пинбордом (если ревизия 1- то нужно паяльник и скальпель, если 2- то только проводок накинуть на контакты) Виндовсом (в моем случае Виндовсом 8,1) и AVR Studio 6.1.
Начну из простого, подготовки винды и студии. Вам понадобится две проги AVRDUDE и DTR Pulser. Последнюю сам карячелся, писал на Visual C#. Еще даже толком не успел протестить, но вроде все работает. Зачем она? Отвечаю, она только передергивает ногу DTR на FTDI-ке, и Атмега уходит в ребут, что заставляет запустить штатный бутлоадер. Так еще умеет делать и сама AVRDUDE при прошивке Ардуино по протоколу STK500v2. Но работать из булоадером Пинборда по протоколу AVR109 на прямую отказывается. Дудка дергает ногой DTR, но только один раз за сессию. При второй попытке все заканчивается. Приведу коротенькое описания своей проги:

  1. Лист-бокс где можно выбрать COM-порт
  2. По истечению нескольких секунд прога автоматом закрывается, чтоб ее остановить нужно нажать на эту кнопку, она же сохраняет выбранное значения порта в лист-боксе. При последующим открытии, заданные ранее значения возобновляются
  3. Эта кнопка позволяет также остановить таймер закрытия и принудительно вызвать сигнал DTR
  4. Статус-бокс, показывает чем сейчас занята прога и предупреждает об ошибках
Архив из прогой постараюсь прикрепить внизу.
Приступим к настройке. Первым делом нужно внести в Переменные среды виндовс путь к каталогу к этим двум прогамм. Правой клавишей «Мой компьютер»-> «Свойства» ->«Дополнительные настройки системы» -> «Сменное окружение» и во второй нижней таблице ищем переменную «Path». Два раза кликаем и добавляем в сам конец, через точку с запятой пути к каталогу этих двух екзешников. У меня это выглядит как то так
...SQL Server\110\Tools\Binn\;E:\FTBB\;E:\CooCox\CoIDE\gcc\bin; D:\Радіо\Програми

Из виндовсом все. Перейдем к студии.
И так открываем новый проект, ну или заготовленный старый, жмыхаем на комбинацию клавиш Alt+F7, ну или меню«Projeck»->«Properties» там ищем вкладку «Build Events» и в поле «Post-build event command line» добавляем строчки
DTR_Pulser avrdude  -p $(avrdevice) -c AVR109 -P COM2  -U flash:w:$(Name).hex :a

Если команды выше не сработали, то перезагрузите комп, или вставьте полный путь к программам.
На этом извращения из системой закончены.
Перейдем к минимальной переделки первой ревизии Пинборда.
И так у нас на борту Пинборда имеется USB-интерфейс FT232RL, ко второй ноге FTDI-ки нужно припаять проводок, его конец припаивается через 100nF кондюк к перерезанной дорожки на ISP-роземе возле Атмеги. Там где полностью GND. На обратной стороне плати, на штыревую колодку нужно накинуть джампер, да бы присоединить DTR к ресету Атмеги.



Что касается второй ревизии Пинборда, то тут все должно быть гораздо проще. Если мне не изменяет память, то на ней все порти FTDI-ки выведены на штыревую колодку и вам нужно только накинуть проводок от порта DTR на ресет.
На этом наверно все, теперь можно наслаждаться нажатием только одной кнопки и проект уже летит в Пинборд.
Если есть вопросы, нашли багу, или хотите что то добавить, велком в коменты статьи или на мой удаленный бложек digiua.com
Update:Запилил консольный вариант проги. Чтоб выбрать порт, в bat-файле указываем его имя. Например «DTR_Pulser_v2.exe COM2». Также можно вызвать помощь, указываем ключ «help»-без кавычек. Можно вообще не указывать ключей, тогда по умолчанию будет выбран COM2. Новая и старая прога в атаче в одном архиве.
Репозиторий на GitHub: https://github.com/Leon11t/DTR-Pulser
  • 0
  • 26 января 2014, 03:41
  • Leon11t
  • 1
Файлы в топике: DTR_Pulser.zip

Комментарии (10)

RSS свернуть / развернуть
Ты б хоть для надписей в программах спеллчекером пользовался. Ну, в частности, не FEIL, а FAIL.

А вообще, подобную приблуду, работающую в паре с дудкой и запускаемую из среды, разумней делать консольной и передавать порт в командной строке (типа «dtrpulser com1 [прочие параметры]»).

Алсо, почему бы не выложить сорцы самой проги?
0
  • avatar
  • Vga
  • 26 января 2014, 04:23
Да, из спелчекером, лоханулся! Надпись поправлю.
Чесно говоря начал изучать Си# сразу из Виндовс Форм и консольные проги писал только один-два раза. А почему разумней делать консольной? У меня все настройки в основном интерфейсе, плюс еще функциональные кнопки.
Сорцы виложу где то на гитхабе. Познее тут напишу.
0
Потому, что консольщину можно запустить вместе с основной тупо батником. А прописать по F7 уже запуск батника.
0
Да, соглашусь. Если писать батник то он будет ждать пока закроется первая прога вызванная в консоли и тогда уже стартанет выполнения все остального. Но вкладка «Post-build event command line» почему то не ждет закрытия первой команды, а сразу переходит дальше. Под это и рассчитана моя прога.
0
Зачем интерфейс программе, с которой не нужно взаимодействовать? А консольную проще использовать для автоматизации (батника, например).
0
Потому что туда можно ссылочку на сайт впихнуть :)
0
В CUI тоже можно впихнуть) Разве что не очень кликабельна будет…
0
Так его ж из батника будут пинать — никто и не заметит
0
Добавил репозиторий исходников и исправил файлы в атаче.
0
Запилил консольный вариант проги, Инструкции в апдейте к статье.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.