Proteus. Как добавить платы Arduino и получить прошивку hex в IDE
Наверное, если вы только начали изучать микроконтроллеры, вам тяжело сделать печатную плату и запрограммировать её usbasp, к примеру. Для этого есть много отладочных плат или ещё проще – Arduino. Но чтобы попробовать, есть совсем простые пути, и они такие же наглядные.
Попробуем некий такой hello_world на микроконтроллере – помигаем светодиодом, не имея в наличии реальной платы. Для этого понадобится Proteus – как мне кажется, лучшая программа для эмуляции электронных процессов. В 8 версии Proteus есть уже встроенные библиотеки arduino, но мне они не очень нравятся в плане удобства работы. Найти их просто, при создании нового проекта, нужно перейти на вкладку “from development board”.
Как я уже и сказал, я использую более удобную и визуально красивую библиотеку, для которой можно создать обычный проект. Это платы от проекта theengineeringprojects. Качаем библиотеки по ссылке
На странице нужно найти жирную кнопку “Download Library for Proteus” и скачать архив. В нём будут два файла –
ArduinoTEP.LIB and ArduinoTEP.IDX. В случае с версией Proteus 8, чтобы установить библиотеки Arduino, необходимо будет пройти в папку программы, а конкретно Proteus 8 Professional\LIBRARY и туда положить эти два файла. Путь самой программы конечно у вас будет отличаться от моего
Теперь запускаем программу, создаём новый проект и открываем библиотеку компонентов. Там в поиске, вводим название библиотеки – arduinotep и выбираем понравившийся чип.
Теперь вернёмся к Arduibo IDE. Откроем самый простой пример мигания светодиода, и сделаем некоторые настройки, чтобы понять, куда программа сохраняет hex файл. Пройдём в настройки
И выберем пункт “Компиляция” в подробно выводе. Кстати ещё тут можно включить другие полезные плюшки – например вывод номера строк или сворачивание отдельных кусков кода.
Я решил, что буду в Proteus использовать NANO, поэтому выбираю её в компиляторе, а в примере мигания диода заменяю вывод диода со встроенного на ножку 12. Жму компиляция, и теперь в окне информации можно увидеть, куда сохранился hex файл.
Теперь мы знаем, где хранится этот файл. Соберём в Proteus схему из наших свежих добавленных плат, и подключим светодиод.
Теперь, если нажать два раза по нашей плате Arduino – можно попасть в меню настроек, где и нужно указать прошивку. Также можно заметить, что частота стоит верная – фьюзы Arduino заточены под 16Мгц внешний кварц.
Как мы увидели выше, путь hex файла находится во временных пользовательских папках. Жмём на кнопку “Program File” – и ищем наш hex. Выбираем, который без bootloader’а.
Ну теперь жмём кнопку play снизу, слева – и видим, что всё работает.
Если вы не устанавливали дополнительные библиотеки, а решили воспользоваться стандартными – рабочее поле с платой будет выглядеть так
Можно нажать на контроллер и увидеть меню настроек. Точно также в поле Program File выбирается прошивка, работает всё аналогично.
Также здесь будет один небольшой нюанс – нужно выставить частоту 16Мгц, потому-что по-умолчанию выставлено 8Мгц от внутренней RC цепочки.
Естественно, можно поставить и голый МК AtMega328, и всё тоже заработает. Только нужно найти какому пину будет соответствовать на голом МК, тот, что вы выбрали в среде Arduino. Для этого смотрим распиновку Arduino Nano. Например 12, который выбрали мы, будет соответствовать 16 пину голого МК (PB4).
На этом же сайте, есть до кучи интересных библиотек от дисплеев до датчиков газа. Если интересно, можно добавить в папку библиотек аналогичным образом.
Пробуйте, тестируйте, пока ваши отладочные платы едут с Китая.
Proteus
Мощнейшая система автоматизированного проектирования, позволяющая виртуально смоделировать работу огромного количества аналоговых и цифровых устройств.
Программный пакет Proteus VSM позволяет собрать схему любого электронного устройства и симулировать его работу, выявляя ошибки, допущенные на стадии проектирования и трассировки. Программа состоит из двух модулей. ISIS – редактор электронных схем с последующей имитацией их работы.
Proteus VSM включает в себя более 6000 электронных компонентов со всеми справочными данными, а также демонстрационные ознакомительные проекты. Программа имеет инструменты USBCONN и COMPIM, которые позволяют подключить виртуальное устройство к портам USB и COM компьютера. При подсоединении к этим портам любого внешнего прибора виртуальная схема будет работать с ним, как если бы она существовала в реальности. Proteus VSM поддерживает следующие компиляторы: CodeVisionAVR и WinAVR (AVR), ICC (AVR, ARM7, Motorola), HiTECH (8051, PIC Microchip) и Keil (8051, ARM). Существует возможность экспорта моделей электронных компонентов из программы PSpice.
Несмотря на то, что программа работает с устройствами, состоящими из нескольких микроконтроллеров и даже с чипами от разных производителей в одном устройстве, необходимо четко понимать, что симуляция повторяет работу реальной схемы не абсолютно точно! Чтобы избежать ошибок, нужно ясно представлять конечный результат.
Proteus VSM является коммерческим продуктом. Есть бесплатная демонстрационная версия. Она обладает всеми функциями и возможностями платного пакета, но не позволяет сохранить или распечатать результат работы, создать свой собственный микроконтроллер.
Меню программы англоязычное. Полного русификатора для Proteus VSM нет. Устанавливать программу необходимо в папку без кириллических символов в названии.
Операционные системы, в которых работает данная САПР – это Windows 2000 / XP / Vista / 7. Обратите внимание, что Proteus VSM работоспособен в Windows 7, только начиная с версии 7.8.
Распространение программы: Shareware (платная), цена — от £99
Официальный сайт Proteus: http://www.labcenter.com
Форматы файлов Proteus: DSN (проект), LYT (печатная плата), PDSPRJ (в 8-ой версии единый файл проекта)
Скачать Proteus
Цикл статей по работе в Proteus
Обсуждение программы на форуме
Создаем компонент (footprint) в Proteus/ARES на примере транзистора КТ-315
Допустим мы хотим развести плату с компонентом, которого нет в библиотеках ARES. Создать его можно за пару минут.В данном случае посадочное место это прямоугольник 7х3 мм. Сперва его нужно отрисовать.
1. Включаем метрическую систему координат.
2. Включаем клавишей F2 привязки с шагом 0,5 мм (шаг может быть изменен в меню Technology – Grids…).
3. Выбираем инструмент рисования 2D линия (цвет должен быть голубой, это тип Top Silk, т.е. компонент размещается на верхней части платы).
4. Рисуем элемент мышкой, использую привязки к сетке и, следя за координатами, которые отображаются внизу справа на строке состояния.
5. Создаем отверстия под ножки с шириной 0,95 мм. Выбираем на панели инструментов Round Through-hole. Система отверстий у нас дюймовая. C-50-30 означает отверстие 50-30 тысячных дюйма (1,27-0,76 мм). На его основе создадим свое, выбрав пункт Create. Вводим имя, например MC-60-40, потом меняем его размеры на 60th и 40th, вместо 50th и 30th. В миллиметрах у нас получается 1,52-1,02 мм.
6. Выбираем наше созданное отверстие и ставим первое в центре посадочного места. Теперь можно нажать клавишу O (латинскую), и система координат станет локальной, в строке состояния координаты отобразятся розовым цветом. Надо сместиться от первого отверстия вверх на 2,5 мм, а затем вниз на 2,5 мм и поставить второе и третье отверстия.
7. Закончили рисовать, нажали Escape. Теперь пронумеруем контакты. Нажали кнопку N (или через меню Tools – Auto Name Generator…), в появившемся окне сразу ОК. Далее указываем каждое отверстие по порядку и на них появляются цифры. Закончив, нажимаем Escape.
8. Выделяем все, что нарисовали, курсором и идем в меню Library – Make Package… Появляется окно. Заполняем поля: Имя посадочного места (я ввел КТ), категория (Miscellaneous – всякая всячина), тип (Through Hole – сквозное отверстие). Справа отображается имя библиотеки для размещения компонента USERPKG. ОК.
9. Почти все готово. В меню Library – Library manager… можем выбрать в верхнем списке нашу библиотеку USERPKG, посмотреть на ее содержимое, удалить ненужное кнопкой Delete Items.
10. Запускаем ISIS. Открываем свою схему. Допустим, она содержит транзистор NPN из категории Generic, для которого мы и рисовали посадочное место. Теперь его надо связать с его посадочным местом.
11. Нажимаем на нем правой кнопкой и выбираем пункт меню в самом низу Packaging Tool. В появившемся окне нажимаем сверху кнопку Add. Откроется окно выбора посадочных мест. Там и находим наш компонент. Категория Miscellaneous, тип Through Hole. В правом списке выбираем КТ из библиотеки USERPKG. ОК.
12. Теперь связываем выходы с отверстиями. В таблице в столбце А указываем кто есть база, кто коллектор, кто эмиттер. У меня получилось прям по порядку B 1, C 2, E 3. (PS Хотя надо было наоборот). Нажимаем Assign Package(s).
13. На схеме появились номера выходов.
14. Теперь если мы передадим эту схему в ARES, он ее разведет и не поперхнется.
Эмуляция Arduino в Proteus | Практическая электроника
В прошлой статье мы с вами рассмотрели, чем Ардуино отличается от МК AVR, какие бывают типы Ардуино, а также научились устанавливать драйвер последовательного порта Ch440G на Ардуино. Как я уже говорил, в наших статьях мы будем рассматривать китайские варианты Ардуино, собранные на микросхеме Ch440G.
На оригинальных Ардуино используются уже совсем другие микросхемы последовательного порта.
Что эта за микросхема Ch440G, и для чего она установлена на плату? Если говорить упрощенно, это своего рода встроенный программатор для связи Ардуино с ПК. Плюсы такого решения в том, что нам достаточно просто подключить Ардуино к ПК стандартным USB кабелем и можно будет залить “скетч”. То есть прошить Ардуинку программой. Скетч – это просто код программы, который мы можем по USB кабелю залить в микросхему на нашей плате Ардуино. Тупо устанавливаем дрова, цепляем Ардуинку через USB-кабель, пишем программу, заливаем ее в один клик и ВСЕ! Красота!
Следующий вопрос который придет в голову всем кто имел дело с МК AVR: “А можно ли прошить Ардуино ISP программатором, типа USBASP (ниже на фото) или подобного?” Напомню, что с помощью этого программатора мы прошивали МК AVR .
Конечно можно! Для этого на Ардуинке есть специальные выводы для прошивки МК, на которой она собрана:
Распиновка выглядит вот так:
Ну а далее действуем как обычно: шьем наш МК. Как это сделать, можно прочитать в этой статье.
В одной из предыдущих статей, посвященных МК AVR, мы рассмотрели, как можно провести эмуляцию схемы на МК AVR в программе Proteus, но можно ли это провести с платой Ардуино? Да, можно. Для этого нужно просто установить в папку с библиотеками программы Proteus, библиотеку для работы с Ардуино. Его надо вставить в вашу библиотеку Proteus.
Дело в том что в Ардуино мы можем залить в программе Proteus не скетч, а прошивку. Да-да, тот самый “HEX” файл. Делается это точно также, как мы и заливали в наш виртуальный МК AVR файл прошивки. Для того, чтобы не тратить лишнее время, мы не будем сами писать код скетча, а воспользуемся одним из готовых примеров.
Получение HEX-файла в Arduiono-среде.
Для того, чтобы получить HEX-файлик для прошивки нашего виртуального Ардуино, нам надо сделать следующие шаги…
Скачать саму Ардуино программку. Как я уже сказал, от свежести этой программы мало что меняется. Я использую версию 1.6.7. Скачать можно здесь.
Предположим, у нас уже есть код программки, которую будем лить в Ардуинку. Я же воспользуюсь готовым кодом. Для этого беру готовую программку Blink.
Вот она открылась в новом окошке:
Затем нам нужно откомпилировать наш код.
После удачной компиляции выйдет вот такое сообщение:
Потом нажимаем “Сохранить”
А потом кликаем “Экпорт бинарного файла”
В результате у нас появятся вместе с сохраненным проектом еще два файла. Берем для загрузки в Proteus самый длинный по названию файл
Открываем Proteus. Находим 4 элементы для построения схемы. Резистор на 300 Ом, желтый светодиод, землю и саму плату Ардуино.
Два раза щелкаем на саму ардуинку на схеме. Должно вылезти вот такое окно. Нажимаем на значок “папка” и выбираем наш длинный HEX-файлик.
Нажимаем на Play внизу слева рабочего окна Proteus и наслаждаемся морганием светодиода)
В следующей статье мы будем зашивать уже саму Ардуину в реале. Не пропустите! 😉