Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Захватывающая аркада-лабиринт по мотивам культовой игры восьмидесятых. Управляйте желтым человечком, ешьте кексы и постарайтесь не попадаться на глаза призракам.

Пикман

Аркады, На ловкость, 2D

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
20
MadMaxZZZ
Arduino & Pi

Вопрос выбора⁠⁠

7 лет назад

Доброго вечера, Уважаемые.

Обращаюсь к Вам с таким вопросом: есть желание собрать медиацентр на одноплатном ПК, соответственно хочется, на будущее, иметь возможность крутить 4K60FPS, поддержку H265 10bit, контент будет браться с домашнего NAS, домашняя сеть 1Gb.

Подскажите, на какую плату стоит обратить внимание, кто с этим сможет справиться?

Планируется использовать KODI, ну и ретрогейминг юзать - сейчас есть Paspberry PI3, но 4K она не потянет.

Прошу конкретных советов, возможно кто-то юзал или юзает подобное!

Выбор Одноплатный компьютер Разрешение 4К Медиацентр Текст
132
NeoLex
NeoLex
Arduino & Pi

Проблема с Orange Pi One Plus⁠⁠

7 лет назад

Доброго времени суток.
Подскажите, из тех кто заказывал эту штуковину. При запуске мигает светодиод с маркировкой D8, и нет никакой реакции на подключение LAN кабеля. Чип греется.

Без вставленной флешки реакции нет никакой вообще (что нормально, судя по обычной Orange Pi One)

Флешка SanDisk

При подключении к монитору (1366x768) выскакивает оповещение о неоптимальном разрешении.
Прошивка - Андроид 7.0 отсюда Флешку готовил и заливал прошивку как обычно, через PhoenixCard. Прошивается без ошибок.

Как думаете, это брак или я где-то допустил ошибку?

Показать полностью 4
Orange pi Orange pi One plus Помощь Одноплатный компьютер Гифка
41
150
DELETED
Лига Новых Технологий

Одноплатный ПК ASUS Tinker Board S получил 16 ГБ флэш-памяти и подорожал до $80⁠⁠

7 лет назад
Одноплатный ПК ASUS Tinker Board S получил 16 ГБ флэш-памяти и подорожал до $80

На выставку CES 2018 компания ASUS привезла множество новинок, в числе которых оказался одноплатный компьютер ASUS Tinker Board S – обновление прошлогодней модели Tinker Board, позиционируемой в качестве более производительной альтернативы популярному среди компьютерных энтузиастов и разработчиков микрокомпьютеру Raspberry Pi.


Единственное, что производитель добавил в обновленной версии своего микро-ПК – это модуль флэш-накопителя eMMC емкостью 16 ГБ. Оригинальная модель была вовсе лишена встроенной памяти. В остальном никаких изменения по сравнению с оригинальной моделью нет, не изменились даже размеры платы (85,6х54 мм) и расположение и назначение разъемов. А вот цена изменилась, она выросла с изначальных $68 до $80.


На всякий случай отметим, в конфигурацию ASUS Tinker Board S, построенного на базе SoC Rockchip RK3288, входит 2 ГБ ОЗУ, слот microSD, беспроводные интерфейсы Wi-Fi 802.11 b/g/n и Bluetooth 4.0, разъемы USB 2.0 (х4), порт Gigabit Ethernet, видеовыходы HDMI и MIPI-DSI, а также 40-контактный разъем для подключения внешних устройств. Как и прежде, мини-ПК поддерживает Linux, а его производительности достаточно для воспроизведения видео 4K и 24-разрядного звука с частотой дискретизации 192 кГц.

itc.ua

Показать полностью
Asus Одноплатный компьютер Зажрались
26
5
Debilator123
Сообщество Ремонтёров - Помощь

Orange pi + усилитель⁠⁠

8 лет назад

Всем привет!

Имеется одноплатный компьютер orange pi, усилитель класса D за 40р с али и блок питания на 5 и 9в от двд плеера. При подключении усилителя и компьютера к 1 бп из динамиков идет жуткий треск/свист, когда же я переношу усилитель на питание с отдельного БП то весь шум пропадает. Можно как-то это исправить шум на БП от двд? Усилитель и компьютер работают от 5в


Есть паяльник, мультиметр.

Ремонт техники Одноплатный компьютер Текст
7
205
tufed
tufed
Arduino & Pi

Udoo x86 для гиков и не только⁠⁠

8 лет назад

На днях в мои руки попала любопытная железка. Признаться я давно её ждал со времени анонса на кикстартере. И даже чуть-чуть отчаялся дождаться (т.к. мне слили причины, почему задерживался выпуск, та еще санта-барбара была). А заполучив её, будет преступлением не сделать хоть какой-нибудь обзор.

Что собой представляет Udoo x86?


Это мини-компьютер с 4х ядерным процессором на х86 архитектуре, имеет внушительный потенциал, который может выделить её среди сородичей. Есть 4 версии, различающиеся моделью процессора, размером оперативной памяти и наличием встроенного EMMC диска на 32GB.


Мне досталась версия Advanced с 4х ядерным процессором Intel Celeron N3160, EMMC на 32GB и 4GB DDR3L двухканальной оперативной памяти (что меня больше всего расстроило, хотелось-то все 8).

Из разъемов железка имеет:

разъем питания 12V.

стандартный SATA

Gigabit Ethernet

3 x USB 3.0 type-A

1x HDMI

2x miniDP++

Microphone + Headphone combo

2x UART ports

IR interface

Digital I/O Pins Up to 20 extended GPIOs

Arduino 101-Compatible:

Digital I/O Pins 14 (PWM)

Analog I/O Pins 6 (10 Bits of resolution)

и еще много чего...


В интернете уже есть видео обзор достоинств от производителя в сравнении с Raspberry Pi3, но хочется самому поиграться.


Итак, запускаем:

Первым делом конечно же был нажат Esc при запуске и просмотрен BIOS.

По моему скромному мнению (с коим вы, конечно, можете быть не согласны в корне) количество всевозможных настроек BIOS в некоторой степени коррелирует с количеством действий, которые можно произвести с железкой. Исходя из перечисленного выше, я был готов увидеть возможность «включить/выключить» порты, но разделы Advanced меня немного шокировали обилием переключателей режимов работы и выбора объемов памяти. А наблюдательные читатели увидят курсор мыши. Да, на этом сине-белом экране она работает.

Далее была исследована возможность «с чего бы такого загрузиться?» и самое главное «как?».

Ответом на этот вопрос подсказали «Boot manager» и «Boot From File». Последний открывает удобное меню выбора необходимого файла с путешествием по каталогам.

Boot Manager видит встроенный жесткий на 32Гб, флешки и диски на SATA-шлейфе. Так же есть слот под microSD карту и mini PCI-E, с которых загрузится скорее всего тоже получится.

Доступна загрузка как в режиме UEFI так и Legacy.

А Возможные операционные системы варьируются в пределах от Win7 до Win10, любого Linux и Android x86. Проверим.


Валявшаяся рядом флешка на 8гб с Ubuntu 14 версии тут же была воткнута в USB порт и загружена без установки за 60 секунд. Думаю может и быстрее если использовать не самую дешевую как я. Пробуем втыкаем Ethernet провод, запускаем огненного лиса и… интернет есть, видео работает вплоть до 1080р онлайн хотя и не идеально (имхо), и я не Линуксовод, поэтому прошу прощения не знаю как и чем еще по тестировать, но мне понравилось, работает из коробки.


Далее из ящика стола был извлечен 2.5 SATA диск, оставшийся у меня после замены сотрудникам их на SSD из-за начавшегося процесса осыпания. Пока ошибок не много, и он живой, но количество их увеличивается. Но тут производители чуть-чуть подвели, ибо разъем для питания этого диска от платки предполагает наличие вот такого переходника, коего в обычных компьютерных магазинах я не нашел, но зато их полно на aliexpress.

Можно конечно и самому сделать как здесь, и даже подцепить HDD 3.5 как здесь:

Цепляем диск, цепляем загрузочную флешку с win10x64 и за несколько кликов и несколько минут получаем установленную на 2.5 диск Windows 10. Автоматическая установка драйверов Win10 работает медленно, но работает, и пока я ставил драйвера на видеокарту, количество неопределенных потихоньку уменьшалось. обновления,… мдааа. Тут я понял что нескоро я смогу получить возможность полноценно работать. Причиной этого, как вы уже догадались, является вот этот процесс:

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

Но что нам один монитор? С одним каждый может. И я заказал переходнички DisplayPort=>DVI, а по получении стянул со столов коллег их мониторы для теста на пол часа. Чтобы уж совсем хардкорно, было запущено 3 окна хрома с видео на ютубе в качестве 1080р. Результат:

Вполне работает и даже так как надо, без замедления, но периодически, раз в 3-4 секунды микролаги на 5-10 кадров проскакивают на одном из экранов. С чем это связано не знаю. Пробую запустить скачанный 1080р мультик через Player Classic с набором кодеков:

Красиво, хорошо, но проблема та же. Изрядно перебрав варианты нашел решение: исчезают микролаги только если оставить два одинаковых приложения, а в третье окно запустить другое, например стандартный виндовый Media Player. В таком виде все три монитора показывают разное видео в 1080р без каких-либо тормозов и лагов вообще.


Тестить качественно 4К возможности нет, по причине отсутствия доступа к мониторам и телевизорам такого разрешения. На этих же с ютуба в 4К ролики запускаются, но проигрываются медленно. А скачанное демо в 4К Player Classic показывал только на 10-15 fps. Виндовый же его не осилил вовсе. Просто рабочий стол же с разрешением в 4К думаю подключится без проблем.


Поигравшись с Win10 и вызвав немало зависти у сотрудников, проходящих мимо, я отдал мониторы и перезагрузил устройство… и пропустил момент выбора boot загрузчика. С HDD загрузилась Win7x64, которая работала 2 года на ноутбуке и не была потерта на другом разделе. А загрузилась по причине установки Win7 в legacy, а Win10 в UEFI режимах. Загрузчик же для Win10 записался на 32гб встроенный диск. Это оставило загрузчик семерки на HDD и позволило Win7 беспрепятственно загрузится. Увидев приглашение войти в систему, я очень удивился живучести Win7, запустившейся на совершенно другом железе, и даже обрадовался, но рано. Мышь и клавиатуры не работали. Windows устройства на USB 3.0 без драйверов не желала воспринимать. Но чтобы попытаться скормить ей драйвера нужно зайти в систему. Что делать? А нужно зайти снова в биос и выбрать USB mose/keyboard = Enable.

После этих манипуляций система позволила ввести пароль и пустила внутрь. Активация слетела, это понятно, но тут меня поджидало другое разочарование: большинства драйверов для WIN7 нет.


Полностью драйвера есть только для win10, все остальные версии окошек вполне могут запускаться, но вот пользоваться всеми плюшками просто так не получится (по крайней мере на данный момент и из коробки). На форуме есть темы где люди успешно подсовывают драйвера для USB 3.0, Ethernet'а и т.д. или можно самому попытаться нарыть подходящий и скормить.


Ещё меня очень интересовал процессор. 4 ядра х86 архитектуры в такой крошке с заявленной неплохой производительностью? Проверим, сравним. Для сравнения далеко ходить не нужно, моя рабочая лошадка PC башенного типа с процессором Intel Core i5 760 (2.8 Ghz по умолчанию), старенький pentium D 2.8 Ghz нашего инженера, и вполне свежий чистокровный китаец планшетка-нетбук 4Good с процессором Atom Z3735F. Т.к. на Core i5 собрана суровая рабочая станция в коробке размера Full Tower, энергопотреблением 95W на процессор и 450W на всю машину, то она по-умолчанию будет олицетворять комфортную работу всего что только нужно. Atom Z3735F главный конкурент в этом споре с потреблением 2.2W, а Pentium D покажет насколько далеко мы эволюционировали за 10 лет (95W). Для справки Celeron N3160 2.24 Ghz имеет около 6W энергопотребления. Чтобы более-менее равноценно сравнить я взял AIDA64 Extreme 520 (что было под рукой), и запустил тесты на всех машинках. Результаты занес в таблицу:

Т.к. тесты разные, где-то мб/с, где-то ns, а где-то цифры в попугаях, то я привел результаты к процентному виду, взяв Core i5 за 100%.

Все тестировались на одной версии операционной системы Win7 x64 (кроме планшетки 4Good на Win10).


Здесь из обще массы выбились: планшет с Atom Z3735F по параметру задержки памяти показал 311ns, уж не знаю почему, но он показал себя хуже даже чем старенький Pentium c DDR2 памятью, задержки на которой должны били быть закономерно больше, а Udoo x86 показал минимальные задержки в 71ns.


Еще интересным моментом оказался тест на AES шифрование, по которому «малыши» обогнали рабочий ящик. А всё потому что новые поколения процессоров имеют инструкцию AES, которая позволяет показывать большую производительность именно на этой операции.


Следующим этапом было решено тестировать EMMC, в ход пошла уже знакомая флешка с Ubintu 14. 20 минут и ОС готова к работе. Холодный старт с EMMC теперь уже занимает 27 секунд. Возможно в своей заточенной ОС они и добились в своем видео загрузки в 17 секунд, но у меня под рукой был обычный дистрибутив для десктопа со всем сопутствующим.


Udoo x86 имеет Arduino-совместимые выводы. За это отвечает второй процессор Intel Quark SE core 32 MHz plus 32-bit ARC core 32 MHz или проще Intel Curie. Как я понял из даташита, в нём то как раз и спрятан акселерометр с гироскопом.

Подключается же он к основной системе через USB, это видно в BIOS в разделе управления USB портами. Это даёт возможность работать обоим процессорам асинхронно. Чтобы работать с Curie нам понадобится Arduino IDE желательно последней версии и модуль для ядра Curie. Но если рассказывать о тестах Arduino — это потянет на отдельную статью.


Итоги: железка мне лично очень понравилась, крошка имеет внушительную вычислительную мощность, внушительную кучку всевозможных портов и разъемов плюс внушительные графические возможности, может потягаться с моим персональному компьютером на Core-i5, и хотя Udoo уступает ему, но если сравнить размер: с ладошку VS железный ящик на столе, и сравнить энергопотребление 6W против 95W, это не только простительно, но и вызывает у меня немало восхищения. Да та таких два десятка внутрь моего компа влезет! А если их кластер собрать? И у меня есть еще много идей куда её пристроить. Из минусов: требуется доп.питание 12V., требуется коробочка, и если подключать sata-диск то требуется переходник для питания или нужно делать его самому. На главный же вопрос ответ напрашивается сам собой: Udoox86 интересна для гиков, и довольно проста в освоении для большинства умеющих держать мышь и следовать инструкциям. В случае windows всё ставится и работает из коробки, в случае linux тоже работает из коробки, хотя и могут быть подводные камни (как я столкнулся при попытке подключить убунте 3 монитора).


Статья моя, тег моё, в комментах ссылка на мою статью на хабре.

Показать полностью 15
[моё] Udoo X86 Arduino Компьютер Одноплатный компьютер Длиннопост
96
93
Dionisnation
Dionisnation
TECHNO BROTHER

Разработка одноплатного компьютера с нуля. Пособие для начинающих⁠⁠

9 лет назад

Я занимаюсь разработкой электроники. Начал сравнительно недавно — когда микроконтроллеры от Atmel стали известны благодаря платформе Arduino. Тогда меня это не особо заинтересовало — на тот момент я уже программировал их из AVR Studio, читал истории DiHalt и мечтал о разработке собственного автопилота. 3 курс, Новосибирск, НГУ — это было увлекательно…


Но я с интересом наблюдаю за развитием и ростом индустрии встраиваемых и портативных систем: появление RaspberryPI, многообразия SoC и плат на их основах, системы умного дома, интернет вещей, смартфоны с растущей вычислительной мощностью — все это фантастический простор для деятельности. Результатом наблюдения стало желание поучаствовать: попробовать себя в разработке простой платформы, с целью изучения и накопления опыта.


Проекты на микроконтроллерах мне порядком поднадоели — подводных граблей очень мало, ошибки допустить достаточно сложно, все запускается «из коробки» — ни гибкости, ни сложности. С системами на кристалле — SoC (System on Chip) до этого я дела особо не имел — разве что ядро собрать, да Debian запустить. Поэтому я решил запустить простенький SoC, а именно пройти путь от схемы до рабочего Linux на борту. Да, в последующем я буду не совсем корректно называть SoC процессором, надеюсь, никого это не смутит.


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


Проектирование


В результате обзора доступных SoC я остановил свой выбор на iMX233 от Freescale. Выводной корпус, 454 МГц, контроллер DDR памяти, интерфейс к карте памяти SD/MMC, отладочный порт — отличный набор новичка. В придачу — композитный видеовыход («тюльпан»), аудио вход/выход, SPI, I2C, UART, USB, LCD. Будет чем заняться на досуге.


После чтения статей о платформе BlackSwift в потенциальных кандидатах появился Qualcom Atheros AR9331, но смутило отсутствие подробной информации в открытом доступе. Жаль, занимательный кандидат.


Меня интересовала минимальная конфигурация, достаточная, чтобы запустить на ней Linux. Соответственно к процессору была выбрана микросхема памяти на 32 МБ (256 МБит) (по тому простому принципу, что она у нас была в наличии). На тот момент я еще не вычитал на десятках форумов о существовании сложностей с этим процессором, только изучил рекомендации производителя по трассировке и, довольный как слон, делал все по рекомендациям.


Вообще, процессор (или SoC, так правильнее) интереснее с той точки зрения, что при его запуске значительно дороже выходят ошибки проектирования. Например, некорректная разводка DDR памяти может выразиться как минимум в последующих ошибках чтения-записи, как максимум — в невозможности инициализации памяти вообще. Цепи питания процессора — ошибка сожжет процессор при первом включении, интерфейсы — потеря периферии на этих интерфейсах, и так далее.


Поэтому начинать проще с изучения готовых отладочных комплектов, например официальной платы и ее документации. Платы у меня не было, но документация доступна всем желающим. В придачу полезно изучить все инструкции по применению, почитать форумы (это уже жизненный опыт :)) — в общем, изучить всю доступную информацию о жертве. После изучения начинается механическая работа — нарисовать схему, а затем и плату. Четыре слоя, минимальная ширина проводника 0.2мм, зазора 0.2мм, отверстия 0.3мм.


Подключил все, что можно подключить безболезненно – аудио входы и выходы, вывел видеосигнал на контактные площадки, всякую простую периферию — микросхему памяти с I2C интерфейсом, еще одну с SPI, держатель для uSD карты, конфигурационные перемычки, обязательно отладочный порт, и потом на свободное место все что осталось. Плата получилась небольшая — 70х40мм, с минимумом компонентов. Для NAND памяти места не осталось, но я планировал запускаться с SD/MMC. Работы на одну ночь.

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


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


Становится не по себе — проблемы у людей вплоть до третьей переработки платы, процессор не работает с некоторыми модулями памяти, встроенная подсистема питания очень нестабильна, процессор очень придирчив к питанию, errata (документ, описывающий ошибки на процессор) на многие проблемы отвечает «ничем помочь не можем», софт в открытом доступе кривой, даже внутренний загрузчик нуждается в патче от производителя, в общем, проблемы намечаются серьезные. Выкачиваю BSP (board support package) от производителя — там каша из сотен скриптов и пакетов. Веселье начинается.


Спустя месяц приходят платы, и я начинаю эксперименты. Что-то в уголке подсознания всплывает, связанное с проблемами у монтажного производства.

Отступление
Эта система на кристалле приглянулась мне еще и тем, что несет на борту все необходимые для ее жизни регуляторы питания — как DC/DC (импульсные) так и LDO (линейные). В том числе и зарядное устройство для Li-Pol аккумулятора. Заводишь на SoC 5 вольт от USB — получаешь 1V8, 2V5, 3V3 и 4V2 на выходе. Что-то достается самому процессору, что-то уходит на память, можно аккумулятор подзарядить. Удобно. Можно сжечь все и сразу :)

SoC bringup

Прочь сомнения, подать питание!

И никаких признаков жизни. Это хорошо, хорошо потому, что без дыма. Подпаиваю кнопку «Power», смотрю осциллографом на ножку кварцевого резонатора, запускаю — есть генерация на кварце. 24 МГц, страшненькие, но есть. Щуп осциллографа с делителем, пассивный, спишем на него. «Дедушка старый, ему все равно»


Начинается самое интересное — bringup. Как этот термин лаконично перевести на русский в данном контексте? Попытка вдохнуть жизнь? Не звучит.


В процессоре есть свой первоначальный загрузчик, который при включении проверяет условия старта — откуда и что грузить. Он же отвечает на запросы по шине USB. Его можно сконфигурировать перемычками на плате, или однократно прошиваемой OTP-памятью. Если перемычки перепаять я еще смогу, то перепрошить неперепрошиваемое вряд ли. Распаиваю перемычки, подаю питание, и о чудо — с отладочного порта приходят первые байты данных! Это значит, что процессор доволен питанием, самые базовые его узлы запустились, и можно что-то делать дальше. Что значат эти коды, я узнал из кривоватого заголовочного файла, в виде PDF документа, с невнятными пояснениям, пропусками и за авторством huashan. Все ясно.


Хорошо, чтобы максимально оперативно работать с платой, оптимальнее будет подключить ее по проводам, и загружать исполняемый код по нажатию одной кнопки. Ок, подключаю по USB к компу. И ничего.


Никаких транзакций по шине USB, даже генерации на кварце. Плохо. Начинаю думать, изучаю плату, вспоминаю все тонкие моменты. Например, на этой плате рядом с процессором я поставил свой DC/DC преобразователь, с расчетом на питание какой-либо потребляющей нагрузки, подключил его к шине питания USB 5V, и ничем не нагрузил. Промеряю осциллографом — на входе 5 вольт, на выходе 5 вольт. Всплывают слова с производства, что-то по поводу резистора. Да, так и есть — в цепи обратной связи нет резистора. (- Капитан, капитан, якорь всплыл! — Хммм, скверная примета…)


Паяю резистор, и о чудо! Плата определяется по USB! До этого я смотрел на уровень напряжения шины питания — 5.1 вольт, никаких существенных помех, никаких пульсаций. Но процессору виднее. После запайки резистора заработал и DC/DC источник, пока без нагрузки, но, по крайней мере, перестал мешать процессору. Хорошо, что дальше.


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


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


Отступление

Для подключения к последовательным портам, для реализации всяких внутрисхемных JTAG отладчиков, программаторов и аналогичных задач в другом проекте был реализован USB-UART мост на FT2232. Двухслойный дизайн, выведены оба порта на гребенку с шагом 2 мм. В этом проекте другая история – USB-UART мост + платка сбора данных размещается в центре основной платы, и конструктив прибора предполагает ее удаление.

Т.е. в прибор плата без дырки в центре встать просто не сможет. Мне показалось нерациональным выбрасывать текстолит, и я внес свои творческие правки – собственно вышеописанный мост USB-UART(поменьше), и контроллер (MSP430FR5738) с датчиком тока, напряжения, электромеханическим реле, источником тока и термометром. Вся эта «горячая» часть гальванически изолирована от интерфейса RS485 через пару ADuM1281 и развязанный DC/DC (на плате еще не установлен). В контроллере крутится Modbus стек, т.е. десяток таких плат можно объединить в сеть, завести данные с плат в SCADA систему, и автоматизировать произвольные процессы. В частности у нас эти платки будут использоваться для испытания приборов на -40/+60 в термокамере. Налепил их на проверяемый прибор, и сиди@наблюдай как меняются токи, напряжения и температуры на ответственных узлах.

Все эти платы проектировались параллельно, поэтому я сразу заложил идентичные размеры и возможности гибкого соединения. Не зря :)

Отлично, компилирую исходники, собираю этот конструктор, загружаю, и получаю первые строчки из отладочного порта! Подсистема питания запустилась!


PowerPrep start initialize power…
Battery Voltage = 0.65V
No battery or bad battery detected!!!.Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002


Заглядываю в исходники инициализации памяти, разрешаю простейший тест, правлю ручками процедуру инициализации под мою конфигурацию платы, запускаю вновь:


PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected!!!.Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002
start memory test, at 0x40000000
end memory test, at 0x41FFFFFC

Замечательно! Тест памяти пройден! Это очень хорошо, теперь туда можно загрузить что-то посерьезнее.


U-Boot


Посерьезнее у меня это U-Boot. Я знаком с этой системой, мне она кажется вполне адекватной и функциональной. Позволяет работать с периферией — актуальные версии работают с USB, SD/MMC, Ethernet, загружать образы c FAT/ext2 разделов, передавать управление, и главное — моргать светодиодиком — все то, что нужно для счастья и более гибкой отладки на первоначальном этапе.


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


PowerPrep start initialize power…
Battery Voltage = 1.74V
No battery or bad battery detected!!! Disabling battery voltage measurements.
EMI_CTRL 0x1C084040
FRAC 0x92926152
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002
start memory test, at 0x40000000
end memory test, at 0x41FFFFFC


U-Boot 2015.04-rc3-00209-ga74ef40 (Mar 16 2015 — 12:47:34)CPU: Freescale i.MX23 rev1.4 at 227 MHz
BOOT: USB
DRAM: 32 MiB
MMC: MXS MMC: 0
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
MMC0: Bus busy timeout!
Card did not respond to voltage select!
MMC init failed
Using default environmentIn: serial
Out: serial
Err: serial
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
=>

И U-Boot запустился! Отлично, но плата запускается все еще по проводам. Надо разбираться с картой памяти. Хорошо, перепаиваю резисторы выбора загрузки, втыкаю карту — в терминале от процессора приходит ошибка. Вытаскиваю карту — другая. Вот это поворот! ©


SD/MMC


Начинаю искать, поиски выводят на русскоязычный форум, на полезные и интересные 380 страниц обсуждения. Боюсь, ребята до сих пор вспоминают этот SoC крепким словцом.


Выясняется, что для загрузки с SD/MMC карты нужно обязательно прошить OTP биты, тогда еще что-то может быть и получится. В частности надо перенастроить в регистре OTP Register: 24 биты SD MBR Boot[3] — прошить в единицу, и SD_POWER_GATE_GPIO[21:20] — выбрать NO_GATE — в моем дизайне управление питанием карточки не предусмотрено.


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


PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected


PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detectedPowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
...

Правлю исходники бутлетов, в частности добавлю дополнительные отладочные сообщения, и выхожу на проблемный участок кода:


PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail

Падает при подаче питания на DDR память. Хм. Где-то я уже читал об этом. А как до этого работало? Ладно, нестабильность найдена, надо разбираться.


Вокруг микросхемы памяти расположены ее законные развязывающие конденсаторы, 8 шт. по 100 nF. Но на выходе встроенного в SoC источника питания для памяти я поставил 2x10 uF, хотя производителем рекомендовано всего 1uF (инструкции читаю, если ничего другое уже не помогает, да). Ломать, не строить: отпаиваю один конденсатор, подключаю аккумулятор, и система стартует!


На самом первом фото виден этот конденсатор — вокруг него грязь, и он припаян только одним контактом.


PowerPrep start initialize power…
Battery Voltage = 3.75V
Boot from battery. 5v input not detected
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192
Try init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926192
start change cpu freq
hbus 0x00000003
cpu 0x00010001

initcall: 3e09f908 (relocated to 40002908)
initcall: 3e0a013c (relocated to 4000313c)
initcall: 3e0a2ec0 (relocated to 40005ec0)
initcall: 3e0a2ea8 (relocated to 40005ea8)
initcall: 3e0a2e88 (relocated to 40005e88)
initcall: 3e0a2e68 (relocated to 40005e68)
Net: Net Initialization Skipped
No ethernet found.
initcall: 3e0a2e5c (relocated to 40005e5c)
Initial value for argc=3
Final value for argc=3
### main_loop entered: bootdelay=3

### main_loop: bootcmd=«mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else»
Hit any key to stop autoboot: 0
=>
=>


Хе-хе, работает! Ок, запишу этот факт как причину потенциальных нестабильностей в будущем, ибо остался еще один 10uF, который тоже может усложнять жизнь. Теперь пробую с внешним питанием.


PowerPrep start initialize power…
Battery Voltage = 3.74V
5v source detected.Valid battery voltage detected.Booting from battery voltage source.
Mar 18 2015
07:59:13
Try poweron_pll
Try turnon_mem_rail
Try init_clock
EMI_CTRL 0x1C084040
FRAC 0x92926192
Try init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926192
start change cpu freq


Теперь начались зависания. Более того, ситуация не регулярная, периодически проявляется при питании от аккумулятора, периодически от внешних 5В, периодически стартует и работает. Опять правлю код, отключаю переключение процессора на PLL, ядро остается работать на 24МГц. Все стабильно. Меняю делитель PLL, скручиваю частоту, и плата успешно запускается на 320 МГц. Надо попробовать рекомендацию производителя — конденсатор на 100 pF в цепи импульсного DC/DC. Место на печатной плате под конденсатор я заложил. Позже вернусь к этому вопросу.


Linux kernel


Итак, на текущий момент есть плата, стартующая с карты памяти, и загружающая U-Boot. Дальше по плану надо загружать ядро.


Выкачиваю актуальные исходники ядра с kernel.org, распаковываю и в три клика собираю ядро.


make ARCH=arm CROSS_COMPILE=${CC} mxs_defconfig
make ARCH=arm CROSS_COMPILE=${CC} menuconfig
make ARCH=arm CROSS_COMPILE=${CC} -j4 zImage modules


Вот эти три клика

При настройке ядра надо строго указать слияние ядра+dtb


Boot options ---> Use appended device tree blob to zImage ----> Supplement the appended DTB with traditional ATAG information


Надо включить Kernel low-level debugging functions вместе с early printk

И еще enable dynamic printk() support

И еще видеоподсистему отключить

И еще половину лишних и не очень драйверов


И еще собрать dtb — device tree blob, структуру, описывающую ядру базовые вещи — количество памяти, периферию SoC, и т.д.


make ARCH=arm CROSS_COMPILE=${CC} imx23-olinuxino.dtb


И собрать все это в один файл


cat arch/arm/boot/zImage arch/arm/boot/dts/imx23-olinuxino.dtb > arch/arm/boot/zImage_dtb


После чего можно копировать ядро на флешь.

Запускаю, и получаю kernel panic. Логично, корневой файловой системы еще нет.


Debian


В качестве собственно операционной системы я выбираю Debian. По-моему, отличный дистрибутив — простой и надежный, как деревянная палка. Беру готовую сборку, распаковываю на раздел карточки, и указываю при загрузке ядра, где искать его законную корневую.


Дааа, есть над чем поработать.


Но, тем не менее, система работает, грузится с карточки памяти, размещается во всем диапазоне DDR памяти, и по праву может называться одноплатным компьютером! Это от схемы в голове до реализации в железе.


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


Заключение


На самом деле это только начало. Еще есть над чем поработать — разобраться с периферией, в частности интересен аудио и видеовыход, протестировать SoC на штатных частотах, а еще лучше разогнать, измерить потребляемый ток, проверить при минусовых и плюсовых температурах (интересна устойчивость DDR контроллера), проверить на ресурсоемких задачах (например, видеотрансляция с веб камеры по USB WIFI), и в результате сделать на платке WiFi-управляемый танк с камерой и направленным микрофоном. Но не сейчас. Сейчас у меня есть деловое предложение :)

Взято из - https://geektimes.ru/post/247678/
Автор - Бушуев Андрей
Показать полностью 6
Одноплатный компьютер Разработка с нуля Технопрон Радиолюбители Technobrother Длиннопост
27
simdolit
simdolit

"Большой брат" ips и tft⁠⁠

9 лет назад
"Большой брат" ips и tft
[моё] Компьютер Одноплатный компьютер Lattepanda
26
13
SwampTech
SwampTech

Raspberry Pi 3. Первый запуск, обзор, распаковка и первые впечатления.⁠⁠

9 лет назад

Недавно приехал сабж, и я решил поделиться небольшим обзором с общественностью.

Всем спасибо за внимание.

[моё] Электроника Raspberry pi Микрокомпьютер Одноплатный компьютер Обзор Видео
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии