Видео: основы аппаратного взлома для разработчиков программного обеспечения для Linux

В этом интересном видео ELC Грант Лайкли, инженер ядра Linux и сопровождающий дерева устройств Linux, описывает свое пребывание во встроенном оборудовании.

Иногда лучшие учебные пособия приходят не от экспертов, а от опытных новичков, которые знакомы с новейшими технологиями начального уровня и могут вспомнить, что значит быть новичком.
Также помогает, если, как и Грант Лайкли, учитель является основной фигурой во встроенном Linux, который понимает, как программное обеспечение зажигает аппаратное обеспечение.

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


Слайд из презентации Гранта Лайкли ELC 2016

(щелкните изображение, чтобы увеличить)

Вероятно, окунулся во встроенный глубокий конец, когда Linaro запустил сообщество хакеров с открытым исходным кодом под названием 96Boards.org .
Спецификация 96Boards используется растущим числом 64-битных плат ARM, таких как DragonBoard 410c , HiKey , Andromeda Box Edge и Bubblegum-96 .


Слева направо: DragonBoard 410c;
HiKey;
Андромеда Бокс Эдж;
Жевательная резинка-96

Linaro, разработчик инструментов с поддержкой ARM, занимающийся улучшением кода Linux и Android для ARM SoC, выпустил 96Boards для обеспечения согласованной тестовой платформы.
«Мы создали аппаратное обеспечение, потому что оно позволяет нам решать наши программные задачи», - вероятно сказал аудитории ELC.
«Мы хотим, чтобы Linux на ARM вел себя согласованно на всех платформах».

Когда, вероятно, увидел, что пользователи 96Boards жаждут платы адаптера USB-UART и, будучи «глупыми и оптимистичными», он решил создать ее сам.
Он был вдохновлен цитатой Алана Кея : «Люди, которые действительно серьезно относятся к программному обеспечению, должны создавать свое собственное оборудование».

Несмотря на то, что он, вероятно, имеет степень инженера-электрика, он давно обратился к программному обеспечению, поэтому он более или менее начинал с нуля.
«Это было действительно пугающе», - сказал он.
«Была целая куча терминологии и технологий, которые я нашел очень непрозрачными».

Это никогда не было проще

Однако, вероятно, быстро выяснилось, что зрелая аппаратная экосистема с открытым исходным кодом облегчит его путешествие.
«Это никогда не было так просто», - сказал он.
«У нас есть бесплатное программное обеспечение, у нас есть услуги по созданию прототипов, и у нас есть производители, которые будут выполнять небольшие прогоны». Также полезны дружественные к хакерам дистрибьюторские компании, такие как SparkFun, Adafruit и SeeedStudio, которые «продают много аппаратных учебных материалов для хакеров». а также локальные хакерские пространства, открытые аппаратные проекты и хакерские практические сайты, такие как Hackaday, сказал вероятный.

Вероятно, рекомендуется начинать с одного из множества комплектов ввода / вывода с макетами и компонентами без припоя, большинство из которых расширяются на платах Arduino.
Различные наборы SeeedStudio с модулями ввода-вывода Grove и сенсорными модулями «позволяют легко играть с готовыми модулями и подключать их, не зная, как построить схему».

Вероятно, использовал один из этих наборов вместе со своими детьми для создания светового меча, но поскольку плата USB-UART направлялась в производство, ему пришлось отказаться от тренировочных колес.
Чтобы подготовиться к созданию прототипа платы, он научился использовать такие инструменты, как паяльник, мультиметр, руки помощи и осциллограф.


Паяльная станция «Руки помощи»

«Мне потребовалось много времени, чтобы понять, как паять», - сказал Скорее всего, повторив жалобу, высказанную Линусом Торвальдсом на ELC 2016. Скорее всего, я не отвечаю за обгоревшие пальцы или взорванные платы.
Действуйте на свой страх и риск.

Поскольку он хотел запустить 10 плат для тестирования, он, вероятно, воспользовался недорогим сервисом сборки, предложенным его производственным предприятием по производству прототипов, SeeedStudio.
«Я мог бы спаять их сам, хотя у меня были бы некоторые проблемы с сервисными креплениями», - сказал он.

Вероятно, также начал изучать программное обеспечение с открытым исходным кодом для разработки встраиваемых систем.
«Мне нужны были надлежащие средства проектирования, чтобы получить схему схем, преобразовать ее в схему расположения компонентов и отправить ее на производство».


Пример экрана дизайнера печатной платы Kicad

(щелкните изображение, чтобы увеличить)

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

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

Выбор компонентов

Одна из самых больших проблем заключалась в выборе компонентов.
«Вы идете в DigiKey, и вы сталкиваетесь с огромным каталогом компонентов с безумным набором следов», сказал Вероятно.
Он предложил использовать «0603» для двухконтактных компонентов, таких как резисторы и диоды.
«Он достаточно большой для переделки, но достаточно мал, чтобы не занимать много места на доске».

Другие проблемы включают в себя выбор высоты разъемов и опор, а также использование поверхностного или сквозного монтажа.
«Сквозное отверстие было предпочтительным для оборудования для любителей - его легко припаять и заменить компоненты, и многие люди боятся поверхностного монтажа», - сказал Вероятно.
Но поскольку производители предпочитают поверхностный монтаж, он попробовал это, и это было «не так уж плохо».

Вероятно, также описаны проблемы смещения уровня, которых, по его словам, обычно можно избежать путем обширного макетирования.
«Я не оценил, насколько сложными были уровни напряжения ввода-вывода, когда я только начинал», - сказал Вероятно.
Работать с шинами I2C и определить, «насколько сильными должны быть сигналы I2C», очень сложно.
(Подробнее об отладке I2C см. Видео, а также пост блога Likely на эту тему.)

Для печати на печатных платах для создания прототипов, вероятно, рекомендовали DirtyPCBs и OSHPark, в дополнение к выбранной им услуге Seeed Fusion PCB.
«Они поставляют компоненты, а также собирают и собирают платы», - сказал Вероятно.
«С помощью Seeed вы можете отправить весь свой заказ онлайн, включая файлы Gerber и спецификацию, и они предоставят вам онлайн-предложение».

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


Вероятно, закончена «96board UART Adapter Board», готовая к заказу

(нажмите на картинку, чтобы увеличить)

В конце концов, тяжелая работа окупилась.
Плата адаптера UART 96Boards теперь доступна у SeeedStudio за 15 долларов.

Видеопрезентация Grant Likely ELC 2016 под названием «Дизайн оборудования для разработчиков программного обеспечения» доступна ниже.
Слайды его выступления можно скачать в формате PDF здесь .

Эта статья защищена авторским правом © 2016 Linux.com и была первоначально опубликована здесь .
Он был воспроизведен этим сайтом с разрешения его владельца.
Пожалуйста, посетите Linux.com для получения последних новостей и статей о Linux и open source.