Оглавление:

Создайте собственную печатную плату вычислительного модуля Raspberry Pi: 5 шагов (с изображениями)
Создайте собственную печатную плату вычислительного модуля Raspberry Pi: 5 шагов (с изображениями)

Видео: Создайте собственную печатную плату вычислительного модуля Raspberry Pi: 5 шагов (с изображениями)

Видео: Создайте собственную печатную плату вычислительного модуля Raspberry Pi: 5 шагов (с изображениями)
Видео: Создание сетевого хранилища на базе RPi Compute Module 4, платы WaveShare Dual ETH и софта OMV6 2024, Июль
Anonim
Создайте свою собственную печатную плату вычислительного модуля Raspberry Pi
Создайте свою собственную печатную плату вычислительного модуля Raspberry Pi
Создайте свою собственную печатную плату вычислительного модуля Raspberry Pi
Создайте свою собственную печатную плату вычислительного модуля Raspberry Pi
Создайте свою собственную печатную плату вычислительного модуля Raspberry Pi
Создайте свою собственную печатную плату вычислительного модуля Raspberry Pi

Если вы никогда раньше не слышали о вычислительном модуле Raspberry Pi, это, по сути, полноценный компьютер с Linux в форм-факторе RAM для ноутбука!

Благодаря этому появляется возможность создавать свои собственные платы, в которых Raspberry Pi является просто еще одним компонентом. Это дает вам огромную гибкость, поскольку позволяет иметь доступ к гораздо большему количеству контактов ввода-вывода, в то же время вы можете выбрать, какое именно оборудование вы хотите использовать на своей плате. Встроенный eMMC также устраняет необходимость во внешней карте micro SD, что делает вычислительный модуль идеальным для разработки продуктов на базе Raspberry Pi.

К сожалению, несмотря на то, что вычислительный модуль позволяет вам делать все это, ему все еще не хватает популярности по сравнению с традиционными Raspberry Pi Model A и B. В результате не так много аппаратных проектов с открытым исходным кодом, основанных на Это. И для тех, кто хочет начать разрабатывать свои собственные доски, количество имеющихся у них ресурсов довольно ограничено.

Когда я впервые начал работать с вычислительным модулем Raspberry Pi несколько месяцев назад, это была именно та проблема, с которой я столкнулся. Итак, я решил что-то с этим сделать. Я решил спроектировать печатную плату с открытым исходным кодом на основе вычислительного модуля, который будет иметь все основные функции, которые делают Raspberry Pi великолепным. Это включает в себя разъем камеры, USB-хост, аудиовыход, HDMI и, конечно же, разъем GPIO, совместимый с обычными платами Raspberry Pi.

Цель этого проекта - предоставить дизайн с открытым исходным кодом для платы на основе вычислительного модуля, которую любой сможет использовать в качестве отправной точки для разработки своей собственной платы. Плата была разработана на основе KiCAD, кроссплатформенного программного пакета EDA с открытым исходным кодом, чтобы позволить как можно большему количеству людей воспользоваться ее преимуществами.

Просто возьмите файлы дизайна, адаптируйте их к своим потребностям и создайте собственную доску для своего проекта.

Шаг 1. Детали и инструменты

Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты

Чтобы начать работу с вычислительным модулем Raspberry Pi, вам понадобятся следующие части:

1 x Raspberry Pi Compute Module 3 - я настоятельно рекомендую приобрести обычную версию, которая включает в себя встроенный eMMC, а не версию Lite. Если вы хотите использовать облегченную версию в своем проекте, вам придется внести несколько изменений в дизайн, включая добавление разъема для карты micro SD. Наконец, я тестировал плату только с CM3, и я не могу гарантировать, что она будет работать с первой версией CM, выпущенной еще в 2014 году.

Обновление 29/1/2019: Похоже, что Фонд только что выпустил вычислительный модуль 3+ и не только это, но теперь он также поставляется с опцией для eMMC 8 ГБ, 16 ГБ или 32 ГБ! Согласно техническому описанию, похоже, что CM3 + электрически идентичен CM3, что означает, что он в основном заменяет CM3.

1 плата ввода-вывода для вычислительного модуля. Моя конструкция была предназначена для использования в качестве отправной точки для разработки вашей собственной платы на ее основе, а не для замены платы ввода-вывода для вычислительного модуля. Итак, чтобы облегчить вам жизнь, я настоятельно рекомендую взять в руки плату ввода-вывода и использовать ее для разработки, прежде чем переходить к настраиваемой плате. Помимо предоставления вам доступа к каждому контакту CM и множеству разъемов, плата ввода-вывода также необходима для прошивки встроенной eMMC. Это то, что вы не можете сделать с моей доской, если сначала не внесете некоторые изменения в дизайн.

1 кабель камеры Raspberry Pi Zero или адаптер камеры вычислительного модуля - в моем дизайне я использую разъем камеры, очень похожий на тот, который используется на плате ввода-вывода вычислительного модуля и Raspberry Pi Zero. Итак, для подключения камеры вам понадобится либо кабель-адаптер, предназначенный для Pi Zero, либо плата адаптера камеры, которая поставляется вместе с комплектом разработки вычислительного модуля. Насколько мне известно, приобретать плату адаптера отдельно стоит довольно дорого. Итак, если вы, как и я, решили купить CM и плату ввода-вывода отдельно, чтобы сэкономить деньги, я советую вам вместо этого приобрести кабель адаптера камеры, предназначенный для Pi Zero.

1 модуль камеры Raspberry Pi - я тестировал плату только с оригинальным модулем камеры на 5 МП, а не с более новой версией 8 МП. Но поскольку первое, похоже, работает нормально, я не вижу причин, чтобы второй не работал, поскольку он должен быть обратно совместимым. В любом случае, версию 5MP сейчас можно найти на eBay менее чем за 5 евро, поэтому я рекомендую ее приобрести.

4 перемычки между гнездом и гнездом - вам понадобится как минимум 4 для настройки разъема камеры на плате ввода-вывода, но вы, вероятно, захотите получить больше. Они не нужны для специальной платы, но могут быть полезны, если вы планируете подключать какое-либо внешнее оборудование через разъем GPIO.

1 x HDMI-кабель - я решил использовать на своей плате полноразмерный HDMI-разъем, чтобы избавиться от необходимости в переходниках. Конечно, если вы предпочитаете использовать разъем mini или даже micro HDMI, не стесняйтесь адаптировать дизайн под свои нужды.

1 блок питания Micro USB на 5 В - зарядное устройство для вашего телефона, вероятно, подойдет для большинства случаев, если оно может обеспечить не менее 1 А. Имейте в виду, что это всего лишь общее значение, ваши фактические требования к питанию будут зависеть от оборудования, которое вы решите включить в свою пользовательскую плату.

1 USB-адаптер Ethernet. Если вы планируете установить или обновить практически любой пакет в своей системе, вам понадобится хотя бы временный доступ в Интернет. Адаптер Ethernet 2-в-1 плюс USB-концентратор, вероятно, будет хорошей комбинацией, поскольку у вас есть только один USB-порт. Лично я использую Edimax EU-4208, который работает из коробки с Pi и не требует внешнего питания, но у него нет встроенного USB-концентратора. Если вы собираетесь купить здесь USB-адаптер Ethernet, вы можете найдите список с теми, которые были протестированы с Raspberry Pi.

Если вы хотите добавить больше USB-портов и даже Etherent прямо на свою пользовательскую плату, я бы посоветовал взглянуть на LAN9512 от Microchip. Это тот же самый чип, который использовался в оригинальной Raspberry Pi Model B, и он предоставит вам 2 порта USB и 1 порт Ethernet. В качестве альтернативы, если вам нужны 4 порта USB, подумайте о том, чтобы взглянуть на его двоюродного брата LAN9514.

1 x DDR2 SODIMM RAM Connector - вероятно, это самый важный компонент всей платы и, вероятно, единственный, который не может быть легко заменен. Чтобы избавить вас от неприятностей, вам следует приобрести TE CONNECTIVITY 1473005-4. Его можно приобрести у большинства крупных поставщиков, включая TME, Mouser и Digikey, поэтому у вас не должно возникнуть проблем с его поиском. Однако будьте очень осторожны, дважды проверьте и убедитесь, что вы заказываете именно 1473005-4. Не совершайте той же ошибки, что и я, и покупайте зеркальную версию, эти разъемы недешевы.

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

Паяльное оборудование - Самыми маленькими компонентами на плате являются развязывающие конденсаторы 0402, но HDMI, а также камера и разъемы SODIMM также могут быть немного сложными без какого-либо увеличения. Если у вас есть хороший опыт пайки SMD, это не должно быть большой проблемой. В любом случае, если у вас есть доступ к микроскопу, я настоятельно рекомендую его.

Шаг 2: Прошивка EMMC

Первое, что вам нужно сделать, прежде чем вы начнете использовать свой вычислительный модуль, - это установить последний образ Raspbian Lite на eMMC. Официальная документация Raspberry Pi очень хорошо написана и подробно описывает весь процесс как для Linux, так и для Windows. По этой причине я очень кратко опишу шаги, которые вам нужно предпринять в Linux, чтобы они могли служить кратким справочником.

Прежде всего, вам необходимо убедиться, что ваша плата ввода-вывода находится в режиме программирования, а вычислительный модуль вставлен в разъем SODIMM. Чтобы перевести плату в режим программирования, переместите перемычку J4 в положение EN.

Затем вам нужно будет создать инструмент rpiboot в вашей системе, чтобы вы могли использовать его для получения доступа к eMMC. Для этого вам понадобится копия репозитория usbboot, которую можно легко получить с помощью git следующим образом:

git clone --depth = 1 https://github.com/raspberrypi/usbboot && cd usbboot

Теперь, чтобы собрать rpiboot, вам необходимо убедиться, что в вашей системе установлены пакеты libusb-1.0-0-dev и make. Итак, если вы используете дистрибутив на основе Debian, например Ubuntu, sudo apt update && sudo apt install libusb-1.0-0-dev make

Если вы не используете дистрибутив на основе Debian, имя пакета libusb-1.0.0-dev может быть другим, поэтому обязательно выясните, как он вызывается в вашем случае. После установки зависимостей сборки вы можете собрать двоичный файл rpiboot, просто запустив, делать

После завершения сборки запустите rpiboot от имени root, и он начнет ждать подключения, sudo./rpiboot

Теперь подключите плату ввода-вывода к компьютеру, подключив кабель micro USB к его USB-ВЕДОМОМУ порту, а затем подайте питание на порт POWER IN. Через несколько секунд rpiboot сможет обнаружить вычислительный модуль и предоставить вам доступ к eMMC. Это должно привести к появлению нового блочного устройства в / dev. Вы можете использовать программу fdisk, чтобы найти имя устройства, sudo fdisk -l

Диск / dev / sdi: 3,7 ГиБ, 3909091328 байт, 7634944 сектора

Единицы: 1 секторов * 512 = 512 байт Размер сектора (логический / физический): 512 байт / 512 байт Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт Тип метки диска: dos Идентификатор диска: 0x8e3a9721

Загрузка устройства Начало конечных секторов Размер Id Тип

/ dev / sdi1 8192 137215 129024 63M c W95 FAT32 (LBA) / dev / sdi2 137216 7634943 7497728 3.6G 83 Linux

В моем случае это был / dev / sdi, так как в моей системе уже подключено довольно много дисков, но ваш, безусловно, будет отличаться.

После того, как вы были абсолютно уверены, что нашли правильное имя устройства, вы можете использовать dd для записи образа Raspbian Lite на eMMC. Однако перед этим убедитесь, что в вашей системе нет уже смонтированных разделов eMMC.

df -h

Если вы обнаружите, что их размонтируют следующим образом, sudo umount / dev / sdXY

Теперь будьте предельно осторожны, использование неправильного имени устройства с dd может потенциально разрушить вашу систему и вызвать потерю данных. Не переходите к следующему шагу, если вы полностью не уверены, что знаете, что делаете. Если вам нужна дополнительная информация, ознакомьтесь с документацией по этому поводу.

sudo dd if = -raspbian-stretch-lite.img of = / dev / sdX bs = 4M && sync

После завершения команд dd и sync вы сможете отключить плату ввода-вывода от компьютера. Наконец, не забудьте вернуть перемычку J4 в положение DIS, и ваш вычислительный модуль должен быть готов к первой загрузке.

Шаг 3: первая загрузка

Перед первой загрузкой обязательно подключите USB-клавиатуру и монитор HDMI к плате ввода-вывода. Если все пойдет так, как ожидалось, и ваш Pi завершит загрузку, их подключение позволит вам взаимодействовать с ним.

Когда вам будет предложено войти в систему, используйте "pi" в качестве имени пользователя и "raspberry" в качестве пароля, поскольку это учетные данные для входа по умолчанию. Теперь вы можете выполнить несколько команд, чтобы убедиться, что все работает так, как вы обычно делаете на любом Raspberry Pi, но пока не пытайтесь ничего устанавливать, так как у вас по-прежнему нет подключения к Интернету.

Важная вещь, которую вам нужно сделать перед выключением Pi, - это включить SSH, чтобы вы могли подключиться к нему со своего компьютера после следующей загрузки. Вы можете сделать это очень легко с помощью команды raspi-config, sudo raspi-config

Чтобы включить SSH, перейдите в Параметры интерфейса, выберите SSH, выберите ДА, ОК и Готово. Если вас спросят, хотите ли вы перезагрузить компьютер, откажитесь. После того, как вы закончите, выключите Pi и, как только он закончит, отключите питание.

sudo shutdown -h сейчас

Затем вам необходимо установить подключение к Интернету с помощью адаптера USB Ethernet, который у вас уже должен быть. Если ваш адаптер также имеет USB-концентратор, вы можете использовать его для подключения клавиатуры, если хотите, в противном случае вы можете просто подключиться к своему Pi через SSH. В любом случае, оставьте монитор HDMI подключенным хотя бы на данный момент, чтобы убедиться, что процесс загрузки завершился должным образом.

Кроме того, ближе к концу он также должен показать вам IP-адрес, который ваш Pi получил от DHCP-сервера. Попробуйте использовать это для подключения к вашему Pi через SSH.

ssh pi @

После успешного подключения к вашему Pi через SSH вам больше не нужны подключенные монитор и клавиатура, поэтому не стесняйтесь отключать их, если хотите. На этом этапе у вас также должен быть доступ к Интернету с вашего Pi, вы можете попробовать проверить связь с чем-то вроде google.com, чтобы проверить это. Убедившись, что у вас есть доступ к Интернету, рекомендуется обновить систему, запустив, sudo apt update && sudo apt upgrade

Шаг 4: настройка камеры

Настройка камеры
Настройка камеры

Самая большая разница между обычной платой Raspberry Pi и вычислительным модулем заключается в том, что в случае более позднего, помимо простого включения камеры с помощью raspi-config, вам также понадобится файл пользовательского дерева устройств.

Дополнительную информацию о конфигурации вычислительного модуля для использования с камерой можно найти в документации. Но в целом, разъем камеры, среди прочего, также имеет 4 контакта управления, которые необходимо подключить к 4 контактам GPIO на вычислительном модуле, и вам решать, какие из них, при разработке своей пользовательской платы.

В моем случае при разработке платы я выбираю CD1_SDA для перехода к GPIO28, CD1_SCL на GPIO29, CAM1_IO1 на GPIO30 и CAM1_IO0 на GPIO31. Я выбрал именно эти контакты GPIO, так как хотел иметь на моей плате 40-контактный разъем GPIO, который также поддерживает совместимость с разъемом GPIO обычных плат Raspberry Pi. И по этой причине мне пришлось убедиться, что контакты GPIO, которые я использую для камеры, также не отображаются в заголовке GPIO.

Итак, если вы не решите внести изменения в проводку разъема камеры, вам понадобится /boot/dt-blob.bin, который сообщает вашему Pi настроить GPIO28-31, как описано выше. А чтобы создать двоичный файл dt-blob.bin, вам потребуется dt-blob.dts для компиляции. Чтобы упростить задачу, я собираюсь предоставить вам свой собственный файл dt-blob.dts, который вы сможете при необходимости адаптировать к своим потребностям.

Чтобы скомпилировать файл дерева устройств, используйте компилятор дерева устройств следующим образом:

dtc -I dts -O dtb -o dt-blob.bin dt-blob.dts

Я не уверен, почему, но приведенное выше должно привести к довольно большому количеству предупреждений, но до тех пор, пока dt-blob.bin был успешно сгенерирован, все должно быть в порядке. Теперь переместите только что сгенерированный dt-blob.bin в / boot, выполнив, sudo mv dt-blob.bin /boot/dt-blob.bin

Вышеупомянутое, вероятно, даст вам следующее предупреждение:

mv: не удалось сохранить право собственности на '/boot/dt-blob.bin': операция не разрешена

Это просто жалоба на то, что он не может сохранить право собственности на файл, поскольку / boot - это раздел FAT, которого и следовало ожидать. Возможно, вы заметили, что /boot/dt-blob.bin не существует по умолчанию, потому что вместо этого Pi использует встроенное дерево устройств. Добавление собственного внутреннего / boot, хотя и отменяет встроенный, и позволяет вам настроить функцию его контакта так, как вам нравится. Вы можете найти больше информации о дереве устройств в документации.

После этого вам нужно включить камеру, sudo raspi-config

Перейдите в «Параметры интерфейса», выберите «Камера», выберите «ДА», «ОК» и «Готово». Если вас спросят, хотите ли вы перезагрузить компьютер, откажитесь. Теперь выключите Pi и отключите питание.

После отключения питания от платы ввода-вывода с помощью 4 перемычек между гнездом и гнездом соедините контакты GPIO28 с CD1_SDA, GPIO29 с CD1_SCL, GPIO30 с CAM1_IO1 и GPIO31 с CAM1_IO0. Наконец, подключите модуль камеры к разъему CAM1 с помощью платы адаптера камеры или кабеля камеры, предназначенного для Raspberry Pi Zero, и подайте питание.

Если после загрузки Pi все заработало, вы сможете использовать камеру. Чтобы попытаться сделать снимок после подключения к вашему Pi через SSH, запустите, raspistill -o test.jpg

Если команда завершилась без ошибок и был создан test.jpg, это означает, что она сработала. Если вы хотите взглянуть на только что сделанное изображение, вы можете подключиться к Pi через SFTP и передать его на свой компьютер.

sftp pi @

sftp> получить test.jpg sftp> выйти

Шаг 5: Переход от платы ввода-вывода к специальной печатной плате

Переход от платы ввода-вывода к специальной печатной плате
Переход от платы ввода-вывода к специальной печатной плате
Переход от платы ввода-вывода к специальной печатной плате
Переход от платы ввода-вывода к специальной печатной плате
Переход от платы ввода-вывода к специальной печатной плате
Переход от платы ввода-вывода к специальной печатной плате

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

На задней стороне платы достаточно места для добавления ваших собственных компонентов, а для относительно небольших проектов вам, вероятно, даже не придется увеличивать размеры платы. Кроме того, если это отдельный проект и вам не нужен физический разъем GPIO на вашей плате, вы можете легко избавиться от него и сэкономить место на верхней стороне печатной платы. Заголовок GPIO также является единственным компонентом, который проходит через второй внутренний уровень, и его удаление полностью освобождает его.

Я должен отметить, что я сам успешно собрал и протестировал одну из плат и убедился, что все, включая камеру и выход HDMI, работает, как ожидалось. Итак, пока вы не внесете каких-либо серьезных изменений в способ маршрутизации всего, у вас не должно возникнуть никаких проблем.

Однако, если вам нужно внести какие-то большие изменения в компоновку, имейте в виду, что большинство трасс, идущих к разъемам HDMI и камеры, маршрутизируются как дифференциальные пары с сопротивлением 100 Ом. Это означает, что вы должны принять это во внимание, если вам придется перемещать их по доске. Кроме того, это означает, что даже если вы уберете заголовок GPIO из своей конструкции, что означает, что теперь внутренние слои не будут содержать никаких следов, вам все равно понадобится четырехслойная печатная плата, чтобы достичь дифференциального импеданса, близкого к 100 Ом. Если вы не собираетесь использовать выход HDMI и камеру, вы можете использовать двухслойную плату, избавившись от них и немного снизив стоимость плат.

Для справки: платы были заказаны у ALLPCB с общей толщиной 1,6 мм, и я не просил контроля импеданса, так как это, вероятно, немного повысит стоимость, и я также хотел посмотреть, будет ли это иметь значение. Я также выбрал иммерсионное золото, чтобы упростить ручную пайку разъемов, поскольку это гарантирует, что все контактные площадки будут красивыми и плоскими.

Рекомендуемые: