Intel Galileo
Intel Galileo - вид спереди | Intel Galileo - вид сзади |
Общие сведения
Galileo - это устройство на основе микропроцессора Intel® Quark SoC X1000, который представляет собой 32-битную систему на кристалле класса Intel Pentium (datasheet). Это первое устройство с архитектурой Intel®, спроектированное таким образом, чтобы обеспечивать полную аппаратную и программную совместимость с платами расширения Arduino. Разъемы для подключения шилдов расположены точно так же, как в Arduino Uno R3, поэтому все пины этих разъемов - цифровые выводы 0-13 (и смежные с ними AREF и GND), аналоговые входы 0-5, разъем питания, разъем ICSP, выводы порта UART (0 и 1) - расположены на платах идентично, в соответствии с распиновкой Arduino 1.0.
Несмотря на то, что рабочее напряжение Galileo составляет 3,3В, устройство позволяет работать как с 3,3В-, так и с 5В-платами расширения. Для поддержки плат расширения, рассчитанных на 5В, на печатной плате устройства предусмотрен специальный джампер, который позволяет включить преобразование уровней логического сигнала на цифровых выводах устройства к напряжению 5В. В замкнутом положении (по умолчанию) преобразование активно, что позволяет Galileo работать с 5В-шилдами для Arduino Uno. Соответственно, для переключения уровня логического сигнала на 3,3В достаточно просто разомкнуть джампер.
Ну и конечно, Galileo программно совместим со средой разработки Arduino IDE, которая существенно упрощает процесс разработки. Помимо аппаратной и программной совместимости с Ардуино, Galileo также поддерживает ряд стандартных интерфейсов и портов ввода-вывода, которые обычно можно встретить в ПК: полноразмерный слот mini-PCI Express, порт Ethernet (100Mb), разъем Micro-SD, последовательный порт RS-232, USB Host-порт, USB Client-порт, а также флеш-память NOR объемом 8МБ. Эти особенности позволяют существенно расширить сферы применения устройства по сравнению со стандартными шилдами Ардуино.
Для получения дополнительной информации посетите страницу с часто-задаваемыми вопросами: FAQ.
Приступая к работе
Для начала работы с устройством необходимо просто подать на него питание от AC-DC адаптера на 5В, после чего подключить к компьютеру через micro-USB кабель.
Galileo совместим с платами расширения для Arduino UNO, а также с 3.3В и 5В-шилдами, которые спроектированы с учетом распиновки, принятой в Arduino Uno Revision 3, включая следующее:
- 14 цифровых выводов, 6 из которых могут использоваться в качестве ШИМ-выходов:
- С помощью функций pinMode(), digitalWrite() и digitalRead() каждый из 14 цифровых выводов может использоваться в качестве входа или выхода.
- Рабочее напряжение этих выводов может быть равным 3,3В или 5В. Максимальный выходной ток каждого пина составляет 10 мА, а максимальный входной ток - 25 мА. Все цифровые выводы Galileo сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом от 5,6 кОм до 10 кОм.
- A0 – A5: 6 аналоговых входов, соединенных с аналогово-цифровым преобразователем AD7298
- Каждый из 6 аналоговых входов (пронумерованных от A0 до A5) позволяет преобразовывать аналоговое напряжение в 12-битное число (4096 различных значений).
- Шина I2C, TWI: выводы SDA и SCL, расположенные возле вывода AREF.
- TWI: вывод A4 или SDA и A5 или SCL. С использованием библиотеки Wire данные выводы позволяют осуществлять связь по интерфейсу TWI.
- SPI:
- Для совместимости с шилдами Arduino Uno тактовая частота шины SPI по умолчанию установлена равной 4 МГц. Может варьироваться программно в диапазоне до 25 МГц.
- Примечание: несмотря на то, что в Galileo есть свой SPI-контроллер, устройство может работать только в режиме SPI-Master. Из-за этого Galileo не может выступать в роли ведомого slave-устройства по отношению к другому устройству, работающему в режиме SPI-Master. Использовать Galileo в качестве slave-устройства можно через разъем USB Client.
- UART (последовательный порт): скорость работы UART может настраиваться программно (цифровые выводы 0 (RX) и 1 (TX))
- ICSP (SPI): 6-контактный разъем для внутрисхемного программирования (ICSP) соединяется с соответствующим разъемом на существующих платах расширения. С использованием библиотеки SPI данные выводы позволяют обмениваться данными по интерфейсу SPI.
- VIN: Входное напряжение, которое подается на плату, когда Galileo запитан непосредственно от внешнего источника питания (а не от 5В, поступающих от гнезда питания через встроенный стабилизатор). Через этот вывод можно не только запитывать устройство, но и потреблять с него ток, когда питание на плату подается через гнездо для адаптера.
- Внимание: На вывод VIN можно подавать только стабилизированное напряжение 5В. Несоблюдение этого условия может привести к неправильной работе устройства либо к выходу Galileo из строя.
- Выход 5V: На этом выводе присутствует напряжение 5В, поступающее от внешнего источника питания или от USB. Максимальный ток, потребляемый платой расширения от этого вывода, не должен превышать 800 мА.
- Выход 3.3V: На выводе присутствует напряжение 3,3В, поступающее от встроенного стабилизатора. Максимальный ток, потребляемый платой расширения от этого вывода, не должен превышать 800 мА.
- GND: Выводы земли.
- IOREF: Вывод IOREF на плате Galileo позволяет подключенному к нему шилду подстроиться под текущее рабочее напряжение устройства. Напряжение на выводе IOREF зависит от положения джампера на плате, который отвечает за выбор уровня логического сигнала между 3,3В и 5В.
- RESET: Формирование низкого уровня (LOW) на этом выводе приведет к перезапуску выполняемой программы. Обычно этот вывод используется для функционирования кнопки сброса на платах расширения.
- Вывод AREF - не используется. В Galileo отсутствует возможность задания внешнего опорного напряжения для аналоговых входов.
- Изменять верхнюю границу диапазона входных аналоговых напряжений с помощью вывода AREF и функции analogReference() в Galileo нельзя.
Взгляните также на урок по созданию музыкального аудио секвенсора из проекта, который был представлен Arduino Verkstad на фестивале Maker Faire в Риме в рамках Intel Galileo Booth.
Подробнее о возможностях архитектуры Intel
Использование процессора Intel, а также аппаратные возможности системы на кристалле Clanton SoC позволяют создавать полнофункциональные решения, как сообществу производителей, так и студентам. Эта система также будет полезна профессиональным разработчикам, которые заинтересованы в простой и экономически выгодной платформе, в отличие от более сложных решений на базе процессоров Intel® Atom и Intel® Core.
- 400 МГц, 32-битный процессор, совместимый с набором команд архитектуры Intel® Pentium
- Кэш L1 объемом 16 КБ, расположенный на одном кристалле с ядром процессора.
- Встроенная память SRAM объемом 512 КБ.
- Простота программирования: один поток, одно ядро, постоянная скорость.
- Процессор совместим с интерфейсом ACPI и поддерживает различные режимы экономии энергии.
- Встроенные часы реального времени (RTC), которые могут работать от обычной батарейки на 3В ("таблетки") во время отсутствия питания.
- Разъем Ethernet 10/100 Мбит/с
- Полноразмерный слот для устройств mini-PCI Express*, совместимый с функциями PCIe 2.0
- С использованием переходника поддерживает устройства с полуразмерным разъемом mini-PCIe
- Разъем mini-PCIe содержит выводы порта USB 2.0 Host
- Разъем USB 2.0 Host
- К USB-порту может подключаться до 128 конечных устройств
- USB-разъем для программирования устройства
- Может использоваться не только для программирования Galileo, но и в качестве полноценного порта USB 2.0
- Стандартный 10-контактный разъем JTAG для отладки
- Кнопка для перезагрузки процессора
- Кнопка для перезапуска программы и подключенных шилдов
- Аппаратные возможности по хранению информации:
- По умолчанию - 8 МБ SPI Flash-памяти, которая предназначена для хранения прошивки (или загрузчика), а также последней загруженной в память программы (скетча). Причем для хранения скетчей зарезервировано пространство между 256 КБ и 512 КБ. Выгрузка программы с рабочего ПК на устройство осуществляется автоматически и не требует участия пользователя (за исключением того случая, когда требуется обновить прошивку во Flash-памяти).
- Встроенная память SRAM объемом 512 КБ. По умолчанию уже включена, поэтому никаких дополнительных настроек от пользователя не требуется.
- Оперативная память 256 МБ DRAM. По умолчанию включена.
- Возможность установки карты памяти micro-SD объемом до 32 ГБ.
- Устройство также позволяет работать с любым USB-накопителем, совместимым с USB 2.0.
- Энергонезависимая EEPROM-память объемом 11 КБ. Для работы с этим типом памяти предназначена библиотека EEPROM.
Схема, исходный проект и распиновка
- Принципиальные схемы: GalileoSchematic.pdf
- Файлы Cadence® Allegro®: GalileoReferenceDesign.zip
Питание
Galileo может быть запитан через AC/DC адаптер со штекером 2,1мм (центральный контакт - положительный), который вставляется в соответствующее гнездо питания на плате. Рекомендуется применять адаптер с выходным напряжением 5В и выходным током до 3А.
Электрические характеристики
Напряжение питания (рекомендуемое) | 5В |
Напряжение питания (предельное) | 5В |
Цифровые входы/выходы | 14 (из них 6 могут использоваться в качестве ШИМ-выходов) |
Аналоговые входы | 6 |
Суммарный выходной ток всех выводов | 80 мА |
Максимальный выходной ток вывода 3.3V | 800 мА |
Максимальный выходной ток вывода 5V | 800 мА |
Связь
В Galileo есть несколько средств, позволяющих ему взаимодействовать с компьютером, еще одним Ардуино или другими микроконтроллерами. В частности, приемопередатчик UART TTL (с уровнями напряжения 5В / 3,3В) позволяет осуществлять последовательную связь посредством цифровых выводов 0 (RX) и 1 (TX). Помимо этого, второй UART обеспечивает связь по интерфейсу RS-232 через "мини-джек" диаметром 3,5мм. USB-порты устройства позволяют обмениваться данными через USB по последовательному (CDC) интерфейсу, что позволяет Galileo взаимодействовать с различными приложениями на вашем компьютере (такими, как Serial Monitor или др.). Кроме того, будучи подключенным к компьютеру, Galileo может работать в качестве USB-мыши или клавиатуры. Более подробную информацию об этом см. в справке по библиотекам Mouse и Keyborad. Второй USB-порт (USB Host) может работать в качестве хоста и поддерживает подключение внешних периферийных устройств, таких как мыши, клавиатуры или смартфоны. Более подробную информацию об этом см. в справке по библиотеке USBHost.
Galileo - это первая модель Ардуино с разъемом типа mini-PCI Express (mPCIe), наличие которого позволяет подключать к плате полноразмерные или полуразмерные (через переходник) модули mPCIe, а также предоставляет пользователю дополнительный порт USB Host. К устройству можно подключать любые стандартные mPCIe-модули, например, модули, применяющиеся для работы с WiFi, Bluetooth или сотовой связью. Разъем mPCIe в Galileo изначально спроектирован так, чтобы быть совместимым с библиотекой WiFi. Для получения дополнительной информации см. руководство по началу работы с Intel® Galileo.
Для работы с проводными сетями Ethernet в Galileo также предусмотрен разъем RJ45. Следует помнить, что при подключении к сети необходимо указать IP-адрес и MAC-адрес устройства. Поддержку сетевого интерфейса обеспечивает встроенный аппаратный Ethernet-контроллер. В отличие от существующих шилдов Ардуино, для работы этого контроллера не требуется использования SPI-интерфейса.
Для работы со встроенным microSD-кардридером предназначена специальная библиотека SD. Взаимодействие между Galileo и SD-картой памяти обеспечивается интегрированным SD-контроллером, который в отличие от других моделей Ардуино также не требует использования интерфейса SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной TWI/I2C; для получения более подробной информации см. документацию. Для работы с интерфейсом SPI используйте библиотеку SPI.
Программирование
Загрузить свою программу в Galileo можно прямо из среды разработки (IDE) Ардуино (скачать). Для этого необходимо подключить устройство к компьютеру через USB-порт, обозначенный на плате как "USB Client" (расположен ближе к разъему Ethernet). Перед тем, как загружать свой скетч в устройство, в Arduino IDE необходимо выбрать целевую плату - "Intel Galileo". Подробнее об этом читайте в справке, уроках, а также в руководстве по началу работы с Intel® Galileo. Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Galileo спроектирован таким образом, чтобы его сброс осуществлялся программно прямо с подключенного компьютера.
После включения или перезагрузки платы возможны два различных сценария:
- если скетч уже находится во флеш-памяти устройства, то начинается его выполнение;
- если же память программ пуста, то устройство ожидает поступления команд на загрузку программы от IDE.
Загружать свои скетчи через среду разработки Ардуино можно и во время выполнения программы, при этом нажатие кнопки сброса на плате не требуется. В этом случае устройство прекращает выполнение текущего скетча; IDE дожидается окончания процесса прошивки, после чего дает устройству команду на выполнение новой загруженной программы.
Нажатие кнопки сброса на плате приводит к перезапуску выполняемой программы, а также к сбросу всех подключенных шилдов.
Особенности работы выводов в режиме OUTPUT
Когда выводы, сконфигурированные функцией pinMode(), работают в качестве выходов, то они находятся в так называемом низкоимпедансном состоянии. В Galileo работу пина в качестве выхода обеспечивает специальная микросхема-расширитель портов с интерфейсом I2C от Cypress (datasheet). В Galileo настроить в качестве выходов (OUTPUT) можно не только цифровые пины с 0 по 13, но и аналоговые входы с A0 по A5.
Если выводы упомянутого расширителя настроены на выход (OUTPUT), то максимальный выходной ток каждого из них (положительный ток) ограничен 10 мА, а максимальный входной ток, поступающий от внешних устройств (отрицательный ток), не должен превышать 25 мА. Следует иметь ввиду, что помимо лимитов на максимальный ток каждого пина, существуют еще суммарные лимиты токов для всех выводов, работающих в режиме OUTPUT. Так, суммарный выходной ток всех пинов не должен превышать 80 мА, а суммарный входной ток - 200 мА. Аппаратные ограничения различных пинов сведены в следующую таблицу:
Выходной ток (мА) | Входной ток (мА) | |
Ограничения каждого вывода | 10 | 25 |
Цифровые выводы 3,5,9,10,12,13 - суммарный ток | 40 | 100 |
Цифровые выводы 0,1,2,4,6,7,8,11 и аналоговые входы A0-A5 - суммарный ток | 40 | 100 |
Цифровые выводы 0-13 и аналоговые входы A0-A5 - суммарный ток | 80 | 200 |
Настройка джамперов Galileo
На плате Galileo предусмотрены три джампера, предназначенные для тонкой настройки устройства. Для того, чтобы Galileo был совместим как 3,3В-, так и с 5В-платами расширения, его внешнее рабочее напряжение может изменяться джампером IOREF. Когда джампер установлен в положение 5V, Galileo будет совместим с 5В-шилдами, и на выводе IOREF будет присутствовать напряжение 5В. Когда джампер установлен в положение 3,3V, Galileo будет совместим с 3,3В-шилдами, и на выводе IOREF будет напряжение 3,3В. От положения джампера IOREF также зависит диапазон допустимых входных напряжений, которые можно подавать на аналоговые входы устройства (входное напряжение не должно превышать выбранное рабочее напряжение). Однако, минимальная величина, различаемая функцией AnalogRead(), не зависит от положения джампера IOREF и всегда остается равной 5В / 1024 значения (по умолчанию 10 бит) или 0,0049В (4,9 мВ).
Внимание: Положение джампера IOREF должно быть таким, чтобы рабочее напряжение Galileo и рабочее напряжение подключенной платы расширения были одинаковыми. Несоблюдение этого условия может привести к повреждению либо устройства, либо платы расширения.
Джампер I2C-адреса (J2). Позволяет предотвратить конфликты адресов, которые могут возникнуть при совпадении I2C-адреса встроенного расширителя портов или микросхемы EEPROM с I2C-адресом любого из внешних устройств, подключенных к Galileo. Этот джампер используется для варьирования I2C-адреса встроенных микросхем. Если он находится в положении 1 (обозначено на плате белым треугольником), то 7-битный адрес расширителя портов будет равен 0100001, а 7-битный адрес микросхемы EEPROM - 1010001. При изменении положения джампера J2, адрес расширителя портов изменится на 0100000, а адрес EEPROM - на 1010000.
Джампер VIN. В Galileo вывод VIN может использоваться для питания плат расширения либо других внешних устройств от встроенного стабилизатора напряжения на 5В, соединенного с гнездом питания. Если через вывод VIN на плату расширения требуется подавать напряжение больше, чем 5В, то джампер VIN на плате Galileo необходимо разомкнуть, чтобы отключить встроенный источник питания 5В от разъема VIN на плате.
Внимание: если на вывод VIN подано напряжение больше, чем 5В, а джампер VIN не разомкнут, то такая ситуация является аварийной и может привести к повреждению или ненадежной работе устройства.
Автоматический (программный) сброс
Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Galileo спроектирован таким образом, чтобы его сброс осуществлялся программно прямо с подключенного компьютера. Для прекращения выполнения программы и перевода Galileo в режим загрузчика используются управляющие сигналы USB CDC-ACM. Эта особенность используется программным обеспечением Ардуино, что позволяет вам загружать свои программы в Galileo непосредственно из среды разработки Arduino простым нажатием одной кнопки. Подробнее об этом см. в руководстве по началу работы с Intel® Galileo.
Физические характеристики
Длина и ширина печатной платы Galileo составляет 10,7 см и 7,1 см соответственно, с учетом разъемов USB, UART, Ethernet, а также разъема питания, выступающих за пределы платы. Четыре крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2,54 мм и составляет 4 мм.