Что такое Metaboard? |
Добавил(а) microsin | ||
Metaboard - это простая плата для макетирования, с интерфейсом USB, построенная на основе микроконтроллера Atmel AVR. Она спроектирована так, чтобы во многих случаях быть совместимой с Arduino. Дизайн платы полностью открыт (и аппаратура, и firmware). [Особенности платы Metaboard] - простая принципиальная схема и благодаря этому низкая цена. [Аппаратура (hardware)] Поскольку интерфейс USB реализован в firmware (программно), то не требуется специальный отдельный чип драйвера USB. Вот принципиальная схема платы Metaboard: Наиболее свежую версию документации по плате Metaboard можно всегда загрузить по ссылке [1]. Пакет с картинками PNG схемы платы, разводки и размещение компонентов можно скачать по ссылке [3]. [Программное обеспечение (firmware)] Metaboard лучше всего использовать совместно с USBaspLoader, см. [4]. Этот бутлоадер эмулирует AVR программатор USBasp, у которого имеется интерфейс USB. Главное программное обеспечение (firmware) можно загрузить в память микроконтроллера Metaboard через этот бутлоадер. Для работы с бутлоадером может использоваться утилита загрузки Khazama [13], AVRDUDE, среда разработки Arduino IDE с соответствующими настройками [12]. [Средства разработки] Плата Metaboard может использоваться либо с пакетом разработчика GCC, либо с бесплатной интегрированной средой разработки Arduino. Разработчики Arduino предоставляют набор работоспособных демонстрационных проектов-примеров, которые можно сразу же загрузить и использовать. Разработчики Metaboard планируют также предложить набор примеров, созданных специально для платы Metaboard. GCC можно скачать по ссылкам [5, 6, 7]. Примеры проектов для GCC можно найти по ссылке [8], но для того, чтобы эти примеры правильно заработали, их нужно подкорректировать с учетом назначения портов ввода/вывода микроконтроллера Metaboard, и её тактовой частоты (частоты кварца). Все ресурсы, связанные с Arduino, можно найти по ссылке [9]. [Использование Metaboard в качестве Arduino] Как уже говорилось, Metaboard разработана с целью максимальной совместимости с Arduino, однако у Metaboard есть несколько отличий: - размещение коннекторов: все коннекторы привязаны к 2.54 миллиметровой сетке, чтобы дополнительные узлы схемы можно было собрать на макетном поле Metaboard. Для того, чтобы можно было загружать firmware напрямую из среды разработки IDE Arduino, необходимо модифицировать файл hardware/boards.txt в главной папке IDE Arduino. Добавьте следующие строки в конец файла: ############################################################## metaboard.name=Metaboard metaboard.upload.protocol=usbasp metaboard.upload.maximum_size=14336 metaboard.upload.speed=19200 metaboard.build.mcu=atmega168 metaboard.build.f_cpu=16000000L metaboard.build.core=arduino metaboard.upload.disable_flushing=true ############################################################## Поскольку Arduino настаивает на использовании последовательного порта для загрузки firmware (хотя это не нужно для USBasp), Вы можете вручную отредактировать файл Arduino preferences.txt, и установить переменную serial.port на имеющееся устройство. Файл preferences.txt находится на платформе Mac в папке ~/Library/Arduino. Теперь это должно работать без всяких проблем с опцией disable_flushing. Подробнее про интеграцию metaboard в среду разработки Arduino IDE см. [12]. Под "стандартным" Ардуино обычно подразумевают Arduino Uno. Если внимательно изучить принципиальную схему metaboard, то различия становятся понятны. Если кратко, то основные различия следующие: 1. Главное отличие, из которого вытекают все остальные отличия: на плате metaboard по-другому подключен к микроконтроллеру интерфейс USB. Если на Arduino USB подключен к порту UART микроконтроллера через микросхему FT232RL (или выполняющая аналогичные функции микросхема Atmel Atmega8U2/Atmega16U2), то на плате mataboard такой микросхемы нет, и порт USB подключен к портам GPIO микроконтроллера. Чтобы главное отличие было понятнее, давайте рассмотрим диаграмму разводки платы Arduino Uno, где показаны различия в организации интерфейса USB от платы metaboard. Голубым цветом показана организация USB у Arduino Uno, зеленым цветом у metaboard. Как видно на схеме, у Arduino Uno имеется отдельный аппаратный узел для USB (аппаратный преобразователь USB-COM порт, класс устройств USB CDC), и под него задействованы порты PD0 и PD1. У платы metaboard для организации интерфейса USB нет такой аппаратуры, сигналы порта USB напрямую подключены к портам микроконтроллера PD2 и PD4. Благодаря этому отличию схема metaboard гораздо проще, плата metaboard дешевле, и её проще спаять самому в домашних условиях, чем Arduino. 2. USB-загрузчики у Arduino и metaboard разные. У Arduino используется загрузчик через порт UART, а в metaboard используется загрузчик, эмулирующий программатор USBasp. Поэтому для загрузки кода скетча через среду Arduino IDE для платы metaboard нужно сделать специальные настройки, учитывающие загрузчик USBasp. Подробнее см. [12]. 3. Чтобы в среде Arduino IDE при работе с платой metaboard можно было увидеть через монитор отладочный вывод объекта Serial, нужно подключить к порту UART микроконтроллера отдельный переходник USB-UART TTL. Что это за переходник, где его найти и как использовать, см. [11]. Для Arduino такой отдельный переходник не нужен, потому что используется встроенный, распаянный прямо на плате Arduino переходник USB-UART TTL. 4. Порты PD2 и PD4 микроконтроллера metaboard задействованы под сигналы D+ и D- интерфейса USB. Поэтому, немотря на то, что эти порты выведены на те же внешние цифровые порты 4 и 6, как и у Arduino, в скетчах их использование ограничено. Например, эти порты не могут полноценно работать как входы, и не могут также работать как выходы, если metaboard подключена к компьютеру через USB. 5. Порты PD0 и PD1 у Arduino не только выведены на внешние цифровые порты 0 и 1, но они еще и подключены параллельно к узлу USB-UART TTL. Поэтому у Arduino эти порты обычно всегда заняты, использовать их под другие функции, кроме как для объекта Serial, нельзя. У metaboard эти выводы совершенно свободны, и доступны для любого применения - и как порты ввода/вывода GPIO, и как порт UART. 6. У платы metaboard интерфейс USB потенциально имеет гораздо больше возможностей, чем у Arduino. Дело в том, что у Arduino интерфейс USB для связи с компьютером может работать только в режиме последовательного виртуального порта (USB CDC), а у metaboard можно реализовать как минимум 2 класса устройств USB на выбор: USB HID или USB CDC (благодаря использованию библиотеки V-USB). Но этот функционал metaboard не поддерживается стандартной средой разработки Arduino IDE, он доступен только при использовании AVR Studio/Atmel Studio и/или тулчейна GCC (avr-libc, WinAVR). 7. У платы metaboard имеется макетное поле с отверстиями (шаг 2.54 мм). Собирается metaboard из легкодоступных деталей со штыревыми выводами (нет SMD-деталей, которые сложнее паять). Благодаря этому metaboard гораздо проще изготовить самому, и удобнее собирать на ней радиолюбительские конструкции. 8. У платы metaboard последней версии устранена досадная ошибка размещения верхних коннекторов - шаг 2.54 мм у верхних разъемов портов Arduino нарушен. Из-за этой ошибки Arduino нельзя установить в стандартные платы макетирования типа breadboard ProsKit. В последней версии metaboard этот недостаток устранен благодаря наличию второго ряда верхних коннекторов, где шаг 2.54 мм восстановлен. [Проекты, основанные на Metaboard] 1. AVRProg based on Metaboard site:metalab.at - ISP программатор AVRProg для микроконтроллеров AVR. На программаторе имеются сокеты для программирования микроконтроллеров AVR с 8, 20 и 28 выводами.
2. MHVBoard - an Arduino Clone site:makehackvoid.com - клон Arduino - MHVBoard. [Ссылки] 1. git clone git://gitorious.org/metaboard/metaboard.git - программное обеспечение и документация Metaboard (загрузка через систему GIT). |