Русский
Русский
English
Статистика
Реклама

Производство и разработка электроники

Как портировать SDK Flutter на ТВ-приставку для разработки и запуска приложений Android TV

15.04.2021 16:11:54 | Автор: admin

Недавно мы успешно портировали фреймворк Flutter на ТВ-приставку c открытой программной платформой RDK. В этой статье расскажем о трудностях, с которыми пришлось столкнуться, и предложим решения для успешного запуска и повышения производительности.

Учитывая, что программный стек RDK или Reference Design Kit сейчас активно используется для разработки OTT-приложений, голосового управления приставками и других продвинутых функций для видео по запросу (VoD), мы хотели разобраться, сможет ли Flutter работать на ТВ-приставке. Оказалось, что да, но, как это обычно бывает, есть нюансы.

Далее мы по шагам распишем процесс портирования и запуска Flutter на встраиваемых Linux-платформах и разберемся, как этот SDK с открытым исходным кодом от Google чувствует себя на железе с ограниченными ресурсами и ARM-процессорами.

Но прежде чем переходить непосредственно к Flutter и его преимуществам скажем пару слов об исходном решении, которое было задействовано на ТВ-приставке. На плате работала связка набор библиотек EFL + протокол Wayland, а рисование примитивов было реализовано из node.js на основе плагинного нативного модуля. Это решение неплохо себя показало с точки зрения производительности при отображении кадров, однако сам EFL отнюдь не самый новый фреймворк для отрисовки. А в режиме выполнения node.js со своим огромным event-loopом казался уже не самой перспективной идеей. В то же время Flutter мог позволить нам задействовать более производительную связку рендеринга.

Для тех, кто не в теме: первую версию этого SDK с открытым кодом Google представил еще шесть лет назад. Тогда этот набор средств разработки годился только для Android. Сейчас на нем можно писать приложения для веба, iOS, Linux и даже Google Fuchsia. :-) Рабочий язык для разработки приложений на Flutter Dart, в свое время он был предложен в качестве альтернативы JavaScript.

Перед нами стоял вопрос: даст ли переход на Flutter какой-то выигрыш по производительности? Ведь подход там совершенно иной, хоть в конечном счете и имеется та же графическая подсистема Wayland + OpenGL. Ну и как там с поддержкой процессоров с neon-инструкциями? Были и другие вопросы, например, нюансы по переносу UI на dart или то, что поддержка Linux находится в стадии альфы-беты.

Сборка Flutter Engine для ТВ-приставок на базе ARM

Итак, начнем. Вначале Futter нужно запустить на чужеродной платформе с Wayland + OpenGL ES. В основе рендеринга у Flutter лежит библиотека Skia, которая прекрасно поддерживает OpenGL ES, поэтому в теории все выглядело хорошо.

При сборке Flutter под наши целевые устройства (три ТВ-приставки с RDK), к нашему удивлению, проблемы возникли только на одной. Не будем с ней сражаться, т.к. из-за старой архитектуре intel x86 она для нас не является приоритетной. Лучше сосредоточимся на оставшихся двух ARM-платформах.

Вот, с какими опциями мы собирали Flutter Engine:

./flutter/tools/gn \      --embedder-for-target \      --target-os linux \      --linux-cpu arm \      --target-sysroot DEVICE_SYSROOT      --disable-desktop-embeddings \      --arm-float-abi hard      --target-toolchain /usr      --target-triple arm-linux-gnueabihf      --runtime-mode debugninja -C out/linux_debug_unopt_arm

Большинство опций понятны: собираем под 32-битный ARM-процессор и Linux, выключая при этом все лишнее через --embedder-for-target --disable-desktop-embeddings.

Для сборки в системе должен быть установлен clang версии 9 и выше, т.е. это стандартный сборочный механизм Flutter, инструментарий кросс-компиляции gcc не пойдет. Самое важное подать корректный target-sysroot устройства с RDK.

Честно говоря, мы удивились, что при сборке не возникло вообще никаких нюансов. На выходе получаем заветную библиотеку flutter_engine.so и заголовок с необходимыми функциями для эмбеддера.

Теперь можно собрать целевой проект flutter/dart с нашей библиотекой/движком. Это сделать легко:

flutter --local-engine-src-path PATH_TO_BUILDED_ENGINE_src --local-engine=host_debug_unopt build bundle

Важно! Сборка проекта должна происходить не на устройстве с собранной библиотекой, а на хостовой, т.е. x86_64!

Для этого достаточно еще раз пройти путь сборкой gn и ninja только под x86_64! Именно она указывается в параметре host_debug_unopt.

PATH_TO_BUILDED_ENGINE_src это путь, где находится engine/src/out.

За запуск Flutter Engine под системой обычно отвечает embedder, именно он конфигурирует Flutter под целевую систему и дает основные контексты рендеринга библиотеке Skia и Dart-обработчику. Не так давно в состав Flutter добавили linux-embedder, и, в частности, GTK-embedder, так что можно воспользоваться им из коробки. На нашей платформе на момент портирования это был не вариант, нужно было что-то независимое от GTK.

Рассмотрим некоторые особенности реализации, которые пришлось учесть с кастомным эмбеддером (все, кто любит разбирать не нюансы, а исходники целиком, может сразу перейти к проекту нашего форка с доработками на github.com). К тому же по производительности наш вариант немного выигрывал у версии GTK, что было крайне важно для заказчика, и не тянул за собой весь зоопарк GTK-библиотек.

Так что же вообще нужно от эмбеддера для запуска flutter-приложения? Достаточно, чтобы он просто вызывал из библотеки flutter_engine.so

FlutterEngineRun(FLUTTER_ENGINE_VERSION, &config, &args, display /* userdata */, &engine_);

где в качестве параметров идет передача настроек проекта (директория с собранным flutter bundle) FlutterProjectArgs args и аргументов рендеринга FlutterRendererConfig config.

В первой структуре как раз задается путь bundle-пакета, собранного flutter-утилитой, а во второй используются контексты OpenGL .

// пример использования на github.com/DEgITx/flutter_wayland/blob/master/src/flutter_application.cc

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

Проблемы и их решение

Теперь поговорим о нюансах, с которыми мы столкнулись на этапе портирования. А как же без них? Не только ведь библиотеки собирать :-)

1. Краш эмбеддера и замена очередности вызова функций

Первая проблема, с которой мы столкнулись краш эмбеддера под платформой. Казалось бы, инициализация egl-контекста в других приложения происходит нормально, FlutterRendererConfig инициализирован корректно, но нет эмбеддер не заводится. Значит в связке что-то явно не так. Оказалось, eglBindAPI нельзя вызывать перед eglGetDisplay, на котором происходит особая инициализация nexus-драйвера дисплея (у нас платформа базируется на чипе BCM). В обычном Linux это не проблема, но на целевой платформе оказалась иначе.

Корректная инициализация эмбеддера выглядит так:

egl_display_ = eglGetDisplay(display_);if (egl_display_ == EGL_NO_DISPLAY) {  LogLastEGLError();  FL_ERROR("Could not access EGL display.");  return false;}if (eglInitialize(egl_display_, nullptr, nullptr) != EGL_TRUE) {  LogLastEGLError();  FL_ERROR("Could not initialize EGL display.");  return false;}if (eglBindAPI(EGL_OPENGL_ES_API) != EGL_TRUE) {  LogLastEGLError();  FL_ERROR("Could not bind the ES API.");  return false;}

// github.com/DEgITx/flutter_wayland/blob/master/src/wayland_display.cc корректная реализация, т.е. помогла измененная очередность вызова функций.

Теперь, когда нюанс запуска улажен, мы рады увидеть заветное демо-окно приложения на экране :-).

2. Оптимизация производительности

Настало время проверить производительность. И, честно говоря, она нас не сильно порадовала в режиме отладки (debug mode). Что-то работало шустро, что-то наоборот, имело большие просадки по фреймам и тормозило гораздо больше, чем что-то похожее на EFL+Node.js.

Мы немного расстроились и начали копать дальше. В SDK Flutter есть специальный режим компиляции машинного кода AOT, это даже не jit, а именно компиляция в нативный код со всеми сопутствующими оптимизациями, именно это подразумевается под по релиз-версией Flutter. Такой поддержки у нас в эмбеддере пока не было, добавляем.

Необходимы определенные инструкции, поданные аргументами к FlutterEngineRun

// полная реализация github.com/DEgITx/flutter_wayland/blob/master/src/elf.cc

vm_snapshot_instructions_ = dlsym(fd, "_kDartVmSnapshotInstructions");if (vm_snapshot_instructions_ == NULL) {  error_ = strerror(errno);  break;}vm_isolate_snapshot_instructions_ = dlsym(fd, "_kDartIsolateSnapshotInstructions");if (vm_isolate_snapshot_instructions_ == NULL) {  error_ = strerror(errno);  break;}vm_snapshot_data_ = dlsym(fd, "_kDartVmSnapshotData");if (vm_snapshot_data_ == NULL) {  error_ = strerror(errno);  break;}vm_isolate_snapshot_data_ = dlsym(fd, "_kDartIsolateSnapshotData");if (vm_isolate_snapshot_data_ == NULL) {  error_ = strerror(errno);  break;}
if (vm_snapshot_data_ == NULL || vm_snapshot_instructions_ == NULL || vm_isolate_snapshot_data_ == NULL || vm_isolate_snapshot_instructions_ == NULL) {  return false;}*vm_snapshot_data = reinterpret_cast <  const uint8_t * > (vm_snapshot_data_);*vm_snapshot_instructions = reinterpret_cast <  const uint8_t * > (vm_snapshot_instructions_);*vm_isolate_snapshot_data = reinterpret_cast <  const uint8_t * > (vm_isolate_snapshot_data_);*vm_isolate_snapshot_instructions = reinterpret_cast <  const uint8_t * > (vm_isolate_snapshot_instructions_);
FlutterProjectArgs args;// передаем все необходимое в argsargs.vm_snapshot_data = vm_snapshot_data;args.vm_snapshot_instructions = vm_snapshot_instructions;args.isolate_snapshot_data = vm_isolate_snapshot_data;args.isolate_snapshot_instructions = vm_isolate_snapshot_instructions;

Теперь, когда все есть, нужно собрать приложение особым образом, чтобы получить AOT-скомпилированный модуль под целевую платформу. Это можно сделать, выполнив команду из корня dart-проекта:

$HOST_ENGINE/dart-sdk/bin/dart \--disable-dart-dev \$HOST_ENGINE/gen/frontend_server.dart.snapshot \--sdk-root $DEVICE_ENGINE}/flutter_patched_sdk/ \--target=flutter \-Ddart.developer.causal_async_stacks=false \-Ddart.vm.profile=release \-Ddart.vm.product=release \--bytecode-options=source-positions \--aot \--tfa \--packages .packages \--output-dill build/tmp/app.dill \--depfile build/kernel_snapshot.d \package:lib/main.dart$DEVICE_ENGINE/gen_snapshot                               \    --deterministic                                             \    --snapshot_kind=app-aot-elf                                 \    --elf=build/lib/libapp.so                                   \    --no-causal-async-stacks                                    \    --lazy-async-stacks                                         \    build/tmp/app.dill

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

-Ddart.vm.profile=release \
-Ddart.vm.product=release \

указывают на то, что нам не нужен профайлер в комплекте и у нас продуктовая версия.

output-dill нужен для построения нативной библитеки libapp.so.

Самыми важными для нас являются пути $DEVICE_ENGINE и $HOST_ENGINE два собранных движка под целевую (ARM) и хост-системы (x86_64) соответственно. Тут важно ничего не перепутать и убедиться, что libapp.so получается именно 32-битной ARM-версией:

$ file libapp.so libapp.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked

Запускаем и-и-и-и... вуаля! все работает!

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

3. Подключение устройств ввода

В рамках этой статьи мы пропустим то, как подружили Wayland и эмбеддер с пультом, мышкой и другими устройствами ввода. На их реализацию можно посмотреть в исходниках эмбеддера.

4. Интерфейс на ТВ-приставке под Linux и Android и как увеличить производительность в 23 раза

Коснемся еще нескольких нюансов производительности, с которыми столкнулись в продуктовом UI-приложении. Нас очень обрадовала идентичность работы UI как на целевом устройстве, так и на Linux и Android. Уже сейчас Flutter может вполне может похвастаться очень гибкой портируемостью.

Еще отметим интересный опыт оптимизации самого dart-приложения под целевую платформу. Нас разочаровала довольно низкая производительность продуктового приложения (в отличии от демок). Мы взяли в руки профайлер и начали копать идовольно быстро обнаружили активное использование функций __brcm_cpu_dcache_flush и khrn_copy_8888_to_tf32 во время анимаций (на платформе используется чип процессора Broadcom/BCM ). Явно происходило какое-то очень жесткое пиксельное программное трансформирование или копирование во время анимаций. В итоге виновник был найден: в одной из панелей был задействован эффект размытия:

//...filter: new ImageFilter.blur(sigmaX: 10.0, sigmaY: 10.0),//...

Комментирование одного этого эффекта дало увеличение производительности приложения в дватри раза и вывело приложение на стабильные 50-60 fps. Это хороший пример того, как один специфический эффект может уничтожить производительность во всем приложении на Flutter при том, что он был зайствован всего-лишь в одной панели, которая большую часть времени была скрыта.

Итого

В результате мы получили не просто работающее продуктовое приложение, а работающее приложение с качественным фреймрейтом на Flutter на целевом устройстве. Форк и наша версия эмбеддера под RDK и другие платформы на основе Wayland находится тут: github.com/DEgITx/flutter_wayland

Надеемся, опыт нашей команды в разработке и портировании ПО для ТВ-приставок и Smart TV пригодится вам в своих проектах и послужит отправной точкой для портирования Flutter на других устройствах.

[!?] Вопросы и комментарии приветствуются. На них будет отвечать автор статьи Алексей Касьянчук, наш инженер-программист

Подробнее..

Запуск сложных плат с производства (и не только)

01.04.2021 18:23:17 | Автор: admin
Доброго времени суток, Хабр!



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



Печатная плата

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



Рис.1. Печатная плата модуля на iMX8MQ без компонентов.

Пассив на bottom

Первым делом, я установил пассив на нижнем слое платы. Сразу нашлась первая проблема. Изначально, под iMX8 устанавливаются конденсаторы типоразмером 0201, которые я решил поменять на 0402. Чтобы они установились корректно, я подредактировал наши стандартные футпринты (и правила в Altium), чтобы иметь возможность установить компоненты ближе друг к другу. Также, я решил изменить типоразмеры 0603 и немного не рассчитал. Видно, что на плате эти конденсаторы прижаты друг к другу, что не позволительно для автоматизированного монтажа. Так как проблема наблюдается только на 0603, и их расстановка позволяет увеличить расстояние между ними, я это исправлю на следующей итерации.



Рис.2. Установка пассивных компонентов на bottom.

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

Установка части компонентов на top

На bottom я буду ставить пассив и часть актива, а именно первичные источники питания. Входное питание моего модуля 3V3. Помимо нескольких DC/DC и LDO, на плате установлен PMIC (MC34PF4210A1ES) контроллер управления питанием, а также несколько вторичных источников питания. У PMIC входное напряжение тоже 3V3, но его устанавливать я пока не буду. Для фиксации платы я использую простой держатель, который не позволяет сдвинуться компонентам на bottom при прогреве платы феном сверху.



Рис.3. Установка части компонентов на top.

Теперь важно произвести визуальный осмотр платы с обеих сторон и убедиться, что все компоненты стоят ровно, нигде нет лишнего припоя и отсутствуют залипы между выводами компонентов. Следующий шаг снова проверка на КЗ мультиметром точек выходов источников питания.

Первая подача напряжения

Напряжение на плату я буду подавать от лабораторного источника питания с ограничением тока. Так как я еще не уверен в правильности схемы и трассировки источников питания, необходимо ограничить ток, например до 100мА, и установить напряжение 3V3. При таком токе сгореть ничего не должно, а в случае КЗ это я увижу на блоке питания.



Рис.4. Подача напряжения на плату.

Просто подпаиваю два проводка и включаю лабораторник. Дыма нет, потребление почти то же. Считаем, что пока все в норме. Кроме контроллера питания от 3V3 питается два DC/DC и два LDO. Для подачи разрешающего сигнала на питатели я использовал супервизор питания, так что, он тоже должен быть запаян. Обнаружилась вторая проблема. При разработке схемы, я забыл рассчитать делитель одного из DC/DC и, как следствие, вместо 0V9 на его выходе оказалось 2V5. Если бы в этот момент был запаян процессор, то с большой вероятностью он бы сгорел, так как это напряжение ядра. Делаю корректировки резисторов для feedback питателя, запускаю, все в норме.

Установка PMIC

Данный контроллер питания имеет несколько встроенных DC/DC и LDO. Помимо этого, он управляется по I2C и имеет несколько сигналов, типа PORb (сигнал сброса процессора) и др.



Рис.5. Установка PMIC на плату.

После установки микросхемы снова проверяем на КЗ входные/выходные цепи питания. Далее устанавливаем ограничение тока лабораторника на 200мА и подаем питание. По умолчанию, все выходы PMIC имеют фиксированные значения, поэтому сверяемся с даташитом и смотрим осциллографом питания. Помимо самих выходных напряжений, я смотрю генерацию выводов SW (перед индуктивностями), чтобы оценить нет ли срывов частоты. Проверяю выдается ли сигнал сброса для процессора. Все в норме. Продолжаем.

Установка процессора и памяти

Процессор имеет 621 болл (от англ. ball шарик), память LPDDR4 на 200 выводов, тоже в BGA исполнении. Их я запаиваю феном с нижним воздушным подогревом, так как корпуса маленькие и нет опасения что можно перегреть.



Рис.6. Установка BGA на плату.

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



Рис.7. Схема управления питанием VDD_ARM.

У меня этот вывод назван как PWM_LED (нужно будет назвать более корректно, чтобы не было путаницы в дальнейшем). Проверяем PORb, PMIC_nINT, PMIC_ON и другие сигналы на наличие КЗ. На этом этапе нужно особенно внимательно отнестись к тестированию, так как перепаивать процессор долго и дорого, а лишний раз нагревать плату не желательно.

Позволю себе сделать небольшое отступление по поводу выводов, которые находятся под процессором. Так как у нас нет рентген контроля, то сложно оценить пайку всех выводов под BGA, но способ все-таки есть. Если нужно убедиться, что проводник доходит до процессора, можно убрать с него все подтяжки и компоненты и прозвонить мультиметром относительно GND на диодной прозвонке. Например, если в дальнейшем будет не ясно доходит ли вывод PMIC_ON до процессора, можно снять PMIC, резисторы R117, R118 и конденсатор C240 (по схеме на рис.7.), тем самым освободив этот вывод. Есть еще вариант это в u-boot (загрузчик) настроить выводы на выход и выставлять на них логические 0 и 1, проверяя мультиметром напряжение, но это возможно далеко не всегда, например, если u-boot не стартует, либо вывод чипа нельзя сконфигурировать как GPIO, например, как выводы CSI/DSI для камеры и дисплея.

Данный процессор имеет множество вариантов загрузки. Я предусмотрел все возможные варианты с помощью резисторов boot_cfg. Углубляться в эту тему не буду, так как на данном этапе у меня подготовлена SD карта с u-boot. Таким образом, мне нужен только этот режим. В дальнейшем старт u-boot будет происходить с QSPI, а образ загружаться с eMMC. На этапе тестирования наиболее удобной является именно SD карта.

Еще до пайки платы модуля я собрал материнскую плату, на которой у меня выведен USB для консоли (консолей в iMX8 две, поэтому я использовал двухканальную микросхему USB-UART CP2105-F01-GMR). Также плата имеет мощный преобразователь на 3V3 и все необходимые разъемы для тестирования интерфейсов. Плата сложная, но это тоже макет, который позволит быстро все проверить и запустить. Процесс запуска был похожим на описанный выше.



Рис.8.Модуль на материнской плате.

Подаю питание и в консоли ничего. Потребление в норме, все питания на месте. Сигнал сброса присутствует. Проверяю генерацию кварцевых резонаторов и генераторов клоки есть. Нагрев процессора низкий. Для загрузки платы (как я выше писал) может быть использовано несколько интерфейсов: SD/eSD, MMC/eMMC, NAND, QSPI и SPI_NOR. Все эти интерфейсы имеют вывод клоков. Встаем поочередно на эти клоки перезагружая плату. Я увидел клоки на QSPI, следовательно, процессор пытается загрузиться с пустой микросхемы. Вот и третья проблема выбран не тот интерфейс загрузки. Переставляю режим на SD/eSD и:



Рис.9. Первый старт u-boot.

Заключение

После того, как произошел старт u-boot, с помощью программы MSCALE_DDR_Tool от NXP был проведен тест DDR (через USB_OTG), далее зашит образ и постепенно подняты интерфейсы, такие как I2S, MIPICSI, MIPIDSI, USB, HDMI и др. На момент написания статьи не запустилась только физика Ethernet, но, надеюсь, проблема скоро будет решена (обязательно допишу, когда запустится).
Спасибо за внимание и до скорых встреч и быстрых запусков!
Подробнее..

Цифровой рентген We need you username

05.04.2021 00:18:36 | Автор: admin

Привет, Хабр!

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

Эта публикация - клич к заинтересованной общественности. Примерно полгода назад мы выпустили первые образцы бюджетных микротомографов (воксель 15-50 мкм) и сейчас нуждаемся в интересных кейсах по их применению. В идеале это различные промышленные задачи, как традиционно решаемые рентгеновским контролем, так и что-то новое-модное "на попробовать".

Что мы предлагаем

  • бесплатный доступ к оборудованию для рентгеновской инспекции и микротомографии (в разумных пределах, Подмосковье-Люберцы)

  • бесплатную консультацию по вашему кейсу (по возможности, иногда есть нерешаемые задачи)

  • наше время и внимание

Что мы хотим получить

  • интересные задачи для отладки оборудования

  • кооперацию в широком смысле этого слова

  • сарафанное радио

  • соавторство в научных статьях

Для понимания что будет на выходе - смотрим картинки. Микротомография подойдет для различных объектов: электроника, растения, лабораторные животные, полимеры, сплавы, биологические и фармпрепараты. Основные ограничения: размер объекта до Ф80х100мм, отсутствие материалов с высоким атомным номером (свинец, вольфрам и т.п.).

Картинки

Яндекс станция миниЯндекс станция миниСаранчаСаранчаАлюминиевая пенаАлюминиевая пенаБатареяБатареяМодуль камеры смартфонаМодуль камеры смартфонаГуcеничка (привет Lexx)Гуcеничка (привет Lexx)ШишкаШишка
Подробнее..

Перевод Дайте собачке погулять автоматическое открытие двери при помощи Raspberry Pi

06.04.2021 00:08:46 | Автор: admin

Работа дома хороший вариант для многих из нас. Можно больше времени проводить с семьей (хотя бы теоретически), включая питомцев. Мой офис находится на втором этаже, так что я не всегда замечаю, когда собака хочет погулять. Конечно, можно поставить звонок и научить ее звонить, чтобы понимать, когда выпускать животное наружу. Но зачем, если можно придумать over-engineered решение? Технологий никогда не бывает много.

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

Что нужно для старта


Raspberry Pi 4 или Raspberry Pi 3 с источником питания.
Карта памяти объемом в 8 ГБ или больше с Raspberry Pi OS.
Raspberry Pi камера и кабель для обнаружения объектов.
Модуль широкоугольного объектива для малинки. Ну или любой другой модуль камеры, который может вам понадобиться все зависит от того, на каком расстоянии от двери будет установлена эта камера.
Динамики с 3,5 мм штекером. Можно использовать и мегафон было бы желание.
Монитор и клавиатура (по желанию) с HDMI и набором кабелей.

Как определить, когда питомец хочет на улицу при помощи малинки


1. Настройте Raspberry Pi. Если не знаете как это сделать, вот туториал.
2. Подключите камеру к малинке.
3. Активируйте камеру при помощи raspi-config. Для этого необходимо зайти под администратором и перейти к Interface Options > P1 Camera.
4. Перезагрузка.



5. Тестируем фокус камеры при помощи команд, указанных ниже. Понятно, что картинка видна только если монитор подключен к ПК. Если используется headless версия rasbian, то нужно использовать scp для отправки изображения на компьютер.

raspistill -o /home/pi/focus.jpg

6. Ставим git. Для загрузки кода и скриптов из удаленного репозитория нужен git (мануал ну очень подробно разжеван, чтобы его могли использовать даже зеленые новички прим. Переводчика).

sudo apt-get update && sudo apt-get -y install git

7. Клонируем репозиторй с нужным кодом в собственную директорию.

cd ~/
git clone github.com/rydercalmdown/pet_detector


8. Устанавливаем зависимости, виртуальное окружение и python зависимости.

cd ~/pet_detector
make install


9. Загружаем заранее обученные модели. В проекте используется модель YOLOv3, обученная на дата-сете COCO. Модель умеет распознавать практически любые объекты в доме и квартире включая котов и собак.

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

say this is a test


11. Редактируем файл /etc/rc.local для запуска скрипта. Сначала нужно открыть файл при помощи команды sudo nano /etc/rc.local, а затем добавить вот эту строку.

source /home/pi/pet_detector/env/bin/activate && cd /home/pi/pet_detector/src && python app.py &

12. Направляем камеру на дверь. Конечно, если собака или кошка мечутся по квартире, такая настройка не очень помогает. Но если питомец садится и терпеливо ждет то все работает идеально.


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

Подробнее..

Разгоняем оптрон до сотни

06.04.2021 18:11:06 | Автор: admin

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

И так, в чём основная проблема передачи сигнала через оптопару? Обычно в оптопаре на выходе стоит биполярный транзистор, а все биполярные транзисторы страдают такой проблемой как ёмкость переходов. Основную проблему создаёт ёмкость между коллектором и базой, во время переходных процессов именно она мешает транзистору быстро открываться и закрываться. Это явление называется эффект Миллера. Ещё во времена ламповых приёмников придумали, как с ним бороться. Основная идея в том, чтобы напряжение между базой и коллектором не менялось, в таком случае не придётся тратить время на перезарядку паразитной ёмкости.

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

А теперь модельное включение, которое должно показать предельно достижимое время реакции.

Такой сигнал (красный график) выглядит намного приятнее, фронты уменьшились до 0.1 мкс. В исходном они были где-то 2-3 мкс, то есть ускорение примерно в 20-30 раз. Теперь возникает вопрос, как этим воспользоваться на практике, снять сигнал с оптрона, не меняя напряжения. И первый способ - это каскодное включение (зелёный график).

Уже неплохо, со 100 кБит/с разогнались до 1 Мбит/с, но всё ещё не идеально. Если добавить ещё один резистор, то можно построить дифференциальный усилитель (красный график).

Немного Титце и Шенка, и пожалуйста, графики практически совпали, 3 мкс превратились в 100 нс.

Ура, всё работает, расходимся? Нет, нужно больше золота, так что переходим ко второй части. Сейчас мы боролись с выходной ёмкостью, но есть ещё входная ёмкость, и для неё так же существуют стандартные схемотехнические методы. Почему бы, например, не включить на вход конденсатор, чтобы он быстрее заряжал ёмкость светодиода.

Как видите, для нарастающего фронта (красный график) это оказалось серебряной пулей. Теперь надо разогнать спадающий фронт, и здесь возникает проблема. У нас ведь однополярное питание, а для разряда светодиода нужно отрицательное напряжение. Поэтому следующим шагом будет схема со сдвигом уровня (не знаю, есть ли тут общепринятое название). Ставим на выходе компаратор, который сравнивает ток через оптрон. Его можно собрать из пары токовых зеркал, подобный входной каскад повсеместно ставится в ОУ и компараторах.

Пары транзисторов продаются в одном корпусе, так что должно получиться довольно компактно. Вторая серебряная пуля готова, однако можно заметить, что спадающий фронт немного отстаёт. И наконец мы пришли к золоту: вместо самодельного компаратора ставим промышленный. Вот они, фронты 10 нс.

Можно поднять входную частоту до 100 МГц и посмотреть, что там в итоге получилось.

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

P.S.: в последней схеме с трудом подобрал номиналы, так что не надейтесь, что она у вас заработает на такой частоте.

Схемы моделировались в LTspice.

Подробнее..

100500-ая автоматика полива для растений. Часть 2 Сенсоры и электроника

08.04.2021 20:08:42 | Автор: admin

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

Уровень воды

Сначала был дискретный сенсор, сделанный из двух пластин нержавейки.

две пластинки нержавейки ждут касания водыдве пластинки нержавейки ждут касания воды

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

Далее были опробованы различные ультразвуковые датчики: HY-SRF05, HC-SR04, JSN-SR04T, US-025. Наиболее приемлемыми (по измеряемому диапазону) и стабильными (с точки зрения показаний и выносливости) были были выбраны HC-SR04.

HC-SR04 смотрит на воду в бакеHC-SR04 смотрит на воду в баке

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

поплавок с герконом. Такой без проблем тянет 12В, 0.4Апоплавок с герконом. Такой без проблем тянет 12В, 0.4А


Этот поплавок ставится вместе с дополнительным клапаном, как отдельная система, перекрывающая подачу воды в систему вообще. Но эта опция, в ряде случаев, помогает только тогда, когда есть пассивный аварийный дренаж, упомянутый выше. И вот кейс, который наглядно демонстрирует необходимость аварийного дренажа, даже в случае с опцией перекрытия ввода воды по переполнению бака: представим реверсивную систему, в которой, скажем, маты из минеральной ваты насыщаются раствором. Поскольку система реверсивная, то слив из матов происходит обратно в бак. Из матов вода сливается достаточно продолжительное время и уровень раствора в баке постепенно нарастает. Если в течение времени, пока раствор возвращается в бак, произойдёт долив воды (чего не запретишь пользователю сделать в ручном режиме) со срабатыванием аварийной отсечки, то уже и без того заполненный бак продолжит наполняться раствором из матов. Это зачастую означает перелив. Поэтому пассивный аварийный дренаж должен присутствовать в любом случае.

Слышал про использование лазерного датчика уровня. В комментариях подсказывают ставится в бак трубка с поплавком и на поплавок наводим лазер. С ним я пока не имел дел. Будет датчик попробую.

С трубкой есть ещё один способ, подобный лазерному поплавку та же самая трубка, без поплавка и лазера, верхний конец герметично закрывается и в этот же конец ставится достаточно чувствительный датчик давления воздуха. Чем больше уровень, тем выше давление. В трубке.

датчик давления крови. Достаточно чувствительный прибордатчик давления крови. Достаточно чувствительный прибор


Какие проблемы возникали при использовании ультразвуковых сенсоров? Первое, самое очевидное это колебания воды, при заполнении бака. Решается такое усреднением показаний, считываемых с датчика, в прошивке контроллера. Второе иногда бывают показания вообще за пределами диапазона пустой-полный бак. Подозреваю, что такое случается вследствие помех, наведённых на провод от датчика к контроллеру. Решается использованием провода не более двух-трёх метров и опять же программным способом если значение, уже усреднённое, достаточно долго находится выше верхней границы бака (а это значение мы задаём в момент настройки, калибровкой датчика по баку), то программа долива приостанавливается, закрывая клапан забора воды. Если же значение, читаемое с датчика, выше уровня в течение времени больше некоторого таймаута (назовём его TO1), то останавливаем забор воды, поднимая флаг соответствующей ошибки.

Третья проблема датчик залип на некотором значении внутри диапазона верх-низ бака. Такое, как правило, происходит по причине попадания воды на сенсор уровня. Для подобного рода ситуаций предусмотрен ещё один таймаут TO2. Это время, подбираемое опытным путём, устанавливает пользователь во время первичной настройки. Подбирается обычно так, чтобы быть чуть больше времени, затрачиваемого системой на заполнение бака с нуля до самого верха. Если этот таймаут превышен, то отключам автоматику долива, поднимая флаг ошибки. Вернуться к работоспособности автоматики можно после сброса пользователем данной ошибки.
Кто-то может удивиться, мол, зачем такие сложности? Если у вас теплица на земле, действительно, может статься так, что часть мер излишняя. Но если под вами есть соседи, то я бы порекомендовал проверить в тестовом прогоне все варианты аварий, приводящих к потопу.

Температура

Тут можно измерять температуры воды, воздуха. Изначально опыты проводились на обычных резистивных датчиках, типа, PT100. Далее были освоены датчики DHT11/22. И ещё позже DS18B20. Резистивным датчикам необходим аналоговый вход на контроллере. По входу на каждый датчик. DHT тоже хотят по входу на каждый, но уже можно использовать цифровые входы (коих, обычно, больше). В DHT плюсом идёт измерение влажности. DS18B20 хорош тем, что на один пин контроллера можно подключить несколько датчиков разом. По-итогу, на сегодня, в самом устройстве ставится один DS18B20, измеряющий температуру воды в районе магистрали смешивания удобрений. Это становится излишним, когда в сенсор EC уже встроен резистивный термодатчик, измерения с которого снимаются AD5934, входящим в состав блока для измерения EC.

DS18B20 подключается с резистором 10к между питанием и линией данных.

EC (ака TDS, ака солемер)

Для измерения количества солей были также перепробованы несколько способов:

1. По этой ссылке была найдена следующая схема

Измеритель EC/TDS на TL074. http://www.octiva.net/projects/ppm/Измеритель EC/TDS на TL074. http://www.octiva.net/projects/ppm/

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

2. Была ещё одна схема на TL074, но сейчас, к сожалению, не вспомню откуда и какая. Учитывая только память о том, что была пробная сборка на макетке, видимо она не заработала.

3. Самой простой и очевидной оказалась схема измерения влажности на таймере 555.

измеритель влажности на таймере 555. http://www.emesystems.com/OLDSITE/OL2mhos.htmизмеритель влажности на таймере 555. http://www.emesystems.com/OLDSITE/OL2mhos.htm

Это натолкнуло меня на изучение данного таймера и в итоге я собрал нечто похожее, что даже заработало. Погрешность была, мягко говоря, так себе. Однако воспроизводимость была 100%. Достаточно долго этот вариант меня вполне устраивал, пока не появилась необходимость сделать более точный. Так появился следующий вариант с применением...

4. AD5934 который водит в состав демонстрационной платы EVAL-0349, от Analog.

демо-плата EVAL-0349 от Analogдемо-плата EVAL-0349 от Analog


Тут уже всё стало более чем серьёзно (на самом деле есть варианты ещё более точные, с более широким диапазоном измерений и более кусачей ценой, но наврядли они пригодятся в растениеводстве). Шутка ли два диапазона измерений (первый: от 25S до 2500S, второй: от 0.2mS до 200mS) с относительной погрешностью измерений 0.5% для первого диапазона и 1% (после программной коррекции. Если без неё, то 3%) для второго. Вообще, AD5934, насколько я сегодня понимаю, был придуман больше для измерения качества проводной сети (типа, проверять затухание сигнала в витой паре). Но CN0349 рассказывает удивительные вещи и про растворы солей. Рекомендую изучить сей circuit note, для общего образования.

схемы EVAL-0349 с сайта analog.comсхемы EVAL-0349 с сайта analog.com


Если вкратце, то работает эта штука следующим образом: есть микросема ADG715, которая делает выбор между одним из двух пределов измерений EC или термодатчиком. Есть сам AD5934, который измеряет сопротивление с сенсора EC или резистивного термодатчика через операционный усилитель AD8606. Всё это дело заведено через изолятор питания ADuM5000 и изолятор данных ADuM1250. Чтобы всё это собрать и запустить на своей плате, пришлось изрядно покурить даташиты по всем этим компонентам. В итоге, когда всё заработало, измерения электропроводности воды стали максимально достоверными за всю историю проекта. Сами сенсоры, после самодельных, были взяты с aliexpress, с сантехнической резьбой пол-дюйма, со встроенным резистивным термодатчиком. Константа сенсора 1.0.

EC сенсор с удлиннителем примеряется в гидросистему аппарата полива растенийEC сенсор с удлиннителем примеряется в гидросистему аппарата полива растений

Для внедрения этого, достаточно длинного сенсора, в уже имеющуюся гидросистему, пришлось сделать небольшой удлинитель.

Сенсоры давления воды

Калибровка стального датчика давленияКалибровка стального датчика давления

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

Все эти сенсоры расчитаны на 5В питание. Выдают, соответственно, напряжение, линейно зависящее от давления, в диапазоне от 0.5В до 4.5В. АЦП контроллера STM32 запитан от 3.3В, следовательно в схему подключения привносится самый простой делитель напряжения резистивный.

Измерение кислотности раствора

Измерение кислотности раствора происходит обычным сенсором pH, которые также продают на aliexpress.

Как уже упоминалось, первый, достаточно добротный вариант удалось собрать на операционном усилителе CA3240. Схема была взята тут.

измеритель pH. http://www.emesystems.com/OLDSITE/OL2ph.htmизмеритель pH. http://www.emesystems.com/OLDSITE/OL2ph.htm

Первая версия, собранная своими руками выглядела как-то так

как ни странно, это заработалокак ни странно, это заработалоэтот вариант стал ещё лучше, уменьшившись в размерах и получив экранэтот вариант стал ещё лучше, уменьшившись в размерах и получив экран

Следующим стал модуль на специализированном решении (LMP91200 от Texas Instruments), заточенном под измерение кислотности стандартными сенсорами pH.

Типичная схема из даташита незамысловата, её и взял.

схема типичного применения LMP91200 из даташита. ti.comсхема типичного применения LMP91200 из даташита. ti.com

там же в даташите нарисовано как надо разводить плату.

Рекомендуемый в даташите на LMP91200 дизайн платыРекомендуемый в даташите на LMP91200 дизайн платы

По схеме из даташита, как видим, выход с LMP91200 подаётся на вход АЦП контроллера, я же направил этот выход на вход отдельного АЦП ADS1110. Этот АЦП уже передаёт данные на STM32 по I2C, через гальваническую развязку в лице ADuM1250 (данные) и дешевого изолятора питания на 1 ватт B0505S-1W (питание).

Изолятор питания B0505S-1WИзолятор питания B0505S-1W


Можно, конечно, как в EVAL-0349 использовать ADuM5000, но этот товарищ имеет одно неприятное свойство достаточно сильные помехи (про это можно почитать в даташите на данный изолятор и сопутствующие аппноты про EMI considerations), требующие разводить плату соответствующим образом.

RTC

Хоть это и не сенсор, но тоже важная периферия, поскольку в системе активно используются различные таймеры. Дело в том, что многочисленные проблемы с RTC, идущим вместе с STM32 прилично утомили. Среди этих проблем были некачественные blue-pill (да, именно на них была разведена основная масса версий плат), криво припаянные кварцы, невидимые сопли на контактах кварца или пинах (PC14, PC15), самого чипа контроллера, куда подключаются кварцы. Однажды я заметил, что часы идут, пока blue-pill не вставлена в разъёмы платы контроллера. Как только вставляешь не идут. Достаёшь опять идут. Отрезал от пилюли пины (PC14, PC15), которые вонзались в разъёмы часы пошли в любом положении. Не любят эти выводы лишних емкостей. Можно было бы как следует чистить платы, разъёмы, отрезать пины, покрывать лаком... да вот один случай совсем расстроил в один из аппаратов забрался таракан и прилёг погреться на чип STM32. Что за дискотеку он там устроил не очень понятно, да вот только напачкал прилично, прям на чипе и вокруг. Встроенный RTC встал. Чистка помогла, но было принято решение дублировать часы при помощи DS3221.

Что было опробовано, но пока не вошло в обиход в силу тех или иных причин

Счётчик воды

Счётчик воды для шлангаСчётчик воды для шланга


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

Счётчик воды с резьбойСчётчик воды с резьбой


На практике достичь такой однородности, чтобы не было существенных отклонений показаний от действительности у меня не получилось, поэтому развёрнуто говорить на эту тему у меня пока не получается.

СО2

Сенсор концентрации углекислого газа MG811Сенсор концентрации углекислого газа MG811


Эксперимента ради был также испробован сенсор концентрации углекислого газа MG811. Сенсор представляет из себя устройство, типа батарейки, с электролитом внутри. Судя по даташиту, ЭДС такой батарейки связан через уравнение Нернста с концентрацией углекислого газа в измеряемой атмосфере. Генерируемые токи такого элемента в районе единиц пикоампер, поэтому часто можно в продаже встретить MG811 в составе шилда, на котором расположен операционный усилитель для поднятия столь мизерных токов. Испольуется такой сенсор не сразу, типа, включил и измеряешь, а в условиях прогретого сенсора. Для этого в MG811 встроен нагревательный элемент, который запитывается по двум (из шести всего) отдельным пинам и потребляет пару сотен миллиампер. И эти миллиамперы, зачастую, несмотря на шилды со встроенными усилителями, требуется подавать с напряжением 6В. Не сказать, чтобы большая проблема поставить дополнительный повышающий преобразователь с 3.3 или 5 вольт, но учитывать этот момент всё же приходится. Вероятно, есть в природе шилды со встроенным повышающим преобразователем напряжения, но мне попадались без него. Времени на разогрев требуется около минуты, отзывчивость тоже не такая резкая, что подышал и увидел броски показаний. За неимением газового обрудования и возможности его применять в полной мере, отложил сей сенсор пока на полку. Кстати, для полноценной работы с ним будет нелишним обзавестись смесями калибровочных газов, что иногда затруднительно и доставляет хлопот поболее, чем с теми же калибровочными жидкостями для pH сенсоров.

Из известных мне, есть ещё инфракрасные сенсоры углекислоты, так называемые NDIR. Их есть несколько моделей. Отличаются скоростью отклика, диапазонами измерений, погрешностью и, разумеется, ценой. В качестве примера, на который в своё время посматривал, могу назвать MH-Z14A. Рекомендовать или отговаривать не могу, ибо не имею в наличии и не проверял. На Хабре есть те, кто держал подобные в руках (раз и два).

Датчик освещённости

Хороший пример описан тут

Системы, способы контроля и предотвращения нештатных ситуаций. Электроника

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

Watchdog

В контроллерах STM32 имеется встроенный независимый вочдог таймер именуемый IWDG (Independent WatchDoG). Он хорошо справляется с подавляющим числом зависаний контроллера, на большинстве контроллеров позволяет даже просыпаться из глубокого сна. Однако, как показала практика (особенно на сырых версиях электроники, да простят меня олдовые), в реальных условиях, даже он не всегда справляется. Поэтому был установлен дополнительный, аппаратный сторожевой таймер. С усовершенствованием схемотехники и прошивок, толку от него становится меньше. Тем не менее, для страховки он остался по сей день. Я использовал MAX6369. Для тех кто не в курсе, поясню вкратце у аппаратного сторожевого таймера выход WDO подключается на вход RESET контроллера, а вход WDI заводится на одну из ног контроллера. Когда всё работает, прошивка периодически генерирует импульс на WDI, чтобы дать понять сторожевому таймеру, что всё впорядке. Если в течение продолжительного времени на WDI такого импульса не приходит, сторожевой таймер даёт импульс на WDO, что приводит к аппаратному (как от кнопки) перезапуску контроллера. Можно такой сторожевик собрать и на таймере 555 (чем я тоже баловался в качестве эксперимента), но он занимает прилично места, по сравнению со специализированными решениями.

Неопредённые состояния во время старта

Неопредённые состояния во время старта больше всего досаждают на исполнительных устройствах. Пока контроллер не загрузился, на выходах творится непонятное, что приводит к нежелательным срабатываниям всего, что управляется этими выводами (управление питанием измерительной техники, клапана, дозаторы...). Чтобы устранить эти явления, на контроллере можно железно подтянуть управляющие выходы к земле (или питанию. В зависимости от полярности управляющего сигнала) резистором. В данном случае так сделано, например, для полевых транзисторов, которые управляют питанием измерительных модулей и Raspberry Pi.

разные варианты драйвера нагрузок, до и после испытанийразные варианты драйвера нагрузок, до и после испытаний

Поскольку у меня исполнительными устройствами усправляет отдельный драйвер, где управляющие сигналы создаёт экспандер MCP23017, то подтянуть все 16 линий, вероятно (следует заглянуть в даташит на L6205 и/или протестировать в железе, чтобы уточнить однозначно), можно на нём. Однако, чтобы получить результат наверняка и с меньшим числом точек запайки я выбрал установку достаточно мощного полевого P-канального транзистора на питание всех L6205. В результате, этим полевиком управляет основной контроллер STM32 через оптопару. Логика прошивки сначала инициализирует все входы/выходы на выход, пишет в регистры выходов нули (всё выключено), зачитвает обратно содержимое этих регистров, сверяет с тем, что только что было записано и, если все биты совпадают, то старт считается успешным. Если старт определился как неуспешный, поднимается соответствующий флаг ошибки и работа всей силовой части блокируется (основной контроллер не станет открывать полевик до устранения проблемы). Если же старт засчитан успешным, то полевик всё ещё будет закрыт. До тех пор, пока не будет выдана команда на запуск одной из нагрузок, которая (команда) отправит на экспандер драйвера последовательность бит (где как минимум один из битов будет отличаться от нуля) и не прочитает обратно такую же последовательность. Когда все эти условия выполнятся, основной контроллер открывает MOSFET и только тогда драйвер начинает питать нагрузку. По завершении работы нагрузки/нагрузок, основной контроллер вновь отключает питание силовой части драйвера, закрывая полевик до следующих мероприятий. Если происходит физический обрыв проводов (скажем, отгрызла внезапная мышь), то линия управления полевым транзистором ложится в ноль (для P-канального, на самом деле, в 1) и нагрузки не сдвинутся с места (как минимум, до тех пор, пока не будет отгрызен подтягивающий резистор).

Кстати, о силовом драйвере. Однажды, пришёл ко мне один молодой человек и попросил дать ему попрактиковаться в сборке. Было ему выделено место, даны компоненты, паяльник, платы, схемы, тестовый аппарат. Собрал он пару таких драйверов и стал их тестировать. Не получается. Звонит мне, рассказывает невероятные вещи. Приехать на место и проверить лично в чём там дело непросто - я в другой стране. В драйвере этом, в роли экспандера, использовалась 74HC595. Он тычет в неё и говорит, мол, то ли микросема отстой, то ли прошивка твоя не важнецкая. Дело дрянь, вобщем. Я проверяю прошивку на своём девайсе, перепроверяю все подключения у себя, шлю ему видео. И у него всё-равно не работает. Ну, думаю, что с микросхемами-то может быть. Я же не DI HALT, который всё-всё видывал в силу огроменного опыта и может писать про подделки, в которых нет кристаллов или ещё что похуже. Мне чисто по теории вероятности левак достанется крайне наврядли - думал я. А вариант с прошивкой не подтверждался в моих тестах.
Микрухи, действительно, оказались леваком. Об этом я узнал, когда прибыл на место событий. Чувак к тому моменту пропал за горизонтом. Так что, если ты вдруг это читаешь, дядька, знай - ты был прав, микрухи оказались шляпой. А я ошибся.

Малина

Иногда Raspberry Pi может перестать подавать признаки жизни. Как сказано выше, основной контроллер может управлять её питанием. И в таких случаях тишины он именно это и делает. Причин тишины от малины может быть несколько. Наиболее частые из них: перегрев малины или износ карты памяти. Для нивелирования зависаний по перегреву основной контроллер выжидает заданный промежуток времени, после чего перезапускает питание Raspberry Pi. То же самое происходит и в случае с износом карты памяти, только здесь, как несложно догадаться, рестарт уже не помогает. Специальный счётчик даёт несколько попыток рестарта. Если они не помогли, то, как это уже стало традицией, поднимается соответствующий флаг ошибки и малина оставляется в покое.

Чтобы износ карт памяти происходил как можно реже, используется как минимум две карты. Одна из них монтируется в режиме только для чтения. С неё происходит загрузка системы. Логи, данные, графики пишутся на отдельную карту, смонтированную для чтения/записи. Кроме этого, в ходе испытаний были испробованы различные карты памяти и из них выбраны наиболее долговечные. Разница в жизнеспособности разных представителей карт памяти измеряется порядками. Некоторые карты перестают записываться, а некоторые даже читаться. Чтобы не просрать все полимеры логи, написана функция, запускающая телеграм-бота, который периодически шлёт пользователю графики логов.

Питание

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

Кстати, о клеммах

Есть такие клеммы, очень популярные, вы, скорей всего, их видели, зажимные с винтами.

клемма поплылаклемма поплыла

Они были использованы в первых версиях аппаратов на проводах основного насоса. Сначала ставились рядом с мотором, чтобы удобно было поставить обратный диод. Когда принесли аппарат с погоревшими клеммами, диод я стал запаивать, а клеммы вынес подальше, сантиметров на 10-15. Это не изменило ровным счётом ничего. Больше я их там не использую вообще, только запайка. А вот разём GX16 справляется и не чернеет даже (хотя, лет через 10, кто его знает).

Пара историй про химические фэйлы

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

Второй аналогичный случай произошёл на бетонном полу. Бетон тоже пришёлся органике по вкусу. Никакая перекись не смогла справится со следами после уборки. Спустя время, в этом месте, на бетоне продолжилась жизнь в лице зелёной плесени.

Ещё один случай связан с кислотой. Там была азотная кислота, около 35% концентрации, подключенная в дозатор. На КДПВ из первой части видно, как штатные светло-кремовые шланги дозаторов переходят через черные соединители в коричневые (бывают черные) ПВХ. Это был тот самый случай. Как выяснилось (да простят меня химики), так делать категорически не следует. ПВХ за считанные дни задубел, соединители превратились в сопли-порошок, система потекла (хорошо, что аварийный дренаж был в наличии). Теперь только шланги, рекомендованные производителем под эти кислоты, с регламентом снятия/замены. И кислоты разводить в воде.

светлые трубочки идущие в канистры - расходный материалсветлые трубочки идущие в канистры - расходный материал
Подробнее..

Recovery mode Проект электронного мультитула QUARK

19.04.2021 06:22:01 | Автор: admin

Еще в 2018 наткнулся на довольно известный в своих кругах проект Пультоскоп. Если кратко, то это крайне примитивный осциллограф, построенный на arduino 328 серии. Учитывая его простоту, я его повторил за несколько часов на макетке и тут меня понесло... Но обо всем по порядку.

Итак. Повторенное устройство оказалось настолько нужным и удобным, что сама-собой возникла идея дополнить его базовыми функциями мультиметра, в том числе измеритель емкости конденсаторов и индуктивности катушек. В результате я начал работу над созданием идеального "под себя" устройства. Эмпирически прикинув функционал, который так или иначе задействую при проектировании своих устройств, я исключил ненужные мне функции и определил обязательные. В первую очередь, исходил из того, что в большинстве своем я не использую напряжения свыше 24 вольт и токи свыше 3 ампер. Обычно это низковольтное оборудование, IoT, ESP32, arduino и схожие по идеологии устройства. Соответственно и при измерении сопротивлений, емкостей и индуктивностей важна не столько точность, сколько понимание номинала и, желательно, автоматическое определение цветовой и кодовой маркировки. Обычно измерение этих параметров требуется при проектировании питающих схем устройств. Обязательна хотя бы минимальная проверка наличия данных на порту UART, а в идеале и их чтение. Здесь же я стал размышлять над формфактором устройства.

Собственно список того, к чему я пришел в итоге:

  • Вольтметр с точностью измерения не выше 0.01 вольта. Обычно достаточно даже десятых долей. При этом, обязательно необходимо отображение значений логических уровней для CMOS1.8, TTL и CMOS5.0 вольт.

  • Амперметр до 3 ампер с возможностью отображать график изменения значений.

  • Измерение номиналов пассивных элементов. Одна из наиболее необходимых для меня вещей, оказалась возможность на лету отображать цветовую и SMD маркировку деталей. То же самое при измерении индуктивности и емкости, за исключением цветовой маркировки. Разумеется автовыбор диапазонов.

  • Осциллограф обязателен. Как правило используется для измерения ШИМ сигналов, при проектировании питающих частей схем и при работе с данными для АЦП/ЦАП. Частоты как правило не выше 100кГц. Желательно что бы устройство само определяло триггер и настраивало масштаб графика.

  • UART логгер с автоопределением скорости.

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

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

Звучит слишком идеально, но это хотя бы обозначенная цель.

ПРОЕКТИРОВАНИЕ

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

Это рендер. Первая игла щупа торчит из кончика корпуса, второй щуп втыкается в "попку" - любой подходящий с бананом.

Что касается железной части, то здесь пришлось сильно поломать голову. Первые версии были построены на ATMEGA32U4. Его выбрал из-за в встроенного USB и достаточной скорости. Но самым главным критерием была arduino совместимость. Я принципиально хотел использовать платформу arduino, поскольку сразу зародилась мысль выложить ПО в открытый доступ и при этом оно должно было быть понятным ардуинщику. В качестве датчика тока решил использовать ACS712. Остальное на резистивных делителях, там ничего интересного.

Одна из последних тестовых версий плат, собранных на коленке:

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

А это уже первый заводской прототип:

Виден не распаянный в верхней части блютуз модуль JDY-08. Использовал его потому, что был. В качестве встроенного зонда, использовал иглы для тестирования плат методом летающего щупа. Сам зонд выглядит так:

Игла немного подпружинена и не дает поцарапать медь или лак на плате.

Косяков было не так много, все довольно легко смог исправить кинув "сполю", но пришлось отложить проектирование из-за нехватки времени. Собственно это позитивно сказалось на проекте, поскольку удалось много поработать с ESP32, на него я и перевел устройство. Попутно заменил старый, 0,96 дюймовый дисплей с разрешением 80x160, на 1,14 дюймовую матрицу 135*240 пикселей.

Должен сказать, что я не сторонник сенсорных кнопок, и в первой версии устройства у меня были физически нажимаемые 3 кнопки, но пришлось себе изменить. Шутки ради собрал прототип с 3-х контактным сенсорным интерфейсом и воткнул его в отпечатанный на 3D принтере корпус. Оказалось, что проще и быстрее не искать пальцем нужную кнопку, а банальными свайпами переходить в нужный режим. Сразу возник соблазн использовать встроенные в ESP32 пины емкостного сенсора, однако их чувствительности оказалось недостаточно для работы в корпусе. Потому пришлось перейти на использование букашек от ttp223. Из-за катастрофической нехватки пинов, три сенсора я подключил через резистивный делитель на один аналоговый вход. Еще один пришлось вешать на отдельный пин для реализации выхода из сна по прерыванию. С аналоговым входом, на котором висят 3 сенсора возникла неожиданная проблема. Оказалось, что при включении режима bluetooth или WiFi , некоторые пины не могут читать аналоговые данные. На практике, при подключении к смартфону, устройство просто переставало реагировать на сенсоры. И все бы ничего если бы я хотя бы мог переразвести, но функции были раскиданы по пинам с учетом их специфики, и получалось, что любой пин к которому можно подключить сенсоры, оказывался именно тем, который не мог работать при включении радиомодуля. Но интернеты, таки помогли.

Немного пораскинув мозгами, пришел к выводу, что вместо ACS712, лучше использовать INA219. Во-первых управление по I2С, во-вторых возможность измерять напряжение до 26 вольт. При измерении сопротивления, обычно используют коммутируемые резистивные делители для разных диапазонов, эта же функция необходима при измерении ёмкости конденсаторов. Вариант использовать ограниченное число пинов для коммутации резисторов такой себе, вместо этого я поставил цифровой потенциометр на 100К AD5245. Таких в устройстве два. Второй регулирует чувствительность ОУ на входе. Второй щуп перенес в разъем для зарядки TYPE-C и несколько видоизменил корпус.

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

Ниже небольшой видеообзор:

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

На сегодняшний день, у меня написан основной базис ПО. Пришлось повозиться с корпусом, зато смог максимально удешевить стоимость пресс-формы. Для понимания порядка цен, стоимость матрицы $5600, ресурс 300к отливок. Стоимость 1 отливки, включая заглушку на дисплей и подсветку рабочей зоны $1,53. Размеры ~120x22мм. Корпус цельнолитой из ABS с SoftTouch покрытием.

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

Подробнее..

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

11.04.2021 22:06:33 | Автор: admin

Насмотрелся я тут на ютубе роликов токарей Mehamozg и Виктора Леонтьева и захотелось мне осуществить давнюю мечту - тоже заняться токарной обработкой металлов. На местном загибающемся предприятии приобрел я старый и ушатанный станок 1Е61МТ 1969 г.в.

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

Станки, как и все общепромышленное оборудование, рассчитаны на подключение к трехфазной сети 380 В. Больше всех потребляет от этой сети токарный станок - около 4,5 кВт, из которой большую часть жрет асинхронный двигатель главного привода. Конечно, потреблять максимальную мощность он будет только при самых тяжелых режимах резания, но все равно, 2-3 кВт для нормальной работы обеспечить необходимо. В гараже же, в наличии есть только однофазная сеть 220 В. Хотя сейчас можно воспользоваться госпрограммой и подключить 3 фазы 15 кВт за 550 рублей, но, как пишут люди, там могут возникнуть проблемы организационного характера, могущие затянуть решение вопроса на неопределенный срок. Поэтому было принято решение попробовать пока обходиться своими силами.

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

При этом можно в некоторых пределах изменять напряжение и частоту этих фаз, и, соответственно, менять частоту вращения асинхронного двигателя (поскольку в асинхронных двигателях частота питающей сети напрямую определяет частоту вращения ротора). Таким образом, можно плавно разгонять и тормозить двигатель и менять частоту его вращения. Это полезное свойство частотного преобразователя позволяет даже немного модернизировать токарный станок, выкинуть из него за ненадобностью коробку передач, существенно, при этом, упростив трансмиссию и уменьшив, тем самым, потери механической энергии в ней, вибрации и общую шумность работы станка. Частотник отличная штука, но цены пока еще кусаются. Хотя китайцы на алиэкспресс уже предлагают варианты в пределах 10 т. р. На авито, например, предлагают от станций управления лифтом за 15 - 20 тыщ.

Но частотник не решает всех проблем. Во-первых, существуют частотники для работы в однофазной и трехфазной сети. Обычно, однофазные частотники питаются от одной фазы 220 В и выдают 3 фазы с межфазным напряжением также 220 В (то есть, для двигателей 380/220, включенных треугольником). Соответственно, трехфазные частотники требуют для питания 3 фазы 380 В, и выдают на выходе также 3 фазы с межфазным напряжением 380 В. Отличаются они напряжением, которое получается после выпрямления и сглаживания сетевого. В однофазных после выпрямления получается напряжение около 310 В, в трехфазных - около 530 В. Если трехфазный частотник подключить только на одну фазу, он, в принципе, работать будет, но будет ругаться на маленькое напряжение сети (310 вместо 530). Чтобы его обмануть, некоторые предлагают поменять номиналы резисторов в цепочке делителя (на схеме выше - R1 и R2), которым контроллер частотника измеряет сетевое напряжение. Делитель пересчитывается таким образом чтобы при напряжении на сглаживающем конденсаторе 310 В контроллер думал что там 530 В. Но, это так себе вариант, поскольку на выходе такой частотник все равно будет выдавать фазы с амплитудой тех же 310 В, то есть потребует подключения двигателя треугольником, что не всегда возможно.

Вариант получше подать на частотник повышенное напряжение 380 В (однофазное), например, с помощью повышающего трансформатора 220/380 В. Но, поскольку в таком варианте подключения выпрямляется только одна фаза, уровень пульсаций выходного напряжения будет существенно больше чем при выпрямлении 3 фаз. Поэтому следует увеличить емкость фильтра и желательно установить дроссель, если его изначально не было, благо что многие частотные преобразователи имеют дополнительные клеммы специально для этих целей.

Еще есть вариант переделать входной выпрямитель и фильтр по схеме удвоения напряжения (как это реализовано в компьютерных БП с переключателем 110/220 В). При этом, выпрямитель становится однополупериодным.

По этой схеме напряжение 220 В подается на выпрямительные диоды и на среднюю точку дополнительных конденсаторов фильтра С3, С4, которые должны в этом случае иметь еще бОльшую емкость, чем в варианте с трансформатором. Суммарное напряжение после такого выпрямителя становится 310+310=620 В, что уже становится достаточно близко к порогу, при котором частотник начнет ругаться на превышение напряжения. Этот способ применим при небольших мощностях двигателя, ориентировочно до 1 кВт.

Но это у меня запланировано на потом (или купить частотник или спаять самому), а пока я решил обойтись старым дедовским способом. С помощью пусковых конденсаторов. Как известно, на индуктивностях и емкостях фазы напряжения и тока не совпадают. На индуктивностях фаза тока отстает от фазы напряжения, а на емкости наоборот, опережает. Таким образом, с помощью дополнительной емкости можно сдвинуть фазу и добиться того чтобы фазы на всех трех выводах двигателя отличались примерно на 120 градусов. Схемы эти давно известны, таблицы необходимых емкостей конденсаторов давно рассчитаны, есть и в этих ваших интернетах и в бумажных изданиях. Чаще всего применяется схема из пусковой и рабочей емкостей. Пусковая емкость подключается кратковременно, только на время разгона двигателя. Минус этого способа максимальная мощность двигателя снижается, его не рекомендуется нагружать больше 70% его максимальной мощности.

Еще одна проблема, связанная с пуском асинхронного двигателя заключается в том, что двигатели на 380 обычно включены звездой, межфазное напряжение 380 В. Для включения в сеть 220 В обмотки необходимо перекоммутировать в треугольник. В этом включении межфазное напряжение у двигателя становится 220 В. Если двигатель звездой 380В включить в сеть 220 В ничего страшного не произойдет, ничего не сгорит, двигатель будет крутиться, но не будет развивать необходимой мощности, поскольку напряжение на нем будет 60% от номинала. То есть, кроме того что мощность упадет от работы в однофазной сети, еще мощность упадет и от несоответствия напряжения, в итоге мы получим всего 20-30% от номинальной мощности. Этого, конечно, уже слишком мало. Запас по мощности какой-никакой, а должен быть.

Однако, очень часто асинхронные двигатели выпускаются без возможности ручного переключения обмоток в коммутационной коробке. Например, все двигатели которые мне попадались, были именно такие. Из них просто выходит 3 провода, соединенные внутри двигателя звездой и ничего с этим поделать нельзя. Как то давно я разбирал один такой двигатель, находил внутри точку соединения трех обмоток и выводил ее наружу тремя отдельными проводами. Вроде все получилось, двигатель заработал по схеме треугольника, но работенка эта была та еще. Без необходимого инструмента и приспособлений можно много что испортить. Например, посадить с перекосом подшипники, которые после этого начнут очень быстро изнашиваться. А еще (практически всегда) обмотка статора залита эпоксидкой и, ковыряя ее, можно запросто повредить саму обмотку.

Я решил поступить проще. Если нельзя перекоммутировать обмотки на 220 В, значит нам ничего не остается как только повысить напряжение до необходимых 380 В. Однофазное 220 В превратить в однофазное же 380 В. Сделать это можно с помощью упоминавшегося уже выше повышающего трансформатора. Единственное, такой трансформатор на 3-4 кВт будет размером со сварочный, весить примерно так же и, ко всему прочему, еще и влетит в копеечку. Если вообще повезет такой найти. Сэкономить тут можно, включая трансформатор по автотрансформаторной схеме.

В этом случае необходим трансформатор с выходной обмоткой всего на 160 В. На те же, например, 2 кВт выходной мощности автотрансформатор уже должен будет иметь мощность всего 840 Вт, что уже более-менее приемлемо. Для постройки автотрансформатора я использовал трансформаторы от ИБП. Их сейчас можно купить весьма недорого, поскольку старые ИБП на 300-500 Вт сейчас массово списываются, а сдавать такие трансформаторы на медь не очень то и выгодно, поскольку у них проваренный магнитопровод и они без болгарки не разбираются. Я очень удачно приобрел в свое время весьма недорого 10 шт таких трансформаторов.

Они имеют на силовой обмотке напряжение порядка 15-16 В. Если эти обмотки соединить последовательно синфазно, можно получить недостающие 160 В. Если потом эти 160 В включить последовательно синфазно со входным напряжением 220 В, мы получим так необходимые нам 380 В.

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

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

Единственное, в ящик влезло не 10, а только 9 трансформаторов. Недостающее напряжение я добрал, соединив параллельно 7 маломощных обмоток на 18 вольт. Они все вместе по сечению становятся равными одной силовой. Вход автотрансформатора защищен сдвоенным автоматом на 25 А. От одного такого трансформатора может питаться токарный станок, сверлильный станок, а также прочие станки, которые, возможно, появятся в будущем. От отводов трансформатора также берется напряжение 30 и 45 В, которое затем выпрямляется и его предполагается использовать для торможения двигателя главного привода постоянным током. Тумблером можно выбрать напряжение или 30 или 45 В, соответственно меняется скорость замедления ротора. От маломощных обмоток двух трансформаторов, соединенных последовательно предполагается питать светодиодные лампочки на 36 В для местного освещения, и лампочки индикации. Вот примерная схема.

От этого же автотрансформатора можно в будущем питать электродвигатели и через частотный преобразователь.

Рассмотрим схемы пуска двигателя. Для сверлильного станка схема относительно простая.

При нажатии кнопки ПУСК через одну пару контактов срабатывает пускатель и самоблокируется, подавая напряжение на две фазы и через рабочий конденденсатор на третью фазу. Через другую пару контактов параллельно рабочему конденсатору подключается пусковой. Кнопку необходимо держать нажатой доли секунды, пока двигатель не раскрутится. После этого кнопку можно отпустить. Для реверсирования направления вращения имеется переключатель, схема остается той же самой, но напряжение на конденсаторы подается с другого провода и двигатель начинает раскручиваться в обратную сторону. Зачем надо крутить сверло в обратную сторону я не знаю, но поскольку такая логика работы была у станка изначально, я ее сохранил. При нажатии кнопки СТОП цепь питания контактора разрывается и станок обесточивается. На входе схемы также стоит защитный автомат на 6 А.

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

Для запуска двигателя токарного станка можно было бы применить аналогичную схему, за исключением того что пусковая емкость требуется в несколько раз больше. Я так и хотел сделать вначале, с управлением от кнопок. Даже приобрел удобный кнопочный пост для этого. Но потом все же решил оставить управление от штатного барабанного переключателя станка. Этот переключатель типа БП1-153 имеет три фиксированных положения ВПЕРЕД, СТОП и НАЗАД. В положениях ВПЕРЕД и НАЗАД замкнута соответствующая пара контактов. Схема примерно такая:

Каждая пара контактов включает свой собственный пускатель. Пускатель подает питание на две фазы двигателя и через рабочую емкость на третью фазу. В этом варианте для смены направления вращения вместо того чтобы менять место подключения конденсатора, я решил менять фазировку подачи питания на двух фазах. Как уже было сказано выше, для станка после запуска пусковую емкость желательно отключать. Это можно делать, например, с помощью реле времени (DA1 и DA2). После раскрутки двигателя, последний становится генератором 3 фаз, от которого можно запитать другие потребители, требующие трехфазного питания, например, помпу СОЖ, которая включается штатным пакетником. Пускатели ВПЕРЕД и НАЗАД взаимоблокируются нормально разомкнутыми контактами. Если включен один, цепь включения другого разорвана. Когда оба пускателя выключены, замыкается цепь четвертого пускателя, который подключает к двум фазам двигателя постоянный ток 30 или 45 В. Этот пускатель включается кратковременно, на доли секунды для остановки шпинделя. Кратковременность обеспечивает также реле времени. Схема самодельного реле времени приведена ниже и собрана на известной микросхеме NE555 или ее аналогах.

Схема включения микросхемы NE555, в общем то, типовая. Цепочка деталей R1, VD1, ... VT1, VT2 необходима для разряда времязадающей емкости после пропадания напряжения на входе реле.

Пара слов о пусковой емкости. Для пуска двигателя станка необходима достаточно большая емкость и на достаточно высокое напряжение, не менее 650 В. Набирать такую емкость из советских металлобумажных конденсаторов не очень удачная идея, особенно если их нет под рукой в достаточном количестве. Такая батарея займет огромный объем и влетит в хорошую такую копеечку. Современные конденсаторы более малогабаритны, но также способны пробить хорошую брешь в бюджете. Кстати, следует различать пусковые и рабочие конденсаторы. Пусковые предназначены для кратковременной работы и не могут длительно выдерживать большую реактивную мощность. Использовать их вместо рабочих не следует. Очень привлекательным вариантом является использование полярных (электролитических) конденсаторов. Они имеют высокую емкость при небольших габаритах. Их можно, например, относительно бесплатно надергать на платах старых ламповых мониторов, телевизоров и любой другой техники, имеющей импульсный блок питания и большую сетевую емкость после выпрямителя. Правда, максимальное напряжение у них обычно 400 450 В, поэтому для работы в цепях 380 В мне их придется включать 2 шт последовательно. Например, так.

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

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

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

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

Для ислледования этого вопроса и измерения величины активной и реактивной мощности на алиэкспресс был приобретен прибор китайского производства. Примерно такой как на фото.

Прибор измеряет и индицирует напряжение в сети, ток через нагрузку, высчитывает активную, реактивную мощности и косинус . Заявляется точность измерения в 1% и собственное энергопотребление <0,2 Вт. Прибор можно заказать в двух вариантах: на диапазон питающих напряжений 80-300 В и 200-400 В. Это как раз то что нужно. При получении прибора, первое что меня огорчило, это то, что мне вместо заказанного прибора на диапазон 200-400 В прислали на 80-300. После того как я полез внутрь прибора с целью посмотреть, как его можно переделать на 380 В там меня ожидало второе огорчение: питание самого прибора осуществлялось простейшим способом с помощью гасящего конденсатора, резистора и стабилитрона. При токе потребления 65-70 мА это означало потребляемую мощность 20 Вт при напряжении сети 300 В. Что, естественно, неприемлимо. Кроме этого, использование емкостного балласта вносило погрешности в показания самого прибора, хоть и относительно небольшие. Например, при подключении лампочки накаливания 60 Вт (самая что ни на есть активная нагрузка) прибор показывал косинус около 0,909. Третье и самое большое огорчение от изделия наших китайских товарищей я испытал, прочитав отзывы. В одном из отзывов другой покупатель сообщал что в этом изделии перепутаны местами 1 и 2 разряды нижнего индикатора. Именно поэтому этот прибор и показывал столь большой косинус для чисто активной нагрузки. На самом деле это число должно выглядеть 0,990. Также он неправильно отображал и мощность. Мощность в 20 Вт он отображал, соответственно, как 02 Вт.

Чтобы прибором можно было хоть как то пользоваться, пришлось его доработать напильником. Во-первых, порезать на плате проводники, кинуть перемычки и поменять местами разряды 1 и 2 нижнего индикатора для правильного отображения информации. Общие катоды (или аноды) индикатора ищутся прозвонкой. Во вторых, я выкинул все цепи питания из гасящего конденсатора вплоть до внутреннего стабилизатора 3,6 В. Вместо гасящей цепочки я применил импульсный источник питания 5 В от ставшего давно ненужным зарядного устройства сотового телефона. При возможности выбора из нескольких таких источников питания следует отдавать предпочтение фирменным, которые выполнены на специализированной микросхеме ШИМ, и имеющие все необходимые элементы фильтрации помех, а не ноунейм, сделанные тяп-ляп на одном транзисторе. Также необходимо заменить фильтрующие емкости на горячей стороне на более высоковольтные, минимум на 450 В. К мощности такого источника питания особых требований нет, поскольку потребляемый прибором ток не превышает 100 мА, с такой нагрузкой справится абсолютно любой зарядник. Несмотря на то, что свободного места внутри прибора хватает на то чтобы установить какой-нибудь особо малогабаритный источник питания внутри корпуса, я все же установил его снаружи. Во-первых, из-за того что фильтрующие емкости на 450 В оказались несколько большего роста, чем те что были. А во вторых, чтобы разместить этот источник помех подальше от измерительной катушки, выполненной на ферритовом кольце. Доработанный приборчик стабильно работает в диапазоне 80-270 В, потребляет при этом существенно меньше энергии и не дает погрешности при измерении косинуса . При подключении лампочки накаливания 60 Вт показания прибора (косинус ) теперь 0,999, то есть такие, какие и должны быть.

А теперь немного осветим вопрос для чего же это все надо. Потому как почти все бытовые однофазные счетчики (все дисковые на 100%) считают только активную энергию. То есть, платить за реактивку обычным мелким потребителям вряд ли придется. Энергосбыт заставляет учитывать реактивку и ставить счетчики полной энергии только крупных потребителей. Но есть пара нюансов, которые следует учитывать также и мелким потребителям. Большая реактивная мощность, гуляющая по проводам, во-первых, приводит к нагреву этих самых проводов, а это уже вполне себе такая активная мощность, прекрасно учитываемая счетчиком и отражающаяся потом в квитанции на оплату. Если протяженность этих проводов велика, то и потери в них могут оказаться существенными. Во вторых, для запаса на реактивную мощность необходимо закладывать провода бОльшего сечения, которые стоят больших денег. Если же на проводах сэкономили и проложили ровно такие, какова активная мощность потребителя, без запаса по току, то дополнительная реактивная мощность может привести к их нагреву выше безопасного уровня и, также, к большим потерям активной энергии в них. Если, например, некий потребитель потребляет активную мощность в 1 кВт, но его косинус всего, к примеру, 0,33, то полная мощность, гуляющая по проводам в 3 раза больше! Иными словами, провода для такого потребителя должны быть рассчитаны как на 3 кВт. И потери в проводах будут как от 3 кВт. Соответственно, и коммутирующее оборудование должно быть также рассчитано на мощность 3 кВт.

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

Попробуем улучшить косинус на примере с имеющимся небольшим станочным парком. Основные потребители в нем сверлильный станок, токарный станок и заточной станок. Все три станка запитаны через автотрансформатор, описанный выше, и преобразующий однофазное напряжение 220 В в однофазное же 380 В. Сначала необходимо исследовать ситуацию, измерить этот косинус , оценить, насколько все хорошо или же плохо. Может, овчинка выделки и не стоит?

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

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

Выключив лампочки и включив вводной автомат автотрансформатора (ненагруженного), мы видим что косинус резко падает до значения 0,5.

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

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

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

Емкости в батарее выберем 4, 6, 20, 40, 64 мкФ, то есть близкие к степеням двойки. Таким образом, включая разные комбинации тумблеров можно выбрать любую емкость из диапазона 4 -134 мкФ с примерным шагом в 4 мкФ. По ощущениям, такой величины емкости должно хватить для компенсации имеющейся реактивности. Ясно, что идеально скомпенсировать косинус до 1 не получится, для этого нужно очень точно подобрать нужную емкость, но это и не требуется. Зададим себе цель обеспечить косинус не менее 0,95 при включении любого из имеющегося оборудования.

Подбирая различные комбинации конденсаторов выяснилось, что для компенсации индуктивности автотрансформатора необходима емкость около 5 мкФ, но таковой у меня в наборе не оказалось, поэтому я установил туда 4 мкФ. Для компенсации индуктивности заточного станка нужно 24 мкФ. Также была подобрана более оптимальная емкость для токарного станка - 40 мкФ, с этой емкостью потребляемый ток упал с 9 до 7 А. До кучи я еще подобрал емкость для сварочного трансформатора, хотя для его режима работы это вряд ли как то улучшит ситуацию, но хоть будет меньше гнать реактивку во время простоя. Сверлильный станок я не трогал, там все норм. Лучше, на мой взгляд, для небольших электрохозяйств добавлять компенсирующую емкость непосредственно в тот прибор, который и создает реактивность. А не делать общий компенсатор, как это делается на больших производствах. Чтобы при включении и отключении потребителей не приходилось по новой подбирать компенсирующую емкость. Конечно, этот процесс можно легко автоматизировать, написав простейшую программу для микроконтроллера, если как-то считать информацию с измерителя. Но один раз подобрать и воткнуть нужную емкость намного проще и надежнее (предполагаю, что за такой простой подход, без процессоров и нанотехнологичных решений, некоторые на этом сайте меня заругают).

Кстати, если нет возможности приобрести упомянутый мной измеритель косинуса или аналогичный прибор, можно воспользоваться любым подходящим щитовым амперметром электромагнитного типа. Этот прибор показывает полный потребляемый ток (активный и реактивный) и при подборе компенсирующей емкости следует ориентироваться на минимальные показания прибора.

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

Подробнее..

Кому нужен аналоговый дизайн?

12.04.2021 14:15:58 | Автор: admin

Нас окружают цифровые устройства: цифровые камеры, цифровые телевизоры, цифровая связь (сотовые телефоны и Wi-Fi), интернет и так далее. Почему же тогда нас все еще должны интересовать аналоговые схемы? Разве аналоговый дизайн не стар и не вышел из моды? Появятся ли через десять лет даже рабочие места для разработчиков аналоговых устройств? Интересно, что эти вопросы поднимались каждые пять лет на протяжении последних 50 лет, но в основном теми, кто либо не понимал аналогового дизайна, либо не хотел иметь дело с его проблемами. Давайте постараемся разобраться почему аналоговый дизайн по-прежнему важен, актуален и сложен, и останется таковым в ближайшие десятилетия.

Почему аналоговый?

Многие электронные системы выполняют две основные функции: они принимают сигнал, а затем обрабатывают и извлекают из него информацию. Ваш сотовый телефон принимает радиочастотный (РЧ, англ. RF, radio-frequency) сигнал и после его обработки передает голосовую информацию или данные. Точно так же ваша цифровая камера определяет интенсивность света, излучаемого различными частями объекта, и обрабатывает результат для извлечения изображения.

Мы интуитивно знаем, что сложная задача обработки предпочтительно выполняется в цифровой области. Фактически, мы можем задаться вопросом, можем ли мы напрямую оцифровать сигнал и избежать каких либо операций в аналоговой области. На рисунке ниже показан пример, в котором радиочастотный сигнал, принимаемый антенной, оцифровывается аналого-цифровым преобразователем (АЦП, англ. ADC, analog-todigital converter) и полностью обрабатывается в цифровой области. Отправит ли этот сценарий разработчиков аналоговых и радиочастотных
устройств на биржу труда?

Рис. 1.1: Гипотетический радиоприемникРис. 1.1: Гипотетический радиоприемник

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

Рассмотрим еще один интересный пример проблем, который возникает при изучении сигналов мозга. Каждый раз, когда нейрон в вашем мозгу срабатывает, он генерирует электрический импульс высотой в несколько милливольт и длительностью в несколько сотен микросекунд [рис. 1.2(а)]. Для мониторинга активности мозга нейронная записывающая система может использовать десятки зондов (электродов) [рис. 1.2 (b)], каждый из которых воспринимает серию импульсов. Теперь сигнал, производимый каждым датчиком, должен быть усилен, оцифрован и передан по беспроводной сети, чтобы пациент мог свободно перемещаться [рис. 1.2 (c)]. Электроника считывания, обработки и передачи в этой среде должна потреблять небольшое количество энергии по двум причинам: (1) чтобы позволить использовать небольшую батарею в течение нескольких дней или недель, и (2) чтобы минимизировать повышение температуры микросхемы, которая в противном случае может повредить ткани пациента. Среди функциональных блоков, показанных на рис. 1.2 (c), усилители, АЦП и ВЧ-передатчик - все это аналоговые схемы, которые потребляют большую часть энергии.

Рис. 1.2: (а) форма волны напряжения, генерируемая в результате нейронной активности, (b) использование датчиков для измерения действующих потенциалов, и (c) обработка и передача сигналов.Рис. 1.2: (а) форма волны напряжения, генерируемая в результате нейронной активности, (b) использование датчиков для измерения действующих потенциалов, и (c) обработка и передача сигналов.

Когда цифровые сигналы становятся аналоговыми?

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

Рис. 1.3: Эквализация для компенсации затухания высоких частот в кабеле USB.Рис. 1.3: Эквализация для компенсации затухания высоких частот в кабеле USB.

К сожалению, кабель имеет ограниченную полосу пропускания, ослабляя высокие частоты и искажая данные, когда они достигают портативного компьютера 2. Это устройство теперь должно выполнять считывание и обработку, первое из которых требует аналоговой схемы (называемой эквалайзером), которая корректирует искажения. Например, поскольку кабель ослабляет высокие частоты, мы можем спроектировать эквалайзер для усиления таких частот, как концептуально показано на рис. 1.3 в виде графика 1/|H|.

Читатель может задаться вопросом, может ли задача выравнивания на рис. 1.3 быть выполнена в цифровой области. То есть, можем ли мы напрямую оцифровать полученный искаженный сигнал с цифровой коррекцией для кабеля с ограниченной полосой пропускания, а затем выполнять стандартную обработку сигнала USB? Действительно, это возможно, если требуемый здесь АЦП требует меньшей мощности и меньшей сложности, чем аналоговый эквалайзер. После подробного анализа аналоговый дизайнер решает, какой подход использовать, но мы интуитивно знаем, что при очень высоких скоростях передачи данных, например, десятки гигабит в секунду, аналоговый эквалайзер оказывается более эффективным, чем АЦП.

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

Аналоговый дизайн пользуется большим спросом

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

Рис. 1.4: Количество статей по аналоговому дизайну, опубликованных вISSCC за последние годыРис. 1.4: Количество статей по аналоговому дизайну, опубликованных вISSCC за последние годы

На рис. 1.4 показано количество статей по аналоговым технологиям, опубликованных на Международной конференции по твердотельным
схемам (ISSCC) за последние годы, где аналог определяется как статья, требующая знаний в области проектирования аналоговых микросхем. Заметьте, что большинство статей связано с аналоговым дизайном. Это верно даже при том, что аналоговые схемы обычно намного менее сложные, чем цифровые; АЦП содержит несколько тысяч транзисторов, тогда как микропроцессор использует миллиарды.


Проблемы аналогового дизайна

Сегодняшним разработчикам аналоговых устройств приходится решать интересные и сложные задачи. Обозначим основные из них.

Недостатки транзисторов

В результате масштабирования транзисторы продолжают становиться быстрее, но за счет своих аналоговых свойств. Например, максимальное усиление напряжения, которое может обеспечить транзистор, уменьшается с каждым новым поколением КМОП-технологии (КМОП, комплементарная структура металл-оксид-полупроводник; англ. CMOS, complementary metal-oxide-semiconductor). Более того, характеристики транзистора могут зависеть от его окружения, то есть от размера, формы и расстояния до других компонентов на кристалле вокруг него.

Уменьшение напряжения питания

В результате масштабирования устройств напряжение питания КМОП схем изменилось. Неизбежно упало с примерно 12 В в 1970-х годах до примерно 0,9 В. Многие конфигурации схем не выдержали этого уменьшения питания и были отброшены. Мы продолжаем искать новые топологии схем, которые хорошо работают при низких напряжениях.

Потребляемая мощность

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

Сложность схем

Сегодняшние аналоговые схемы могут содержать десятки тысяч транзисторов, что требует длительного и утомительного моделирования. Действительно, современные разработчики аналоговых устройств должны быть столь же искусными в SPICE, как и в симуляторах более высокого уровня, таких как MATLAB.

Вариации PVT

Многие параметры устройства и схемы зависят от процесса изготовления (process), напряжения питания (supply voltage) и температуры (temperature) окружающей среды. Мы обозначаем эти эффекты как PVT (process-voltage-temperature) и проектируем схемы так, чтобы их производительность была приемлемой для указанного диапазона вариаций PVT. Например, напряжение питания может изменяться от 1 В до 0,95 В, а температура от 0 до 80 градусов. Надежная аналоговая конструкция в КМОП-технологии - сложная задача, поскольку параметры устройств значительно различаются в зависимости от PVT.


Почему интегрированные микросхемы?

Идея размещения нескольких электронных устройств на одной подложке возникла в конце 1950-х годов. За 70 лет технология эволюционировала от производства простых микросхем, содержащих небольшое количество компонентов, до флэш-накопителей с одним триллионом транзисторов, а
также микропроцессоров, содержащих несколько миллиардов устройств. Как предсказывал Гордон Мур (Gordon Moore, один из основателей Intel) в начале 1970-х годов, количество транзисторов на чип продолжало удваиваться примерно каждые полтора года. В то же время минимальный размер транзисторов снизился с примерно 25 мкм в 1960 году до примерно 12 нм в 2015 году, что привело к огромному увеличению быстродействия интегральных схем.

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

Почему КМОП?

Идея полевых транзисторов металл-оксид-кремний (MOSFET) была запатентована Дж. Э. Лилиенфельдом (J. E. Lilienfeld) в начале 1930-х годов, задолго до изобретения биполярного транзистора. Однако из-за производственных ограничений МОП-технологии стали применяться намного позже, в начале 1960-х годов, когда первые несколько поколений производили только транзисторы n-типа. В середине 1960-х годов были представлены комплиментарные МОП-устройства (КМОП) (то есть с транзисторами как n-типа, так и p-типа), что положило начало революции в полупроводниковой промышленности.

Технологии КМОП быстро захватили цифровой рынок: КМОП-вентили рассеивали мощность только во время переключения и требовали очень небольшого количества устройств, что резко контрастировало с их биполярными аналогами или аналогами из GaAs. Вскоре также было обнаружено, что размеры МОП-устройств можно уменьшить легче, чем размеры других типов транзисторов.

Следующим очевидным шагом было применение КМОП-технологии в аналоговом дизайне. Низкая стоимость изготовления и возможность размещения как аналоговых, так и цифровых схем на одном кристалле, чтобы улучшить общую производительность и/или снизить стоимость
упаковки, сделали технологию CMOS привлекательной. Однако полевые МОП-транзисторы были медленнее и шумнее, чем биполярные транзисторы, и нашли ограниченное применение.

Как технология CMOS стала доминировать на аналоговом рынке?

Основной движущей силой было масштабирование устройства, поскольку оно продолжало улучшать скорость полевых МОП-транзисторов. Собственная скорость МОП-транзисторов увеличилась на порядки за последние 70 лет, превзойдя скорость биполярных устройств, даже несмотря на то, что последние также масштабировались (однако не так быстро).

Еще одно важное преимущество МОП-устройств перед биполярными транзисторами состоит в том, что первые могут работать при более низких напряжениях питания. В современной технологии КМОП-схемы работают от источников питания около 1 В, а биполярные схемы - около 2 В. Более низкие источники питания позволили снизить энергопотребление для сложных интегральных схем.


Подведем итоги

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

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

P.S. Аналоговый дизайн используется практически везде.

Подробнее..

Трансформация аутсорсинговых компаний в инженерные путь смелых из Беларуси, Украины и России

13.04.2021 14:10:30 | Автор: admin
Аутсорсинг отличная инженерная школа. Но куда мы отправимся дальше?Аутсорсинг отличная инженерная школа. Но куда мы отправимся дальше?

В ИТ-сообществе слово аутсорсинг часто воспринимается как обидное. Руководители компаний и команд, которые занимаются заказной разработкой ПО или электроники, и сами разработчики предпочитают не называть себя аутсорсерами. Даже из моих предыдущих статей об инженерных командах и их пути могло показаться, что я против этой бизнес-модели. Так что давайте разберемся, почему аутсорсинг стал для нас инженеров из Беларуси, Украины и России важной школой, и почему лидеры ИТ-рынка больше не хотят называть себя этим словом.

Сразу отмечу свое отношение к термину аутсорсинг: мне нравится эта бизнес-модель, я много лет строил компанию в сфере заказной разработки электроники и встроенного ПО, а сейчас трансформирую бизнес в этой сфере.

Более того, я уверен, что аутсорсинг сыграл ключевую роль в развитии ИТ-сектора в наших странах. Если аллегорически сравнить его с высшим образованием, то можно сказать, что это отличная бизнес-модель для обучения большого количества специалистов с оплатой в процессе обучения. Сначала надо пройти путь абитуриента и сдать экзамен на первый контракт. Потом побыть студентом, где тебе будут платить небольшую стипендию это период, когда молодая аутсорсинговая компания получает контракты, позволяющие держать на плаву небольшую команду. Затем появляются несколько клиентов и, возможно, один-два ключевых. Ключевой клиент как профессор в магистратуре или аспирантуре. Аспирант обслуживает интересы профессора в обмен на обучение. Профессор, т.е. зарубежный клиент, получает всю славу, результат и вполне солидные деньги за проект, который был создан при поддержке аспирантов.

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

Кто и чему учится в рамках аутсорсинговой бизнес-модели:

  • Основатели и менеджеры бизнесу и управлению.

  • Инженеры разработке и инженерной культуре.

  • Продавцы длинным и сложным B2B-продажам, где нужно вырабатывать доверие, продавая воздух.

Представьте, как долго мы выходцы из постсоветских стран проходили бы этот путь, если бы такая бизнес-модель как аутсорсинг в мире не существовала? Ведь она позволила нам получить и накопить интеллектуальный и денежный капитал. В 90-х и нулевых мы только стартовали. В 2010-х те, кто заработал капитал, инвестировали в собственный бизнес. А сегодня предприниматели с 2030 летним опытом готовы инвестировать в сторонние компании и передавать знания новому поколению.

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

Заказные разработки позволили нам получить сегодняшних специалистов, часть из которых перешла в продуктовые компании. И теперь вопрос: как быть дальше? Как поднять эффективность своей работы и всей отрасли? Очевидно, что аутсорсинг это одна из ступеней в развитии отрасли. Те игроки рынка, которые уже прошли эту школу, могут отправляться в свободное плавание. Мы это видим на примере компаний, которые занимались аутсорсингом, а сейчас имеют продуктово-сервисные модели.

Тот же EPAM, который некоторые до сих пор по-привычке считают аутсорсинговой компанией, уже давно совершил разворот к сервисно-инжиниринговой модели. Как пишут Ведомости, если до 2005 г. около 80% заказов этой компании приходилось на аутсорсинг в разработке продуктов для технологических компаний, то сейчас на подобные заказы приходится около 20%. Сам Аркадий Добкин, основатель EPAM, так объясняет этот термин в прошлогоднем интервью журналу Большой:

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

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

Посмотрите сами: где была бы Индия со своим ИТ и где был бы Китай со своим производством, если бы не заказные проекты зарубежных заказчиков?

Зрелость индустрии соответствует зрелости государства и общества. Поэтому логично, что на данном этапе мы (IT-компании в Беларуси) занимаемся аутсорсингом, как и наши соседи в Украине, России, Болгарии, Молдове и т.д. Даже Польша, Чехия, Литва и Румыния все еще входят в список стран для ИТ-аутсорсинга, хотя там ситуация постепенно меняется. А в таких странах как Дания и Германия структура бизнес-моделей и компаний уже совсем другая. Это положение дел обусловлено стоимостью оплаты труда, индексом экономического развития и другими параметрами, поэтому не стоит думать, что мы все-еще занимаемся аутсорсингом, потому что кого-то из наших инженеров несправедливо недооценили.

Со временем мы придем другому балансу в ИТ-отрасли: по мере развития отрасли и роста экономического уровня будет все больше продуктовых и инжиниринговых компаний в противовес аутсорсинговым.

Почему в Германии много продуктовых компаний? Потому что там есть не только стартапы, но и инвесторы. Почему у нас рождаются единицы сильных стартапов, а в европеских странах сотни? Это только кажется, что везде есть фонды и везде есть классные инженеры. Бизнес-ангелы у нас в Беларуси только-только появились, они вкладывают скрепя зубами несколько десятков тысяч долларов по небольшой оценке, иногда забирая большую долю в стартапах, демотивируя этим фаундеров. Поэтому инженерные команды, которые делают свой продукт или запускают корпоративный спин-офф, предпочитают воспользоваться зарубежными институтами финансирования и поддержки инноваций, они переезжают в ЕС, чтобы быть ближе к развитым бизнес-экосистемам и быстрее достигать свои цели.

Трансформация аутсорсинга

Но и аутсорсинг как бизнес-модель не стоит на месте, она трансформируется под давлением рынка вместе с прочими моделями. Какие у нас есть варианты для трансформации? Во-первых, важно понять, что на пути между аутсорсер и продуктовая компания есть промежуточные гибридные модели. Во-вторых, мы можем посмотреть на опыт компаний в развитых экономиках Западной Европы, где заказная разработка тоже имеет место в Германии, Дании и Финляндии успешно работают инженерные сервисные компании, которые зарабатывают отнюдь не на ценовых преимуществах. А на чем же?

Давайте рассмотрим, в какие бизнес-модели они используют:

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

  2. Сервисная компания + доп. платформы / решения. Когда экономика компании формируется за счет заказных разработок или инженерного сервиса, она не может обеспечить себе высокую маржинальность в странах с развитой экономикой из-за высокой стоимости рабочего времени инженеров. В этом случае компании выгодно обеспечивать дополнительный поток прибыли за счет допродажи собственных готовых решений и платформ для решения задач своих клиентов в конкретных индустриях.

  3. Сервисная компания + аутсорсинг. Компании в Западной Европе, которые занимаются заказной разработкой или инженерным сервисом, позволяют своим клиентам быстро подключить к проекту нужных инженеров, не нанимая их в штат. Заказчик таким образом снимает с себя задачу найма узких специалистов и бремя социальных выплат на штатных работников. При этом часть задач сервисная компания передает на аутсорсинг в Восточную Европу так они снижают затраты.

Как на это смотрят сами руководители компаний из Западной Европы? Мой коллега Зоран Вельковски, основатель датской инжиниринговой компании TekPartner, так прокомментировал перспективы сотрудничества в отрасли:

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

Только компании с огромным бюджетом на НИОКР, такие как Apple, Tesla, Microsoft и Google, могут позволить себе полную вертикальную интеграцию. Всем остальным нужна внешняя помощь, т.е. аутсорсинг всех видов деятельности, которые не относятся к основной компетенции компании.

Поэтому более дешевые инженеры из Восточной Европы это не главное преимущество аутсорсинга для заказчика. Для него важна ориентация команды на основной бизнес, получение доступа к высококлассным технологиям/компетенциям, сокращение расходов в том числе, более быстрый выход на рынок, снижение рисков, улучшение конкурентных преимуществ.

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

В Беларуси, к примеру, уже была возможность за 1015 лет реализовать свою среднесрочную ИТ-стратегию в Парке высоких технологий (ПВТ), воспользовавшись специальным налоговым режимом и более низким уровнем жизни, чем в ЕС и США. В краткосрочной и среднесрочной перспективе это были правильные действия. Но дальше нужна трансформация и выбор проактивной позиции: мы можем использовать опыт европейских сервисных компаний и заниматься высокооплачиваемым инженерным сервисом, добавляя исследовательскую и интеграционную составляющую, обеспечив свою географическую близость к клиенту и более глубокое понимание его рынка.

Эта трансформация переключит нас с позиции я делаю то, что умею на я делаю то, что нужно клиенту, предлагая множество дополнительных и достаточно дорогих функций по сдаче проекта (delivery).

Ведь что такое сдача проекта delivery? Наш классический проджект-менеджер это не деливери-менеджер, потому что он, как правило, не обеспечивает бесшовную интеграцию проекта в бизнес клиента. Живой пример из нашей компании: мы в Promwad разработали для своего клиента ТВ-приставку в рамках проекта за несколько десятков тысяч долларов, а на этапе delivery ценность наших услуг и бюджет проекта исчислялся уже в сотнях тысяч долларов. Мы интегрировали свою разработку в цепочку поставок клиента: поставили приставку на серийное производство в оптимальной для клиента локации, запускали там автоматизированное тестирование и дописывали ПО. Но это случилось, потому что мы стремились увеличить свое участие в бизнесе клиента, действовали проактивно.

Рецепты

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

  1. Расти за счет дорогих сервисов и большей маржинальности, но для этого нужно слышать клиента и быть к нему ближе географически за счет локальных офисов в ЕС и США.

  2. Дополнять свои услуги продуктами / платформами / решениями.

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

При этом, как видите, вы не становитесь продуктовой компанией. Ведь мы тут не обсуждаем жесткий разворот в продуктовую стратегию.

Рынок со временем все расставит на свои места. Даже пассивные компании с устаревшими бизнес-моделями будут вынуждены трансформироваться. Но куда интереснее, хотя, конечно, труднее и рискованнее действовать проактивно и самому пойти в новые бизнес-модели, опередив своих более капиталоемких соседей по отрасли! У аутсорсинга в истории ИТ-сектора в Восточной Европе большая роль и большая история, но уже сейчас пришло время наращивать свою ценность для мира: преобразовать свои знания в мировое признание, обеспечивать бОльшую добавленную стоимость и потянуть вслед за собой за собой тех, кто эту инженерную школу только проходит.

В этой статье я Роман Пахолков, основатель Promwad, поделился ключевыми выводами, которые подтолкнули меня к созданию новой стратегии для собственной компании к специализации на конкретных индустриях и развитию лидеров направлений в нашей инженерной команде. Более того, мы даже запустили целое отраслевое сообщество Hardware Ecosystem для всех, кто работает в сфере электроники. Там есть и подмастерья-студенты, и профессора. Верю, что объединившись, мы сможем достичь большего.

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

Подробнее..

Создание своей оценочной платы для микроконтроллеров

16.04.2021 02:15:22 | Автор: admin

Заказывая много оценочных плат из Китая, я и подумать не мог что всюду будет брак, недоработки и подделка. Всё это ужасно путало в изучении и порой было тяжело понять то ли мой код кривой, то ли контроллер. Примерно в это же время я нашёл микроконтроллеры и другую рассыпуху дешевле чем в Китае при это локально в России. Я сразу загорелся тем, что бы сделать себе платы и забыть о китайских корявых blue pill.

Брак или странная задумка инженеров

Земля на ножках для прошивки висела в воздухе, после доработки всё окей.

Я как раз переезжал, и из-за этого у меня появилось много свободного времени, чем я и воспользовался, когда рисовал платы в EDA. Начать было решено с STM8S003F3U6 потому как очень уж полюбилась мне эта серия микроконтроллеров.

Первые наброски выглядели примерно так:
v1v1

Тут я ещё не знал, что для нормальной прошивки мк нужен pull-up резистор на ногу сброса.

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

Когда приехали платы качество меня порадовало, но был и косяк с моей стороны текст настолько мелкий что кое где не читается.

Детальное фото печатной платы

В итоге у меня было куча плат, с пяток контроллеров и разных вторичных компонентов, выпаянных из разных плат. Всё это вылилось в 3 рабочих прототипа.

В итоге у меня было куча плат, с пяток контроллеров и разных вторичных компонентов, выпаянных из разных плат. Всё это вылилось в 3 рабочих прототипа:

Фото ужасное, но переснять не могу уже раздал их)Фото ужасное, но переснять не могу уже раздал их)

Немного о платах

Остановился на 6 светодиодах. Всего 3 группы: питание, 4 GPIO, 1 GPIO(ШИМ) на обратной стороне. У каждой группы есть маленькая напаиваемая перемычка.

USB только питание, по входу стоит диод, защита usb выхода от обратного напряжения которое может пойти если запитать схему >5в напряжением. Стабилизатор выдерживает пиковые 16в, штатное до 14в.

Контроллер может без проблем работать и от 5в, но расчёт резисторов для светодиодов выполнял для 3.3, да и базово считаю что лучше работать с 3.3, ибо потом по привычке можно что-нибудь спалить.

Продолжаем вакханалию

Это была только половина пути, я ведь хотел много плат и очень не хотел делать их вручную.

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

И так, надо было решать как спаять всё быстро и с минимумом косяков. Трафарета у меня не было и я решил попробовать просто намазать тонким слоем паяльную пасту (благо она была).

Сказано сделано, вот что из этого вышло:

Мелкие капельки припоя что никуда не стекли прилипли прилично, далеко не с первого раза я их смог убрать, так же видно что 2 контроллера немного поплыли и встали криво. Выглядит жуть, но в целом получилось неплохо. Я делал несколько прогонов, первый мк и обвязка, остальное вторым. И по выходу получилось около 70% годных и готовых сразу без танцев плат.

Финальный результат, usb портов к этому времени не подвезли, так что без них.

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

Планы у меня наполеоновские, уже нарисовал и под stm32f0 и под f1 платы, ещё есть идея создать плату на stm32f4(7) с интегрированных ethernet.

Для тех кто дочитал, спойлер след платы!

В следующей статье затрону контроллер и среды, в которых пишу. Ни пуха ни пера и не болейте!

Подробнее..

Самодельный ламповый стереофонический усилитель из доступных деталей

19.04.2021 00:19:54 | Автор: admin

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

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

До сего момента с ламповой техникой я сталкивался не очень плотно, только в процессе ремонта какого-либо аппарата. И вот захотелось попробовать самому что-нибудь создать с нуля. Вообще, захотелось довольно давно, еще когда я учился в универе. Мне как-то подогнали пару плоских дюралевых корпусов от встраиваемых компов, которые как нельзя лучше подходили под то, чтобы на них собрать усилитель. Корпуса эти долго лежали, выдержали пару переездов (которые, как известно, каждый по два пожара) и, наконец, появилось немного свободного времени и я решился.

Сразу встал вопрос, какую схему выбрать для повторения, коих в интернете просто огромнейшее количество. Поэтому я сформулировал некоторые требования:
1. Выходная мощность не менее 15-20 Вт на канал. Чтобы можно было работать на имеющиеся у меня колонки СОЮЗ 130АС-002 и обеспечивать при этом достаточную громкость и приемлемое качество. Это требование автоматически тащит за собой необходимость мощного двухтактного выходного каскада и режим АВ. Использование однотактного режима на таких мощностях потребует применения очень мощной (и дорогой) лампы и очень мощного и дорогого выходного трансформатора. КПД такого усилителя будет также оставлять желать лучшего.

2. Использование доступных радиоламп и деталей. Как известно, средний срок службы радиоламп составляет около 1000 часов. А значит, при обычной эксплуатации усилителя их придется периодически менять, а значит, их надо где-то доставать. Поэтому желательно собрать усилитель на достаточно ходовых и доступных (как по цене так и по доставаемости) радиолампах. Также существенная проблема при сборке ламповой техники силовые и выходные трансформаторы. Заниматься их намоткой и перемоткой ну вообще никак не хочется. Необходимо использовать готовые решения.

3. Усилитель хотелось бы собрать полностью на электровакуумных приборах, без единого полупроводника. То есть даже выпрямитель анодного напряжения сделать не на полупроводниковых диодах, а на электровакуумных кенотронах. Данное требование технически не оправдано, это скорее для спортивного интереса. Хотя, использование в качестве выпрямителей кенотронов вместо полупроводниковых диодов, позволяет автоматически решить проблему с задержкой подачи анодного напряжения питания ламп. Хотя, эта "проблема", на мой взгляд, высосана из пальца.

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

Прошерстив немало сайтов на эту тематику, мне приглянулась схема Сергея Комарова. В схеме использовались достаточно доступные телевизионные (т.е. широко использовавшиеся в массовых советских телевизорах) лампы, унифицированные выходные трансформаторы. Также схема порадовала достаточно продуманной схемотехникой и отсутствием ярко выраженных ошибок и косяков, коими, к сожалению, просто пестрят схемы, выкладываемые в интернетах энтузиастами. Для усилителя заявляется выходная мощность 43 Вт. Это несколько больше чем мне надо, но больше это ведь не меньше)

Источник питания

Для питания схемы необходим достаточно мощный источник питания, ведь КПД ламповых усилителей очень низкий. Кроме того, раз мы решили использовать выпрямитель на кенотронах, это еще больше ухудшает КПД. Чтобы не заниматься намоткой, в качестве силового трансформатора было принято решение использовать широко распространенный и достаточно доступный трансформатор ТС(А)-270 от массовых цветных телевизоров серии УЛПЦТ. Этот трансформатор относительно легко можно достать, например, на авито. Там его можно купить за 500-1000 р., причем, в сборе с самим телевизором. Единственное, для такой серьезной покупки необходимо позвать не слишком хилого товарища, ведь вес этой модели телевизоров 60 70 кг и в одиночку его перетаскивать не очень комфортно. Несмотря на то, что этот трансформатор заточен под использование исключительно в телевизоре, большое количество различных обмоток дают широкие возможности подобрать необходимое напряжение. Трансформатор собран из двух одинаковых катушек, имеющих одинаковый набор обмоток. Соединяя обмотки нужным образом, где последовательно, а где параллельно можно получить что-то близкое к нужному.

Для вышеприведенной схемы нужно 200 В, 200 мА и 400 В, 25мА (на каждый канал). Плюс накал, который посчитаем отдельно.

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

Итак, смотрим что у нас есть на трансформаторе (на одной половине): обмотка 122+2,2 В, 400 мА, две по 71 В, 200 мА, одна 97 В, 70 мА. Итак, если взять обмотку на 122 В и включить последовательно синфазно с ней две параллельно соединенных обмотки на 71 В мы получим в итоге 193 В, что после выпрямления даст на конденсаторе фильтра порядка 230 В. Почему не 270, как по формуле? Дело в том, что на кенотроне, который имеет большое внутреннее сопротивление в отличие от полупроводникового диода, падает намного большее напряжение. И это падение тем больше чем больше ток нагрузки, нагрузочная характеристика у кенотрона имеет существенный завал. Соответственно, на ламповый выпрямитель нужно подавать большее напряжение чем если бы стоял полупроводник. Насколько больше? Для этого необходимо обратиться к справочнику и найти нагрузочную кривую на нужный кенотрон. Вот, например, кривая для кенотрона 5Ц4С.

Этот кенотрон мы поставим в цепи выпрямления 400 В. Забегая вперед, скажу что ток потребления по этой цепи для всего усилителя будет примерно 70 мА. Согласно графику, для тока потребления 70 мА и выходному напряжению 400 В необходимо подавать на вход около 320 В переменного напряжения. Где же взять такое напряжение? 193 В у нас уже есть, добавим к нему последовательно синфазно оставшуюся обмотку на 97 В, получим 290 В. Блин, чуть-чуть не хватает до 320. Можно добавить еще обмотку 16,5 В, как я сделал в одной из промежуточных версий усилителя, но тогда вырастет и напряжение 230 В, что и так уже немного больше чем надо. Можно было и забить на это, ламповая техника не очень критична к питающим напряжениям, плюс-минус 20-30 В для нее погоды не сделают, но на радиорынке мне очень удачно попался небольшой маломощный трансформатор ТПП 226 с четырьмя обмотками на 20 В и двумя на 4 В. Включив их последовательно синфазно, получил почти ровно 400 на нагрузке. Да, максимальный ток кенотрона 5Ц4С 120 мА, что с запасом хватает для питания цепи 400 В.

Кстати, важный момент. В описании к кенотрону указан параметр максимальная емкость фильтра, 5 мкФ. Полез на интернетные форумы узнать, с какой целью указано это ограничение и чем грозит его превышение. Ни одного верного ответа на этот вопрос не нашел, кто только и что только не фантазирует на эту тему. Большая часть придерживается ошибочного мнения что это для того чтобы не превысить ток во время заряда емкости при включении питания. Хотя в реальности фильтрующая емкость заряжается очень плавно по мере прогрева кенотрона и превысить ток в принципе не возможно. На самом деле причина, вероятно, немного в другом. Для этого необходимо вспомнить принцип работы двухполупериодного выпрямителя с емкостным фильтром. Причем не важно, на кенотроне он или на полупроводниках.

Во время полуволны емкость заряжается до амплитудного значения, а затем в промежутке между полуволнами помаленьку разряжается на нагрузку, во время следующей полуволны снова заряжается. Ток через выпрямительный прибор течет только тогда когда мгновенное напряжение переменного тока больше напряжения на нагрузке, т. е. во время прохода верхушки полуволны. При этом форма тока имеет вид короткого импульса (заштрихованная фигура на рисунке) и этот импульс тем короче, чем больше емкость фильтра. Но поскольку энергии в нагрузку надо передать одно и то же количество, то чем короче импульс, тем больше его амплитуда. Грубо говоря, если длительность импульса 1/10 периода, а средний ток нагрузки 100 мА, то амплитуда токового импульса 1 А! Как я писал выше, у кенотронов очень большое внутреннее сопротивление и такой большой импульс тока даст очень большое падение напряжения на нем. На аноде будет рассеиваться очень большая мощность, большая плотность тока через катод приведет к его быстрому выходу из строя. Поэтому разработчики кенотрона рекомендуют ограничить емкость пятью микрофарадами, тогда импульс тока будет длиннее, энергия размажется по большей площади, амплитуда тока будет не такой большой, перегрев анода будет в пределах нормы и лампа прослужит заявленный изготовителем срок.

А что же делать нам? Ведь такие огромные пульсации питающего напряжения неприемлемы для качественного Hi-End усилителя. Выход один ставить дроссель. Дроссель съест переменную составляющую и пропустит на выход только постоянное напряжение. После дросселя можно ставить любую емкость, хоть 1000 мкФ. Дроссель поставил максимум какой удалось найти унифицированный, Д20-1,5Гн-0,2А.

Для питания цепи 200 В необходим ток 400 мА. Кенотронов на такой ток немного. Даже если взять относительно доступный 5Ц3С, у которого максимальный ток 230 мА, то таких кенотронов все равно надо включать 2 шт в параллель, или по 1 шт на каждый канал. Кроме того, на каждый кенотрон надо подавать 3 А на накал, т. е. 6 А на две штуки. И падение напряжения на 5Ц3С даже больше чем на 5Ц4С. Кроме того, 5Ц3С с прямым накалом, а это те еще заморочки. Для него надо мотать отдельную изолированную обмотку для накала. Можно, конечно, применить 5Ц8С, он дает 420 мА по максимуму, но эту лампу я достать не смог. Зато относительно без проблем приобрел 2 диода 6Д22С.

Это демпферные диоды, разработанные для строчной развертки цветных телевизоров. Телевизоры довольно быстро модифицировали чтобы исключить эти лампы из схемы и они остались не у дел. Их до сих пор можно найти в новом состоянии и за небольшие деньги. А параметры у них приличные: средний выпрямленный ток 300 мА, ток в импульсе 1 А и они замечательно работают как обычный выпрямитель. При этом жрут на накал всего по 2 А каждый, накал косвенный, с отдельной обмоткой париться не нужно. К этим диодам я пришел не сразу, а сначала попробовал на их месте менее мощные и более доступные 6Д20П. Эти диоды тянут по 220 мА каждый, чего, в принципе, впритирочку но хватает. Но я все же решил заменить их на более мощные чтобы был запас по выпрямленному току и по импульсному току. Тем более что по накалу оба диода жрут примерно одинаково. Для ограничения импульсного тока в цепь перед конденсатором поставил резистор 10 Ом, емкость конденсатора при этом не ограничивал. Осциллограмма тока, снятая с этого резистора показала амплитуду импульса тока около 1 А, что для этого диода терпимо.

Для работы выходного каскада необходим источник отрицательного напряжения порядка -30 В. Ток потребления по этой цепи крошечный, единицы миллиампер, поэтому можно применить маломощные диоды. Я использовал двойные диоды 6Х2П, которые вообще то предназначены для детектирования радиосигнала, но и как выпрямители тоже работают отлично.

Теперь про накал ламп. На накал нужно: 2х1,9А (диоды), 2А (кенотрон), 4х1,35А выходные лучевые тетроды, 2х0,42А (триод-пентоды), 3х0,31А (двойные триоды), 2х0,3А (индикаторы), 2х0,3А (маломощные диоды). Итого в сумме имеем более 14 А, что соответствует мощности порядка 90 Вт. Именно такая мощность (и это еще безо всего остального) будет уходить только в тепло на подогрев катодов. Само собой, ни о каком КПД и экономии не может быть и речи. Но у трансформатора ТСА-270 только 3 накальных обмотки: на 0,9 А, на 2,1 А и на 2,95 А. Этого тотально не хватает. Что же можно сделать? Можно задействовать две полуобмотки на 16,5 В, 1,85 А. Запитать от них выходные лампы, включив накалы последовательно. Излишек погасить резистором. Мощные диоды запитать от обмотки 2,95 А. Она будет работать с почти амперным перегрузом, но должна сдюжить. Маломощные диоды необходимо запитать от отдельной обмотки на 0,9 А. Связано это с тем что потенциалы катодов и подогревателя должны соотноситься определенным образом. Как и почему чуть далее. От этой же обмотки запитаем лампочки индикации включения. На оставшуюся обмотку 2,1 А навесим всю оставшуюся мелочь кроме кенотрона. Получается небольшой перегруз, на 0,3 А, но не сильно критично, должно выдержать. Ну, а для кенотрона так уж и быть домотаем отдельную обмотку. На 5 В мотать не так много, всего 14 витков. Все витки можно намотать на одной катушке или же (что правильнее) разместить половину на одной, половину на другой катушке. Я их намотал обычным гибким монтажным проводом сечением не менее 0,75 мм2 в теплостойкой изоляции прямо поверх бумаги. Очень не хотелось разбирать трансформатор, поскольку половины магнитопровода у него склеены слоем какой то фигни, и после разборки не всегда удается эту фигню отчистить чтобы соединить половины плотно, без зазора. Зазор в трансформаторе (в отличие от дросселя) вещь вредная. Наличие отдельной обмотки также позволит в случае необходимости и не переделывая схему воткнуть вместо кенотрона с косвенным накалом 5Ц4С кенотрон с прямым накалом 5Ц3С.

Вроде бы все удалось запитать, хоть и с перегрузом по некоторым накальным обмоткам. Такой вариант у меня работал некоторое время, но потом вылезла неприятная особенность. Дело в том, что я применил трансформатор ТСА с алюминиевыми обмотками, которые распаяны на лепестки спецприпоем. От времени, а также из-за перегруза и перегрева у накальных обмоток в месте припайки ухудшился контакт, который в свою очередь привел к еще большему перегреву и окислению в этом месте. Чтобы не было таких проблем, рекомендую применять трансформаторы с медными обмотками (с индексом ТС или СТ в названии). Такие трансформаторы, как правило, стояли в более старых моделях телевизоров семейства УЛПЦТ, преимущественно тех, у которых еще надо крутить пассатижами ручку ПТК для переключения программ. Я такой трансформатор все же потом добыл и поменял. А временно проблему с плохим контактом решил заменой лепестков на зажимные клеммы от электрических колодок, которые продаются в магазинах электротоваров. Также я разгрузил наиболее перегруженную обмотку на 2,95 А. Для этого пришлось сделать хитрый финт ушами. Как я написал выше, для питания выходных ламп использовалась обмотка на 16,5 В. Но для питания двух, последовательно включенных ламп нужно 12,6 В. Излишек у меня гасился на 10-ваттном резисторе сопротивлением 4,4/1,35=~3,3 Ом. На нем впустую рассеивалось 6 Вт мощности (на каждом канале). В новой схеме я разделил накальную обмотку 2,95 А на две полуобмотки (они располагаются на разных катушках), средняя точка которых заземлена. А каждая полуобмотка напряжением 3,3 В включалась последовательно противофазно с обмоткой 16,5 В. Таким образом, из напряжения 16,5 В вычитается 3,3 В и на накал выходных ламп подается 13,2 В или по 6,6 В на каждую. Что немного больше нормы, но до максимальных 7 В по паспорту запас есть. В то же время протекающий ток накала этих ламп суммируется с током накальной обмотки выпрямительных диодов и суммарный максимальный ток этой обмотки получается 4,3 А. А выпрямительные диоды потребляют из этого тока только 3,8 А, что дает нам 0,5 А запаса! Неплохое решение проблемы. К тому же мы сэкономили целых 12 Вт мощности, которые раньше просто отапливали помещение, в котором стоит усилитель.

Монтаж деталей внутри корпусаМонтаж деталей внутри корпуса

Однако делать такие финты не всегда возможно. Причина в том, что для ламп нужно учитывать еще максимальное пробивное напряжение катод-подогреватель. Оно зависит от свойств изоляции подогревателя. Например для лампы 6Д22С максимальное напряжение между катодом и подогревателем 100 В если потенциал подогревателя выше и 900 В если потенциал катода выше. У нас на катоде 250 В, а потенциал подогревателя около земли, поскольку середина накальной обмотки заземлена. Укладываемся в пределы. Для ламп 6П44С напряжение между катодом и подогревателем 220 В, при этом катод сидит на земле, а на подогревателе переменная составляющая максимум 16,5 В. Тоже укладываемся. А вот с маломощными диодиками сложнее. У них положительный потенциал подогревателя вообще не допускается, а отрицательный может быть не более 350 В. Поэтому придется запитать накал диодов от отдельной обмотки и соединить цепь накала с выпрямленным потенциалом минус 185 В. Да, максимальная амплитуда напряжения на катоде равна удвоенному выпрямленному напряжению, т. е. 370 В, что даже уже немножко превышает максимальные 350 В по паспорту. Но почти за год эксплуатации проблем из-за этого не было.

А для чего нужно такое большое отрицательное напряжение? Ведь для схемы необходимо всего минус (30...35) В. И отвод на выпрямитель можно сделать с обмотки 71 В, тогда выпрямленное напряжение будет около минус 100 В и проблем не будет никаких. Так и было сделано в промежуточной версии усилителя. Там напряжение смещения устанавливалось обычным резистивным делителем. Но выяснилась одна неприятная особенность. При колебаниях напряжения сети в пределах 210 - 250 В, а также при просадке напряжения на трансформаторе при работе усилителя под нагрузкой наблюдалось уменьшение напряжения смещения, что приводило к увеличению тока покоя. Причем, чем больше нагрузка, тем больше просадка, тем меньше напряжение смещения, больше ток покоя и, тем самым, еще большая просадка напряжения. Такая вот положительная обратная связь. Было решено стабилизировать напряжение смещения газовым стабилитроном. Из доступных низковольтных удалось разжиться только СГ-202Б. Его напряжение стабилизации около 84 В, что, в принципе, терпимо. А вот что не терпимо так это очень большое напряжение зажигания, которое по справочнику может достигать 135 В! Т.е. более чем на 50% больше чем напряжение стабилизации. Конечно, в реальности это напряжение будет ниже, чем в справочнике, но мы то проектируем устройство, которое должно работать при любых разбросах входящих в его состав электронных компонентов. А вот, например, у стабилитрона СГ-1П напряжение стабилизации 150 В, а гарантированно зажигается он при напряжении не более 175 В, т.е. при напряжении, превышающем не более чем на 20 % от номинального. Поэтому для гарантированного зажигания стабилитрона его делитель необходимо запитывать по возможности от большего напряжения.

Также я решил стабилизировать питание предварительных каскадов стабилитроном СГ-1П. Особой необходимости в этом нет, просто такой стабилитрон у меня валялся в коробке.

Стабилитрон СГ1П и дополнительный маломощный трансформаторСтабилитрон СГ1П и дополнительный маломощный трансформатор

Есть еще один тонкий момент, связанный с накалом, о котором следует упомянуть. Это влияние т. н. паразитного диода катод-подогреватель. Подогреватель как и все нагретые тела испускает электроны и, если на катоде относительно него положительный потенциал, то вместе с подогревателем они образуют открытый диод косвенного накала через который переменное напряжение накала (помеха 50 Гц) может проникать на катод. Этому старается препятствовать изоляция подогревателя, но по мере износа лампы, ее изолирующие свойства ухудшаются и ток (утечки) возрастает. Порядок величины тока утечки не более 15 - 20 мкА. Вроде бы величина тока не такая большая, но если в цепи катода стоит высокоомный резистор (катодный повторитель) или лампа усиливает очень слабые сигналы, влияние тока утечки может оказаться существенным. В нашей схеме почти у всех ламп в цепи катодов стоят низкоомные резисторы, на которых ток утечки даст почти не ощутимое падение напряжения. Но вот у ламп 6Н23П, на которых собран диффкаскад, в цепи катода стоит источник тока, имеющий очень большое сопротивление. Для этого каскада ток утечки представляет опасность.

Бороться с этим явлением можно двумя способами: 1. Подать на подогреватель потенциал заведомо больший чем потенциал катода. Тогда паразитный диод будет заперт обратным напряжением и помех вносить не будет. Если напряжение на катоде 3-4 В, то подав на подогреватель 20-25 В мы гарантированной запрем диод. Потенциал можно получить с помощью делителя напряжения и подключить к любому из концов обмотки накала. Но в нашем случае этот вариант не годится, поскольку катод находится под потенциалом около 100 120 В и для запирания диода необходимо напряжение 140-150 В. Это напряжение уже слишком велико для других ламп, питающихся от этой же накальной обмотки. Можно, конечно, намотать для этих ламп еще одну дополнительную обмотку 6,3 В, 1А и таким образом немного разгрузить обмотку на 2,1 А, которая работает с небольшим перегрузом. И к этой обмотке подвести через высокоомный резистор потенциал 150 В от стабилитрона. Этот способ я бы рекомендовал тем кто, возможно, захочет повторить мою схему. Но в моей конструкции усилителя это бы потребовало слишком больших переделок. Поэтому я прибег к способу номер 2: симметрировать потенциал подогревателя относительно общего провода. В этом случае, помехи от левой и правой половин подогревателя будут одинаковы по величине, но противоположны по знаку и взаимоуничтожатся. Симметрирование осуществляется с помощью переменного резистора концы которого подключены к обмотке накала, а движок соединен с общим проводом. Вращая движок резистора необходимо найти такое положение ротора при котором уровень сетевой наводки будет минимален (перед этой регулировкой необходимо отключить ООС усилителя, т. к. она также давит помехи). Эту доработку я делал последней, поэтому на схеме она не отражена.

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

Усилитель

Сигнал от внешнего источника через разъемы Х2 Х4 поступает на коммутатор на галетном переключателе, которым можно выбрать один из трех входов. После коммутатора сигнал приходит на пассивный регулятор тембра (низких и высоких частот). Многие, вероятно, будут говорить что эта штука не нужна. Но на мой взгляд - требуется. Поскольку разные источники имеют разные частотные характеристики и для оперативной регулировки темброблок необходим. Схема темброблока стандартная, но, в отличие от бытовой аппаратуры, диапазон регулирования сделан меньше. Это позволяет использовать вместо переменных резисторов с характеристикой В более доступные резисторы с характеристикой А. Методика расчета таких регуляторов неоднократно описана, можно посмотреть, например, здесь.

Для корректной работы регуляторов тембра источник сигнала для темброблока должен иметь как можно меньшее сопротивление, а нагрузка наоборот как можно большее. Поэтому, а также для компенсации потерь сигнала в пассивном регуляторе, после темброблока сигнал поступает на каскад усиления на двойном триоде 6Н23П. Каскад работает с автосмещением и небольшой местной ООС по току. С выхода каскада сигнал поступает на регуляторы громкости и баланса. Регуляторы зашунтированы конденсаторами небольшой емкости для предотвращения спада АЧХ из-за входной емкости следующего каскада. После регуляторов сигнал поступает на триодный каскад усиления на триодной половине лампы 6Ф1П. Каскад работает с автосмещением и на катодный резистор заходит сигнал общей ООС. ООС сделана отключаемой. При переводе тумблера в верхнее положение, катодный резистор шунтируется и каскад работает как обычный с автосмещением. Также каскад охвачен местной частотозависимой ООС по напряжению. Это необходимо для ограничения полосы пропускания усилителя по высоким частотам для предотвращения самовозбуждения. Каскад непосредственно нагружен на дифференциальный каскад на двойном триоде 6Н23П. Диффкаскад питается от источника тока, собранного на пентодной части лампы 6Ф1П. Уровень этого тока задается резистором в цепи катода лампы. С диффкаскада противофазные сигналы поступают соответственно каждый на свой мощный выходной каскад на лучевом тетроде 6П44С. Каскады работают с принудительным смещением. Уровень напряжения смещения задает ток покоя каскада, который должен быть примерно 100 мА. Катодные резисторы дают небольшую ООС по току и позволяют измерить ток покоя в каждом плече не разбирая усилитель (падение напряжения на резисторе около 500 мВ). Это требуется для диагностики ламп и выявления тех, в которых эмиссия катода упала уже ниже допустимого. Небольшая балансировка каскадов обеспечивается резистором в цепях вторых сеток. Зачем это надо, я хз, эта часть схемы один-в-один скопирована у автора. Вращение ручки этого резистора абсолютно никак не сказывается на работе схемы. При наличии на трансформаторе симметричных обмоток, этот вывод можно было бы подключить к отводу трансформатора для реализации ультралинейного включения, что могло бы несколько улучшить линейность усилителя. Для этого можно было бы использовать два трансформатора ТН с перекрестным включением обмоток, такие схемы также можно найти по ссылке в начале статьи. Выходные каскады нагружены на две полуобмотки трансформатора ТН. Несмотря на то, что обмотки явно несимметрично намотаны, возникающие при этом повышенные межвитковые емкости не оказывают существенного влияния, поскольку лучевые тетроды 6П44С токовые лампы и паразитные емкости не оказывают какого либо существенного влияния. С выходных обмоток снимается сигнал на акустическую систему. Обмотки соединены таким образом чтобы на нагрузке 4 Ом обеспечить наименьшие потери в проводе. Для этого на отвод 4 Ом работают последовательно включенные обмотки на 5,4 А и две параллельно включенные на 3,4 А. На 8 Ом работают предыдущие плюс еще одна обмотка на 3,4 А. Примерная выходная мощность при 4 Ом нагрузке: (6,3+6,3)^2 / 4 = 40 Вт, при 8 Ом нагрузке: (6,3+6,3+6,3)^2 / 8 = 45 Вт. С отвода на 4 Ом снимается сигнал на индикатор уровня и ООС.

Немного про ООС. Вообще говоря, качество звучания двухтактных ламповых усилителей, работающих в классе АВ, крайне паршивое. Когда я его включил первый раз после обычного транзисторного, даже мои далеко не музыкальные уши чуть в трубочку не свернулись. И это действительно так и есть и подтверждается измерительными приборами. Большие линейные искажения, большие нелинейные искажения, узкая полоса частот, которая ограничена снизу десятками герц из-за недостаточной индуктивности выходных трансформаторов, наводки 50 Гц от силового трансформатора. Также свою лепту вносит большой разброс параметров отдельных экземпляров ламп, который довольно большой даже у новых, не говоря уже о б/у. Повышая ток покоя, нелинейные искажения можно немного снизить, но это даст повышенную нагрузку на источник питания. В общем, так себе вариант. С этим нужно что то делать и я решил охватить весь усилитель (кроме самого первого каскада) отрицательной обратной связью (ООС). Тем более что у усилителя было некоторое избыточное усиление и я решил его потратить с пользой.

В чем физический смысл ООС? На вход усилителя в противофазе подается часть усиленного выходного сигнала. Из-за этого уровень сигнала на выходе уменьшается. Какой же прикол уменьшать выходной сигнал, спросите вы? А прикол в том, что вместе с выходным сигналом на вход в противофазе поступают помехи и искажения, которые родились уже внутри, охваченной ООС части схемы. А поскольку они поступают в противофазе, на выходе усилителя они вычитаются! Итак, достоинства ООС:

1. Уменьшение нелинейных искажений

2. Уменьшение линейных искажений, расширение полосы частот

3. Уменьшение шума, фона и помех, проникающих по питанию

Недостатки ООС:

1. Необходимость ограничения полосы усиления усилителя для предотвращения превращения отрицательной ОС в положительную и самовозбуждения

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

Индикатор уровня. Кроме эстетической функции индикатор несет и чисто утилитарную показывает уровень выходного сигнала. Например, только благодаря ему я заметил что усилитель самовозбуждается на частоте 1 МГц при включении ООС когда я недостаточно ограничил полосу усилителя. Я наивно полагал, что выходной трансформатор сработает фильтром и ограничит полосу, но межобмоточная емкость ее не то что не ограничила, но и превратила ООС в ПОС. После этого я добавил местную частотозависимую ООС в первый каскад усиления и все стало норм. Сигнал звуковой частоты поступает на переменный резистор, которым можно подстроить уровень индикации. У меня он настроен так чтобы полностью закрывалось все поле индикатора уже при выходной мощности 10 Вт. С переменного резистора сигнал поступает на катод диода, который совместно с RC-цепочкой работает здесь детектором огибающей сигнала. Продетектированный сигнал поступает на лампу индикатора. Индикатор включен по типовой схеме и в пояснениях не нуждается. Единственное, я столкнулся с тем что луч некоторых индикаторов отклонен у кого влево, у кого вправо. Это не неисправность. Связано это с тем что металлический экран с люминофором бывает намагничен что и вызывает отклонение луча. Проведя рядом с ним слабеньким магнитиком, зеленый луч можно выправить и поставить ровно.
Про смещение. Для задания режима работы выходных ламп, лучевых тетродов необходимо достаточно большое отрицательное напряжение "смещения". В данной схеме применен вариант с фиксированным или принудительным смещением. Недостатками этого решения является необходимость в дополнительном выпрямителе - источнике этого отрицательного напряжения. Кроме этого, его необходимо стабилизировать и регулировать по мере износа ламп. Причем, регулировать желательно для каждой лампы отдельно, поскольку у них может быть существенный разброс параметров от экземпляра к экземпляру. В этом свете, использование автосмещения может быть предпочтительным. Автор исходной схемы предлагает попробовать такой вариант самостоятельно. В этом случае в катодную цепь каждой лампы включается резистор сопротивлением 150, шунтированный конденсатором не менее 1000 мкФ на 50 В. В такой схеме ток покоя лампы поддерживается неизменным вне зависимости от анодного напряжения и старения лампы. Недостатком является большая мощность, рассеиваемая на этом резисторе - около 6 Вт на каждом, или 24 Вт на весь усилитель, что многовато. Чтобы объединить достоинства обоих вариантов можно применить схему комбинированного смещения. В катодной цепи оставить резистор автосмещения, но намного меньшего номинала, например 30 Ом, а на сетки также подавать фиксированное смещение, но можно нестабилизированное и общее для всех ламп. Иными словами, некоторый уровень смещения (например, 80%) общий для всех ламп, а автосмещение обеспечивает оставшиеся 20% напряжения смещения, которое и дает стабилизацию тока покоя. Но это опять же в моей конструкции не использовано в связи с необходимостью существенных переделок. Это рекомендуется для тех, кто захочет повторить данную схему.

Схема с учетом исправления всех ошибок и учетом всех рекомендаций приведена ниже.

В ней для упрощения исключен дополнительный трансформатор, а для повышения напряжения в цепочку дополнительно включены обмотки 17 В. Тока в них хватает. Исключен источник отрицательного напряжения смещения со стабилитроном и регулировками, использована схема с автосмещением по причинам, описанным выше. В качестве выходных трансформаторов применены ТС-180. Выходные лампы в ультралинейном включении. С точкой подключения вторых сеток, и, соответственно, величиной этой "ультралинейности" можно поиграться. Исключен стабилитрон 150 В. В остальном, схема повторяет описанную выше. Несмотря на упрощение схемы, ее характеристики не хуже, описанной выше.

Конструкция и детали.

Корпус, как я уже писал выше, использовал готовый от компьютера мультикассы. На нем сверху вполне свободно разместились силовой трансформатор, выходные трансформаторы, дроссели питания, лампы. Единственный минус корпуса он дюралюминиевый и не экранирует от магнитных полей силового трансформатора, а это сделать крайне необходимо. Сзади корпуса были отверстия под стандартные разъемы материнской платы АТХ, их пришлось закрыть алюминиевой пластиной. Входные разъемы для аудиосигнала я использовал типа CANON, просто потому что у меня такие разъемы были. Вообще, тип разъема не имеет значения, можно использовать и RCA и советские DIN-5. Выходные клеммы винтовые типа ЗМП или аналоги. Их преимущество надежный зажимной контакт, удобство монтажа на задней панели и доступная цена. Также на заднюю панель выведены тестовые гнездышки малогабаритные типа Г1,6 под штеккер Ш1,6. С их помощью можно контролировать питающие напряжения и режимы выходных ламп без разборки корпуса усилителя. Это тоже периодически нужно делать поскольку лампы со временем садятся. На задней панели смонтирован выключатель ООС на тот случай если захочется послушать настоящий теплый ламповый звук со всеми искажениями и наводками.

Силовой трансформатор типа ТС(А)-270. Предпочтение следует отдавать трансформаторам с медными обмотками (без буквы А), но и алюминиевые будут работать ничем не хуже. Трансформатор крайне необходимо устанавливать в железном кожухе. К сожалению, понял я это слишком поздно, когда уже разместил все элементы на корпусе. Магнитное поле рассеяния трансформатора довольно велико, поскольку он работает почти с полной загрузкой. Это поле мало того что наводится на проходящие рядом в корпусе соединительные провода, оно также наводится на стоящие рядом выходные трансформаторы и в динамиках слышен слабый гул 50 Гц, даже когда усилитель только включен и лампы еще не прогрелись. Кожух обязательно требуется снабдить вентиляционными отверстиями. Трансформатор можно использовать с готовой панелькой для предохранителей, в нее же вместо контактных штырьков после небольшой доработки легко встает разъем под стандартный компьютерный кабель питания.

Ламповые панельки для мощных ламп керамические от массовых черно-белых телевизоров. В свое время у меня этих панелек было завались, теперь же их пришлось покупать. Барыги на радиорынке за них сейчас хотят много денег, поэтому их тоже имеет смысл купить в сборе с ламповым Ч/Б ТВ на авито. Из того же ТВ можно взять и силовой трансформатор ТС-180, который можно употребить в качестве выходного. Панельки для маломощных ламп девятиконтактные, керамические с ушками для монтажа. Стоят недорого.

Выходные трансформаторы ТН-56 кроме того что трудно достать, так еще и просят за них около 1000 - 1500 р. Их можно без проблем заменить на следующие по списку в семействе, например, ТН-60, ТН-61. Главное, проверить по справочнику чтобы выходные обмотки были примерно на одинаковый ток нагрузки. Вместо этих трансформаторов неплохо подходят силовые ТС-180. Большой набор обмоток позволяет включать их с разным коэффициентом трансформации и использовать режим ультралинейного включения, причем место подключения второй сетки можно также выбирать, пробуя разные варианты. Что также хорошо, эти трансформаторы (в отличие от ТН) полностью симметричны. Единственное, при использовании этих трансформаторов мне потребовалось включить блокировочные конденсаторы порядка 1000-2200 пФ между анодами выходных ламп и корпусом для блокировки самовозбуждения на высоких частотах. На полосе частот усилителя эти конденсаторы никак не сказываются.

Дроссели по питанию выходного каскада должны быть на ток не менее 0,4А, и иметь индуктивность как можно большую. Мне удалось достать пару на 1,5 Гн. Это маловато, но сойдет. Дроссель по питанию 400 В, должен быть на ток не менее 0,1 А. Если приобрести пару телевизоров УЛПЦТ, из них можно добыть не только трансформаторы, но и примерно подходящие дроссели Др 5- 0,08 (5 Гн, 0,08 А) и Др 0,4 0,34 (0,4 Гн, 0,34 А).

На передней панели установлен галетный переключатель селектор входов, можно взять любой на 2 направления и на 3 положения. Рядом с переключателем стоят переменные резисторы. Я сначала использовал сдвоенные советские типа СП-3, но, к сожалению, у них от старости совсем стал плох резистивный слой. Сколько я в них не пшикал смазками и жидкостями для улучшения контакта, они при повороте издавали шорох, а один из них в какой то точке вообще уходил в обрыв. Пришлось их заменить на новые китайские. Единственная трудность состоит в том, чтобы найти резисторы с характеристикой В. Если в регуляторы НЧ, ВЧ, баланса еще можно поставить резисторы с характеристикой А (поскольку глубина регулировки тембра невелика), то на регулятор громкости необходимо постараться и найти все же с характеристикой В. Поскольку человеческое ухо имеет логарифмическую характеристику чувствительности, то и громкость необходимо изменять с логарифмической зависимостью.

На передней панели смонтированы две неоновые лампочки индикации появления анодного напряжения +400 В и +200 В. Они зажигаются когда кенотроны прогреются и выпрямленное напряжение вырастет до напряжения зажигания этих ламп. Тип ламп не важен, можно взять лампочки из блока выбора программ телевизоров УЛПЦТ. Рядом с лампочками смонтирован выключатель питания.

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

Конденсаторы используются пленочные типа К73-17 также из старых телеков, резисторы МЛТ оттуда же. Конденсаторы нужно подбирать по максимальному рабочему напряжению с запасом, ламповая техника вся высоковольтная. Резисторы выбираются не столько по мощности, сколько по удобству монтажа. Более крупные резисторы имеют более длинные и толстые выводы, прочнее держатся в лепестках.

Дополнительный трансформатор, дроссель по напряжению 400 В смонтированы внутри корпуса. Просто потому что их я добавлял позже и места на поверхности уже не было. Газовый стабилитрон СГ-1П сначала тоже стоял наверху, но после добавления еще одного каскада усиления, он переехал в поддон.

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

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

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

Монтаж выполнен проводами от компьютерных блоков питания. Особого скрытого смысла в этом нет, просто у меня полно таких проводов. Цепи накала крайне необходимо вести витой парой проводов, контакт с корпусом в каком либо месте не допускается. Все общие провода по возможности сходятся в одном месте на конденсаторах фильтра питания выходных каскадов. Также следует следить за тем чтобы не образовывалось замкнутых петель земляных проводов, иначе поле рассеяния силового трансформатора наведет на них довольно существенную ЭДС помехи 50 Гц.

Для защиты от поражения электрическим током заказал для усилителя кожух из прозрачного оргстекла. Такие услуги предлагают многие фирмы. В одной конторе с меня запросили около 3 т. р., в другой удалось изготовить за 1500. Кожух крепится на петлях и может открываться вверх для замены ламп и регулировок. Вверху кожуха сделано множество мелких отверстий для вентиляции. Снизу передней части кожуха сделана одна широкая щель для захода охлаждающего воздуха. Шильдики для органов управления и ламп сначала хотел сделать также из тонкого оргстекла, заполнив след от лазера краской, но затея не удалась. Результат получился фиговый. Пришлось воспользоваться специальным пластиком для подобного рода табличек. Смотрится, конечно, не так как я хотел с оргстеклом, но, в целом, неплохо.

Измерение параметров

Самое главное проверить приборами, что же мы, в итоге, напаяли.

Измерение выходной мощности.

Это один из основных параметров усилителя. Для этого нам потребуется генератор сигналов низкочастотный, осциллограф, милливольтметр и нагрузка 4 Ом на каждый канал. У меня есть в наличии генератор Г3-118, двухлучевой осциллограф С1-18, милливольтметры В3-38. Если измерительных приборов нет, вместо генератора можно подавать сигнал с линейного выхода звуковой карты, при этом необходимо скачать программу генератор звуковых сигналов, их много бесплатных. Контролировать сигнал также можно подавая его на линейный вход звуковой карты, единственное делать это надо через резистивный делитель чтобы не спалить вход - раз и чтобы не превысить максимальный уровень звуковухи - два. И да, тоже необходимо будет скачать и установить программу осциллограф. Такие программы уже сложнее и чаще платные. Измерять уровень можно и обычным мультиметром. Тут, однако, надо иметь ввиду что обычные ширпотребовские мультиметры заточены под измерение переменного тока низкой частоты, 50 200 Гц, не более, поскольку там стоят дешевые выпрямительные диоды. На частоте 1 кГц и выше, такие мультиметры могут давать уже достаточно существенную погрешность. Нагрузка 4 Ом самодельная, сделанная из большого количества 2-ваттных резисторов, обдуваемых вентилятором. Вентилятор питается от выпрямленного напряжения с этой же нагрузки. По быстрому нагрузку можно сделать из 4-х последовательно включенных 10-ваттных керамических резисторов по 1 Ом, которые придется купить.

Подключим генератор на вход усилителя, сразу на оба канала. Громкость установим на максимум, регуляторы тембра в среднее положение. Установим частоту стандартную для подобного рода измерений 1 кГц. К выходу каждого канала подключим нагрузку 4 Ом, параллельно ей по каналу осциллографа и по милливольтметру. Будем увеличивать уровень входного сигнала с генератора наблюдая при этом за пропорциональным увеличением выходного сигнала. Когда на экране осциллографа у синусоид будут видны различаемые на глаз искажения (это соответствует КНИ 5 - 10%), увеличивать уровень прекратим и будем считать эту мощность максимальной для данного усилителя.

Уровень выходного напряжения смотрим по вольтметру и рассчитываем выходную мощность по формуле P=U^2/R=81/4=~20 Вт. Эх, всего то 20 Вт, а ведь было обещано 43! Посмотрев сигнал на анодах и катодах выходных ламп, видно, что это они входят в ограничение, им не хватает как диапазона напряжения питания 200 В, так и тока катода. Напряжение питания можно повысить если применить трансформатор с большим коэффициентом трансформации, например ТС-180 со всеми включенными обмотками. При этом необходимо будет пропорционально уменьшить ток покоя, иначе будет превышена максимальная допустимая мощность на аноде лампы. Однако это потребует существенной переделки питания усилителя. Также не очень эффективно используется габаритная мощность выходного трансформатора, его выходные обмотки недогружены. В общем, обдумав все и прикинув варианты, я пришел к выводу что из существующей схемы без существенных переделок большего уже не выжать. Поэтому будем считать что такая мощность нас устраивает. Кстати, при включенной ООС выходная мощность усилителя чуть больше, поскольку ООС немного корректирует вносимые искажения.

Измерение АЧХ.

Для измерения АЧХ усилителя нужно установить регуляторы тембра в среднее положение, установить определенное напряжение на выходе усилителя, например 3 В. И уменьшать частоту генератора в сторону низких частот до тех пор пока напряжение на выходе усилителя не упадет менее 0,707*3=2,121 В. Это будет нижняя граничная частота усилителя. Аналогично потом нужно увеличивать частоту генератора до тех пор пока напряжение на выходе усилителя снова не упадет менее 2,121 В. Это будет верхняя граничная частота усилителя. Это нужно проделать сначала для одного канала усилителя, затем для другого. Но для получения наглядной картинки мы воспользуемся прибором СК4-56. Это анализатор спектра, но он имеет внутри генератор качающейся частоты и его легко можно приспособить для измерения АЧХ. Для этого на вход усилителя подаем сигнал не с генератора сигналов, а с выхода генератора качающейся частоты анализатора спектра. АЧХ измеряем сначала в одном канале, потом в другом, подключая вход анализатора сначала к одному каналу, потом к другому. Анализатор спектра также следует подключать через делитель напряжения для защиты его входа (имеет тенденцию дохнуть), а также чтобы его входной усилитель не ушел в зашкал. На анализаторе ставим ручную развертку, настраиваем частоты границ экрана (от -5 кГц до 45 кГц). Затем устанавливам уровень сигнала таким чтобы точка была в середине сетки прибора. Ставим самую медленную развертку и запускаем измерение. На экране прибор нарисует нам АЧХ канала усилителя. По уровню минус 3 дБ полоса частот усилителя 10 Гц 30 кГц. Проделываем такую же операцию при минимальном и максимальном положении регулятора тембра ВЧ. Потом так же и с другим каналом.

АЧХ в области ВЧ (в клетке 5 кГц по горизонтали, 10 дБ по вертикали, 0 Гц - где всплеск):

АЧХ в области ВЧ (в клетке 5 кГц по горизонтали, 10 дБ по вертикали, 0 Гц - где всплеск). Завал характеристики в среднем положении связан с некоторым поворотом самой трубки прибора.АЧХ в области ВЧ (в клетке 5 кГц по горизонтали, 10 дБ по вертикали, 0 Гц - где всплеск). Завал характеристики в среднем положении связан с некоторым поворотом самой трубки прибора.АЧХ в области НЧ (в клетке 10 Гц по горизонтали, 10 дБ по вертикали, 0 Гц - где провал)АЧХ в области НЧ (в клетке 10 Гц по горизонтали, 10 дБ по вертикали, 0 Гц - где провал)

Измерение КНИ.

Измерим КНИ с помощью того же прибора СК4-56. Только подавать сигнал будем с генератора низкой частоты. Для получения как можно более точных результатов необходимо использовать генератор с как можно меньшей величиной собственных искажений. Убедиться в этом можно, подав сигнал напрямую на анализатор спектра. На экране должна торчать только одна палка, соответствующая частоте настройки генератора (1 кГц). Также нормируем уровень сигнала чтобы основная гармоника (1 кГц) находилась на уровне 0 дБ сетки, соответственно, побочные гармоники будут иметь уровень минус 20 дБ, минус 40 дБ и т.д.

Спектр сигнала при небольшой выходной мощности (~ 1 Вт):

Спектр сигнала при почти максимальной выходной мощности (~ 20 Вт):

Считать вручную КНИ очень долго, поэтому воспользуюсь маткадом. Вообще говоря, есть КНИ (коэффициент нелинейных искажений) и КГИ (коэффициент гармонических искажений) немного разные вещи и считаются по разным формулам. Но при малых значениях, КНИ и КГИ в первом приближении совпадают, поэтому будем считать КНИ. Считать будем приближенно, по первым 10 гармоникам. Записываем уровни первых 10 гармоник, переводим из децибел в абсолютные значения, считаем по формуле, получаем уровень КНИ на частоте 1 кГц и почти номинальной мощности 3,7 %.

Повторяем процедуру на небольшой мощности и получаем значение 0,2 %. В принципе, для лампового усилителя очень и очень неплохо. Однако необходимо учесть что это значения при включенной ООС, при выключенной параметры будут существенно хуже.

Вот и все что мне хотелось рассказать про свой проект постройки лампового усилителя. Свои замечания и предложения прошу писать в комментариях.

Подробнее..

Перевод Под капотом инновации в Volkswagen Golf 8

05.04.2021 16:10:13 | Автор: admin
image

Volkswagen Golf 8 не шикарный суперкар. Но это самая продаваемая модель немецкого автопроизводителя, полная различных наворотов. Она может похвастаться множеством функций ADAS и возможностями сетевого взаимодействия в частности речь идет о протоколе V2X (для связи между автомобилями) и UWP (для безопасного доступа к автомобилю).

Также Golf 8 это гибридный электромобиль с литий-ионным аккумулятором. В последней модели используется новая 48-вольтовая электрическая система.

По словам генерального директора компании System Plus Consulting (Нант, Франция) Ромена Фо, очень интересно как VW удалось интегрировать такое множество инноваций в такой компактный массовый автомобиль. System Plus, часть компании Yole Dveloppement, занимающейся исследованиями рынка и технологий, из Лиона, разобрала новый Golf.

Отказ от централизации вычислений


Разборка Golf 8 показала, что в автомобиле нет мощной центральной вычислительной системы вроде Xavier от Nvidia или системы на кристалле от Tesla. Вместо этого в разных узлах используются специализированные ECU, отвечающие за различные функции. Любопытно, что VW удалось создать передовое ADAS-решение без переработки электрической и электронной (E/E) архитектуры автомобиля.

Помните шумиху вокруг Audi A8, которую называли первым легковым автомобилем с функциями автономности 3-го уровня? В реальное производство эта модель так и не попала. Столкнувшись с нормативными трудностями, Audi отказалась от планов по внедрению технологий беспилотной езды во флагманском седане A8.

В свою очередь, модули ADAS уже представленного на рынке крупногабаритного Golf 8 существует на практике, а не в теории.

Наш разбор Golf 8 не только раскроет изобретательность инженеров VW, но и представит ряд проблем, с которыми им пришлось столкнуться.

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

Хотя программное обеспечение, лежащее в основе Golf 8, не входило в рамки этого разбора, не секрет, что VW столкнулся с множеством проблем. В прошлом году из-за ошибок в программном обеспечении, предназначенном для вызова экстренных служб, компания VW задержала выпуск последней модели. В этом году VW отозвал 56 000 моделей Golf, чтобы исправить ошибки, влиявшие на информационно-развлекательную систему и камеру заднего вида.

Лоскутное одеяло из модулей


Одной из самых ярких особенностей Golf 8 является разнообразие модулей, выполняющий различные функции. Эти модули отвечают за мониторинг трафика, отслеживание автомобилей позади, помощь при смене полосы, контроль слепых зон и помощь при парковке. Каждая функция ADAS обрабатывается отдельным модулем поставщиками компонентов для них стали Valeo, Bosch и Hella.

Кроме того, каждый модуль поставляется с отдельным блоком управления, разработанным различными поставщиками. Среди них Infineon, Renesas и NXP.

По сути, Golf 8 представляет собой лоскутное одеяло из модулей от различных поставщиков.

Платформа MQB


Примечательно, что Golf 8 построен на платформе Volkswagen Group MQB. MQB, впрочем, не является платформой, заточенной под новую E/E-архитектуру от VW. MQB должна стимулировать разработку различных модулей для брендов VW Group: Audi, Volkswagen, Seat и koda.

Генеральный директор System Plus Consulting объяснил: Таков способ VW укрепить свою покупательную способность. Многие аппаратные компоненты, встроенные в Golf 8, также используются в автомобилях других марок VW, построенных на MQB очевидно, это секретное оружие, которое позволило Golf 8 стать эффективным автомобилем для массового рынка.

Golf 8 можно рассматривать как напичканную электроникой версию популярного хэтчбека благодаря полностью цифровой кабине и технологиям сетевого взаимодействия (включая стандарт связи V2X на основе DSRC). В Golf 8 встроено множество передовых систем помощи водителю, выводящих на массовый рынок набор технических решений, которые до сих пор использовались в автомобилях более высокого класса.

Мягкий гибридный электромобиль


Ромен Фро объяснил преимущества и технические характеристики автомобиля, подчеркнув, что новый Golf 8 также оснащен мягкой гибридной системой (mHEV), поддерживающей двигатели внутреннего сгорания (дизельные и бензиновые) за счет использования генератора-стартера на 48 В, аккумулятора на 48 В и DC/DC-преобразователя. Система mHEV экономнее гибридов других типов (например, плагинов, установленных на Passat и Golf GTE) благодаря более простой и доступной архитектуре.

Новая функция Travel Assist, встроенная в Golf 8, обеспечивает помощь при вождении на высоких скоростях. Для этого система отслеживает расстояние от других машин с помощью системы ACC и удерживает автомобиль в полосе с помощью системы Lane Assist. Используя данные о маршруте и данные от навигационной системы, система вычисляет положение автомобиля и заранее снижает скорость перед поворотами, кольцевыми дорогами, перекрестками, зонами с ограничением скорости и центрами городов.

Golf 8 оснащен множеством систем помощи водителю, как показано на изображении выше.

ADAS


Система предупреждения о лобовом столкновении в Golf 8 (включенная в Front Assist) может следить за трафиком и предупредить вас (как звуком, так и визуально), о потенциальном ударе сзади. Эта система также активирует экстренное торможение за счет увеличения тормозного давления. Мониторинг пешеходов может предупредить вас о пешеходе, переходящем дорогу перед вами и, при определенных обстоятельствах, ваш автомобиль будет сам реагировать на эти предупреждения.

Передняя камера состоит из платы Valeo последнего поколения с модулем от Intel/Mobileye EyeQ4M, 1,3-мегапиксельным сенсором Omnivision CIS и микроконтроллером (MCU) серии RH850 / P1H-C от Renesas. RH850 / P1H-C оснащен 32-битными двухъядерными процессорами, системами безопасности, флэш-памятью для кода и данных, модулями ОЗУ, контроллерами прямого доступа к памяти, множеством интерфейсов связи, которые используются в автомобильных приложениях, аналого-цифровыми преобразователями, таймерами, и Т. Д.

image

В датчике OV10642 Omnivision используется технология OmniBSI для расширения динамического диапазона до 120 дБ в форм-факторе с низким энергопотреблением. 1/2,56-дюймовый датчик поддерживает активный массив 1280 1080 пикселей и скорость вывода до 60 кадров в секунду.

Передний радар использует решение от Bosch 5-го поколения с частотой 77 ГГц и единой платой, состоящей из однокристальной MMIC 3Tx4Rx Infineon и микроконтроллера AURIX со встроенной флеш-памятью на 40 нм TC397QA. Устройство имеет 4 ядра, работающие на частоте 300 МГц, и 5472 КБ встроенной оперативной памяти и потребляет менее 2 Вт.

image

Модуль Hella RS4 оснащен системой контроля слепых зон, ассистентом смены полосы движения и системой предупреждения о движении сзади. Как показано на рисунке ниже, плата состоит из MCU TC26x Tricore от Infineon и MMIC STRADA431 от STMicroelectronics. STRADA431 это однокристальный трансивер для автомобильных радаров, способный покрывать диапазон частот от 24 до 24,25 ГГц, чтобы соответствовать приложениям диапазона ISM.

image

Задняя камера, показанная ниже, может предупредить вас об обнаруженных транспортных средствах, пересекающих вашу траекторию при движении задним ходом, и даже может помочь притормозить транспортное средство, если это необходимо. В ней используется микроконтроллер Broadcom BCM8910X, разработанный для автомобильных систем компьютерного зрения, в том числе для камер заднего и бокового обзора. Встроенное ядро ARM Cortex поддерживает обработку прерываний с малой задержкой через ОС реального времени.

image

Датчик парковки состоит из преобразователя PZT и ASIC от Bosch. Фро отметил, что в данном решении используется специальная интегральная схема для выполнения определенных операций по управлению парковкой. Преобразователь выполнен из керамики круглой формы (толщиной порядка мкм), как показано ниже на рентгеновском изображении. Благодаря способности материалов создавать напряжение, схемы пьезопреобразователей не требуют внешнего источника питания.

image

В системе используются ультразвуковые датчики, расположенные в заднем бампере (иногда их устанавливают в переднем). Датчики контролируют расстояние до 150 сантиметров позади и, в зависимости от модели, перед автомобилем. Система срабатывает при включении передачи заднего хода или на очень низких скоростях.

Connectivity


На изображении ниже показаны системы связи, используемые в Golf 8, в частности V2X, GNSS и UWB. V2X на основе Wi-Fi опирается на европейский стандарт, который был выбран для связи между автомобилями и транспортными средствами с инфраструктурой.

image

Технология V2X должна сделать все автомобили более умными за счет реализации возможности общения с транспортной системой в том числе другими автомобилями и инфраструктурой. Водители смогут получать уведомления об опасных погодных условиях, авариях или заторах на дорогах. V2X также автоматизирует оплату дорожных сборов и мест для парковки, облегчая процесс вождения.

Поставщики довели до высокого уровня процессы исследования, разработки, испытания и стандартизации, чтобы обеспечить надежность в различных дорожных и транспортных условиях. Дополнительным преимуществом является доступность систем сетевого взаимодействия независимо от услуг сотовой связи с оплатой по факту использования. В системы V2X на базе Wi-Fi можно внедрять и другие сотовые технологии.

В Golf 8 используется трансивер LG Electronics DSRC V2X с компонентами от NXP ARM Cortex-A9, 64-битным процессором и радиочастотный V2X-трансивером. Архитектура приемопередатчика TEF5100 основана на прямом преобразовании, что устраняет необходимость использования дорогостоящих внешних фильтров. Внутренние каскады усиления с цифровым управлением на RF и BB обеспечивают приемнику низкий коэффициент шума и большой динамический диапазон.

image

UWB-cистемы были представлены в iPhone 11, и автопроизводители вроде Volkswagen занимаются стандартизацией систем, которые будут использоваться для автомобилей следующего поколения. В Golf 8 используется UWB-трансивер Microchip в сочетании с 16-битным микроконтроллером Renesas, что обеспечивает функциональность для передачи и приема импульсных радиочастотных энергетических сигналов. Благодаря своим характеристикам он способен преодолевать ограничения других систем и позволяет достигать точности 20 см в плоскости и 30 см в пространстве по сравнению с точностью 5 метров, обеспечиваемой другими системами локализации в пространстве.

image

Также в Golf 8 используется технология GNSS с набором микросхем Qualcomm MDM9240 и внешним интерфейсом Qorvo все на одной плате. Плата поддерживает память MCP NAND и LPDDR2 от Micron и контроллер Realtek Ethernet.

image

Технология mHEV


Golf 8 первая модель Volkswagen, оснащенная двигателем e-TSI: Volkswagen впервые используют 48-вольтовые системы. Рабочее напряжение увеличено до 48 вольт, чтобы уменьшить силу тока при той же мощности и, таким образом, улучшить рассеивание тепла.

В e-TSI используется литий-ионный аккумулятор, который помогает двигателю работать на низких оборотах и снижает как расход топлива, так и выбросы. Аккумулятор заряжается за счет энергии торможения и движения накатом.

Система mHEV использует генератор переменного тока/реверсивный стартер (BES) и работает вместе с тепловым двигателем для повышения мощности и снижения уровня выбросов.

image

DC-DC-преобразователь разработан Flex и состоит из Si Mosfet-устройств вроде STMicro MOSFET 80V, ON Semi MOSFET 60V и 32-битного MCU STMicro серии SPC560B54x. Устройство от ST представляет собой N-канальный силовой полевой МОП-транзистор, в котором используется технология STripFET F7 с улучшенным затвором, которая обеспечивает очень низкое сопротивление в открытом состоянии, а также снижает внутреннюю емкость и заряд затвора для более быстрого и эффективного переключения. Устройство от ON Semi это NTMFS5C612NLWF, N-канальный MOSFET-транзистор на 60 В, 1,5 МОм и 235 А.

image

Во время торможения автомобили с мягким гибридом восстанавливают энергию, выработанную при торможении для зарядки аккумулятора. Генератор/стартер поддерживает двигатель во время переходных фаз и фаз ускорения, обеспечивает при необходимости большую мощность и подзаряжает аккумулятор при отпускании педали газа и торможении, регенерируя до 40% кинетической энергии. Существует также режим FMA Freewheel, Motor Off, который выключает двигатель, когда автомобиль движется с постоянной скоростью, а регенерация энергии контрпродуктивна. Литий-ионный аккумулятор на 48 В, расположенный под сиденьем переднего пассажира, находится рядом с традиционной аккумуляторной батареей на 12 В, которая поддерживает работу с традиционной электрической системой.
Подробнее..

Перевод Рассматриваем отдельные биты на снимке микросхемы как действовать, когда архитектура неизвестна

07.04.2021 18:21:37 | Автор: admin

Введение

Я только начинаю путешествие в сферу обратного проектирования интегральных схем (ICRE), но меня уже совершенно обуяла страсть к данной отрасли. Кроме компьютерных и электротехнических аспектов ICRE, для работы в этой сфере нужны обширные знания по физике и химии. Поначалу химическая составляющая меня пугала, поскольку химию я почти не знал. Не говоря уже о том, как опасна работа с продуктами, необходимыми для вскрытия (декапсуляции) и послойного препарирования чипов.

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

Подготовка

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

Почему мне понадобился именно металлургический микроскоп, а не стереомикроскоп или не составной микроскоп? Потому что у большинства микроскопов подсветка снизу, и свет отражается от двухкоординатной пластины, а с ИС так работать нельзя, поскольку они не двусторонние. Рассматриваемые слои кристалла нужно правильно освещать, чтобы свет как следует отражался в направлении сверху вниз. В металлургических микроскопах используется так называемое наблюдение в отраженном свете (EPI illumination), уникальный тип освещения, также именуемого эпифлуоресцентным. Решение позволяет не только освещать объект ИС/образец; более того, объектив микроскопа собирает свет, отражающийся от поверхности образца.

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

Выбор лабораторного образца

Забавно, что когда я впервые вскрыл CH340Gиз платы Arduino Nano v3, я даже не подозревал, что наткнусь на целую секцию ПЗУ, прежде, чем приступлю к послойному препарированию. Как правило, берясь за проект с ПЗУ, нужно весьма хорошо понимать выбранный образец, в частности, познакомиться с его архитектурой и процессором, почитав даташиты. К счастью, у меня все вышло иначе, почему к счастью расскажу дальше, читайте.

Я взялся за распайку интегральных схем с платы Arduino прежде всего потому, что это была первая разработочная плата, которую я освоил в ходе моих упражнений по части безопасности встраиваемых систем. Следовательно, заключил я, можно будет знатно поностальгировать, бросив пару столь любимых мною чипов в жаркую дымящую серную кислоту. Честно говоря, я очень надеялся, что в ATmega328P, с которой я проводил мои первые эксперименты, найдется какое-нибудь ПЗУ, но, после многократных попыток разобрать ее по слоям при помощи плавиковой кислоты, я нашел только ЭСППЗУ, статическую память с произвольным доступом и флэш-память.

Разобранная на слои Atmega328PРазобранная на слои Atmega328P

Добравшись еще ниже, до поликремниевого слоя этого чипа (SiO/ оксид кремния), действительно начинаешь обнаруживать весьма интересные секции чипа, но ни из одной из них не представлялось возможным извлечь прошивку теми инструментами, что были у меня в распоряжении.

Примечание:если вы хотите посмотреть эту картинку в высоком разрешении, перейдите по следующей ссылке на личную страницу автора: siliconpr0n.

Сравнение флэш-памяти и ПЗУ. Как они выглядят под микроскопом

Возможно, вас интересует, а почему нельзя попросту считывать данные из сегментов флэш-памяти при помощи металлургического микроскопа, как это делалось бы с ПЗУ? Для начала давайте обсудим разницу. Масочное ПЗУ (MROM) содержит код прошивки, записываемый в кремниевую основу чипа на этапе конструирования в процессе производства полупроводника. МПЗУ производится путем расстановки транзисторов еще до начала процесса фотолитографии. Под микроскопом они могут весьма отличаться друг от друга:

ПЗУ TI TMS5200NL в сравнении с ПЗУ CBM 65CE02 от SiliconPr0nПЗУ TI TMS5200NL в сравнении с ПЗУ CBM 65CE02 от SiliconPr0n

Это просто два отдельных примера, позволяющих оценить, как может выглядеть транзистор МПЗУ на уровне подложки. В таких транзисторах может применяться либо материал n-типа с высокой концентрацией электронов, допированный атомом фосфора, либо материал p-типа, допированный атомом бора и отличающийся более низкой концентрацией электронов.

С другой стороны, флэш-память устроена сложнее. 1 транзистор != 1 бит. Причина, по которой сканирующий электронный микроскоп требуется для вытягивания бит из памяти типа ЭСППЗУ в том, что во флэш-памяти используется система карманов, в которых можно запасать остаточные электроны от пропускаемого тока, независимо от того, идет ли ток через схему в настоящий момент. Соответственно, такая память считается энергонезависимой. Во флэш-транзисторе четыре основные части: источник, сток и два затвора, которые называются плавающим и управляющим[1][2], а также изолирующий материал, отделяющий три остальные части друг от друга. По форме вся структура напоминает перевернутую букву Т, причем, в нижней части транзистора располагаются источник и сток, а в верхней части затворы, причем, управляющий затвор находится выше плавающего. Затворы заключены в оксидные слои, через которые ток, как правило, не проникает.

Модель транзистора в NAND FlashМодель транзистора в NAND Flash

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

Однако, сток не работает ожидаемым образом, поскольку между источником и стоком в транзисторе присутствует материал-изолятор, в котором мало электронов. При нагнетании положительного напряжения на электрические контакты на стоке и затворах, отрицательно заряженные электроны притягиваются к положительно заряженным электронам и так преодолевают сток. Немногочисленные электроны подтягиваются в плавающий затвор через оксидные слои в ходе процесса, именуемого квантовым туннелированием. Электроны, попавшие в плавающий затвор и застрявшие там, не могут прорваться обратно через оксидные слои и останутся в плавающем затворе неопределенно долго. Флэш-транзисторы с запасенными электронами расположены параллельно транзисторам ОЗУ, через которые идет ток. Для разделения электронов отрицательное напряжение регистрируется на электрическом контакте над плавающим затвором, это приводит к отталкиванию электронов от плавающего затвора.

Ячейки транзистора в энергонезависимой памяти Ячейки транзистора в энергонезависимой памяти

Примерно так будет выглядеть флэш-транзистор на уровне поликремниевого слоя под металлургическим микроскопом. Вы не увидите никаких зарядов, проходящих через плавающий затвор транзистора, так как такой микроскоп не может просканировать пучок электронов над поверхностью и дать картинку, а вот сканирующий электронный микроскоп (СЭМ) мог бы. Рассматривая изображения, полученные при помощи СЭМ, можно увидеть, как пучок электронов взаимодействует с поверхностью интегральной схемы и производит многочисленные сигналы, при помощи которых можно получать информацию о топографии и составе поверхности.

Как считываются биты

Причина, по которой под металлургическим микроскопом различимы отдельные биты (единицы и нули) в том, что биты физически закодированы в кристалле. Как показано в статье Кена ШириффаExtracting ROM Constants, биты программируются в МПЗУ путем изменения паттерна допирования кремния, создания транзисторов или оставления изолирующих участков. В примере Кена, если в строке присутствует транзистор, то можно предположить, что это транзистор в 1 бит. Как правило, строка в МПЗУ NOR (чтение быстрее, запись медленнее) будет содержать два транзистора, уложенных друг на друга, верхний и нижний, как показано на следующем рисунке.

Изображение ПЗУ из TMS320C52Изображение ПЗУ из TMS320C52

В ПЗУ обычно используются мультиплексоры для выбора бит по столбцу и по строке. При использовании 16-битного MUX будет 4 линии выбора, которые можно активировать. Для ПЗУ, которое я собираюсь показать, каждая линия выбора может перевести транзисторы в состояние напряжения HIGH, если будет активирована. Если в заданной позиции (столбец и строка) транзистор отсутствует, то выходная линия окажется в состоянии напряжения LOW.

Примечание:В нашем случае с CH340G МПЗУ будет выглядеть совершенно иначе, нежели на картинках, показанных выше.

Подготовка образца

В случае Arduino Nano, CH340G всегда находится снизу печатной платы. Я вооружился тепловым пистолетом для отпайки и под температурой около 200C обработал пины интересовавшего меня чипа микросхемы. Таким образом припой снимается с узлов и расплавляется, что позволяет безопасно снять чип с платы.

CH340, припаянная к Arduino Nano (чипы не размечены)CH340, припаянная к Arduino Nano (чипы не размечены)

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

Химические реакции при вскрытии

Теперь требуется проявлять исключительную осторожность, поскольку крайне опасно работать с очень едкими кислотами. Возьмем стеклянную пипетку (поскольку стекло не реагирует сHSO) и наберем в нее около 20 мл 98% концентрированной серной кислоты из контейнера и нальем ее в 100-мл химический стакан. Можно бросить наш образец в кислоту, взяв его щипчиками, а потом поставить стакан на нагревательную плитку.

Вскрытие оболочки в вытяжном шкафуВскрытие оболочки в вытяжном шкафу

Рекомендую температуру не менее 170C, а не 150C, как показано выше, поскольку плитка никогда не показывает температуру абсолютно точно. Такой сильный жар нужен, поскольку при комнатной температуре HSOокисляет эпоксидную смолу очень медленно. Нагревая образец, можно ускорить эту реакцию. На крайней справа картинке видно, как жидкость начинает приобретать желтоватый цвет, и это просто отлично. Это означает, что реакция пошла, и эпоксидная смола начинает плавиться.

Если вам интересно, зачем стакан прикрыт стеклянной крышкой объясню, на то есть две причины:

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

2. Потенциально крышка может поспособствовать частичной рециркуляции паров диоксида серы (SO), что, в свою очередь, будет поддерживать высокую концентрацию кислоты. Если концентрация кислоты чрезмерно снизится, то возрастет вероятность коррозии. Я не вполне в этом уверен, поэтому смело пингуйте меня, если я не прав. Знаю, что такой подход хорош при работе с азотной кислотой (HNO), поскольку пары диоксида азота (NO) при рециркуляции могут превращаться обратно вHNOв присутствии воды.

Большой вопрос как долго это должно продолжаться? Зависит от толщины чипа; в данном конкретном случае, согласно даташиту, мы имеем дело с корпусом кристалла SOP-16, толщина которого составляет около 1,50 мм. При приблизительно такой толщине и температуре весь процесс должен занять около часа.

Чип обрабатывается в кислотной банеЧип обрабатывается в кислотной бане

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

Примечание: как только вы снимете крышку со стакана, оттуда сильно попрут парыSO, поэтому убедитесь, что дымовые заслонки как следует закрыты, надежно удалите все эти токсичные пары через вакуумный отсос. Хороший пример, позволяющий оценить, как идет эта реакция повторить подобный опыт с полиэтиленом ((CH)), который обычно входит в состав эпоксидного пластика. По мере того, как серная кислота разогревает эпоксидную смолу, HSOразлагается наSO,CO иHO. Вот химическое уравнение с коэффициентами:6HSO + (CH) 6SO +2CO +8HO. Точка кипения такой кислоты составляет около 337C, именно в таких условиях обычно и получают азеотропную серную кислоту. Если взять серу (S), кислород (O) и воду (HO), а затем сжечь серу для получения диоксида серы (SO);S + O SO, то в дальнейшем диоксид серы можно окислить до триоксида серы (SO), воспользовавшись кислородом и взяв в качестве катализатора оксид ванадия (VO), имеем2SO + O + VO 2SO. Вода служит для гидратации триоксида серы в серную кислоты,SO + HO HSO. Могут использоваться и иные методы, например, с добавлением электролизованных растворов, таких, как раствор сульфата меди (II) (CuSO) или бромводородной кислоты (HBr) для реакции с серой.

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

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

Кремниевый кристалл, извлеченный из эпоксидной оболочкиКремниевый кристалл, извлеченный из эпоксидной оболочки

Как только найдем кремниевый кристалл, подхватим его и поместим в стакан поменьше, наполненный ацетоном (CHO). После того, как чип утонет в этой жидкости, поставим стакан в ультразвуковую баню, чтобы очистить кремний от пригоревших частиц эпоксидной смолы, если таковые остались. Почему ацетон? Потому что это сильный промышленный растворитель, которым щадяще обрабатываются металлические поверхности кристалла.

Исследуем первый образец

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

CH340G, снятый через объектив с линзой, дающей пятикратное увеличениеCH340G, снятый через объектив с линзой, дающей пятикратное увеличение

Впервые взглянув на этот чип, я не нашел ничего, что напоминало бы ПЗУ; учитывая, что я знаю сейчас, я кажусь себе в тот момент довольно глупым. Еще немного разобравшись, я смог предположить, что в левой части содержится какая-то ЭСППЗУ или ОЗУ, либо это просто какая-то емкость для энергозависимой памяти. Область сверху справа, казалось, отведена под МПЗУ. Итак, разбираемся дальше.

Картинка в более высоком разрешении предлагается здесь: https://siliconpr0n.org/map/wch/ch340/mz_20x/Картинка в более высоком разрешении предлагается здесь: https://siliconpr0n.org/map/wch/ch340/mz_20x/

Присмотревшись к логическим вентилям через объектив с 50-кратным увеличением, постепенно начинаем понимать, что здесь происходит. Первым делом интересно отметить, что на этом ПЗУ 14 мультиплексоров, то есть, 14 групп столбцов. Каждый мультиплексор имеет разрядность 16:1. Таким образом, он позволяет проложить 16 различных путей данных на месте единственного.

14 групп столбцов значит, мы имеем дело с 14-битной архитектурой, и это странно. Как правило, встречаются микропроцессоры в диапазоне 4 бит, 8 бит, 16 бит или даже 32 бит. Ситуация значительно усложнится позже, после извлечения бит из этих изображений, так как мы, вероятно, имеем дело с нетипичной архитектурой.

Также нужно отметить следующие наблюдения. Во-первых, верхние слои в этом чипе представляют собой адресные строки. В вертикальном столбце видим 10 металлических линий, которые в итоге транслируются в 6 адресных разрядов, а 6 металлических линий по горизонтали транслируются в 4 адресных разряда. Суть этого будет объяснена ниже, когда мы займемся послойным препарированием чипа, 4 адресных разряда дадут нам 2 = 16для мультиплексоров, описанных выше. Теперь 6 адресных строк будут использоваться, чтобы выбрать одну из 64 строк в пространстве ПЗУ, что даст 16 бит x 14 столбцов по горизонтали. Вот почему нам требуется суммарно 10 адресных разрядов по вертикали.

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

Реакции послойного препарирования

Существует множество способов послойно препарировать чип, но мы рассмотрим лишь пару из них. Первым делом нам понадобятся тефлоновые химические стаканы, которые я упоминал выше в этой статье. Ни соляная (HCl), ни плавиковая (HF) кислота не реагируют с веществом такого типа, и такой материал можно спокойно разогревать на плитке. Хорошо, если быть точным, для работы с HCl стеклянные стаканы подойдут, но для работы сHF нет.

Примечание:Существует некоторое сходство между двумя этими неорганическими кислотами. ИHCl, иHFявляются ионными соединениями, то есть, они должны полностью диссоциировать в ионном растворе, например, в воде. С HClтак и происходит, и поэтому она считается сильной кислотой, а с HFнет. Дело в том, что фтор и хлор отличаются по силе. У фтора сильная связь с водородом, поэтому диссоциация у фтора выражена не очень ярко. Электроотрицательность у иона фтора настолько велика, что даже мощный ионный эффект воды не позволяет полноценно оторвать его от атома водорода в сущности, именно поэтому HFтак опасна. Она прореагирует со всем, к чему сможет прикрепить свой электрон, в особенности с ионами кальция из ваших костей. Определенный процент молекул HFне диссоциирует, поэтому HFсчитается слабой кислотой. В нашем случае важно отметить, что как соляная, так и плавиковая кислота бурно реагируют с металлами, но их использование при послойном препарировании металлов может весьма отличаться.

Итак, как же определить, какую кислоту использовать? Как правило, в процессе производства полупроводников используется два типа металлов: алюминиевый (Al) сплав 6061 и/или медь (Cu). В чипах, подобным рассматриваемому, обычно встречается Al, но изредка может бытьCu. Дело в том, что у меди ниже сопротивление, и это положительно сказывается на включаемости металлов.

Если работать сCu, то приходится использовать HCl, посколькуHFне вытравливаетCu и, фактически, спровоцирует сильную коррозию, вызываемую атмосферным кислородом. Любой окислительный агент плохо подойдет вам для послойного препарирования Cuс использованиемHF. Помните, чтоHClсама по себе также не будет вытравливатьCu, к ней нужен окислительный агент, например, пероксид водорода (HO), который позволит кислоте съесть всю Cu(восстановительный агент), поднимая pKa (константу диссоциации) кислотного раствора. Значение pkA характеризует силу кислоты. Две эти реакции вместе в соотношении 1:1 позволяют получить хлорноватистую кислоту (HOCl) и воду (HO). Как только в реакцию входит Cuиз кристалла, медь прореагирует сHOCl, и получится хлорид меди (II), который и станет нашим травящим агентом. Таким образом, мы послойно препарируем медную область кристалла при комнатной температуре до получения зеленоватого раствора хлорида меди (CuCl).

HO (aq.) + HCl (aq.) HO + HOCl (aq.)
2HOCl + Cu Cu(HOCl)

Примечание:Будьте крайне осторожны, поскольку при комнатной температуре растворHCl, в отличие от большинства кислот, быстро разогревается и, скорее всего, будет выделять газообразный хлороводород. Это нужно делать[1][2] в вытяжном шкафу.

В нашем случае, при работе с CH340, нам придется протравить лишь очень тонкий слой Al, а диоксида кремния (SiO) там почти нет. Вот почему при послойном препарировании мы будем использовать HF. Влажная HFочень быстро накидывается на алюминиевые связи и контактные площадки при температуре выше 40C, но также можно вытравливать при комнатной температуре и очень низкой концентрации, используя Whink. Этот удалитель ржавчины содержит плавиковую кислоту в концентрации 3%, но не обманывайтесь, поскольку и это может быть более чем фатально. Рекомендую класть чип в тефлоновый химический стакан и держать его там при комнатной температуре с интервалами примерно в 15 минут, в зависимости от того, какой именно чип мы тестируем. Так будет вытравливаться не только Al, но иSiO.

SiO + 4HF SiF + 2HO

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

Послойно препарированная CH340Послойно препарированная CH340

Итак, мы успешно протравили себе путь до самой подложки или уровня транзисторов в чипе. Изображение в более высоком разрешении предлагается наsiliconpr0n. Присмотревшись к правому верхнему углу, найдем наше драгоценное МПЗУ.

Справа вверху: МПЗУ в CH340Справа вверху: МПЗУ в CH340

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

Автоматическое извлечение битов ПЗУ

Знакомьтесь сrompar, интерактивным инструментом для извлечения двоичных данных из изображений МПЗУ при помощи методов компьютерного зрения. На первых порах может быть немного страшновато, так как кривая обучения у него крутая, но после нескольких прогонов все будет уже не так плохо. Первым делом давайте подготовим наше изображение, либо в Gimp, либо в вашем любимом редакторе фотографий. Суть в следующем: нам нужно выделить и расширить область с МПЗУ на изображении, обрезать ее и увеличить ее резкость.

Перед запуском инструмента нужно узнать, с каким объемом ПЗУ нам придется работать. Смотрим на картинку и видим 14 групп столбцов, в каждом по 16 бит в строку, то есть, мы имеем дело с 224 бит в каждой строке. Строки следующая важная тема, которую мы обсудим, по-видимому, тут просматривается 64 строки. Таким образом, размер ПЗУ, с которым нам предстоит работать, составляет 1,7 Кб.

При запуске rompar ожидает получить 3 аргумента; файл ищображения, количество столбцов и количество строк.

python3 rompar.py image1-50x-ROM.jpg 16 1
Changing edit mode to GRID
Changing edit mode to GRID
Image is 11694x4318; 3 channels
process_image time 0.18801593780517578
read_data: computing
grid line redraw time: 6.4373016357421875e-06
grid circle redraw time: 1.1920928955078125e-05
render_image time: 0.22574210166931152

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

Экран Rompar в инфракрасном спектре. Экран Rompar в инфракрасном спектре.

Первый экран графического интерфейса (GUI), который мы рассмотрим, дан в инфракрасном спектре, чтобы по ярким и темным пятнам мы уяснили, чем допированный транзистор отличается от пустого места. Можно скорректировать порог, перейдя в CV Options -> Pixel Threshold. Корректируем, пока у нас не получится нечто подобное:

Увеличенное изображение бит в инфракрасном спектреУвеличенное изображение бит в инфракрасном спектре

Нужно, чтобы программа поняла, что первая строка будет возвращать0000001, а второй01110101. Помните, что более яркие области принято обозначать через1, а более темные через0. При постобработке это правило по необходимости может инвертироваться, если нужно получить на выходе готовый двоичный файл. Теперь давайте перейдем к Display -> Base Image -> Original. Далее мы хотим сделать сетку из столбцов и строк, поэтому щелкнем ctrl+clickпо столбцу 1, перейдем к столбцу 16 и сделаем то же самое. Продолжаем, пока не обработаем все столбцы. В конечном итоге у нас должна получиться примерно такая сетка:

Голубая сетка для столбцов ПЗУГолубая сетка для столбцов ПЗУ

Голубые линии немного бледные, но при увеличении видны гораздо лучше. Теперь давайте подсветим отдельные биты. Нажимаем cmd+click в каждой строке, получаем следующее:

Двоичные разряды обведены кружочкамиДвоичные разряды обведены кружочками

Как видите, тут есть несколько ошибок, но мы можем откорректировать отдельные разряды, перейдя в Edit -> Mode -> Data Edit Mode. Далее щелкнемctrl+clickпо каждому отдельному биту, чтобы превратить голубые кружочки в зеленые или наоборот. Программа трактует зеленые маркеры как 1, а голубые как0. К сожалению, с этим изображением ПЗУ мне пришлось многое редактировать вручную, но, как только результат нас устроит, можно экспортировать его в матрицу двоичных разрядов, перейдя в Data -> Export Data as Text. В итоге у вас получится файл со всеми вашими двоичными данными, такой, как выложен у меня на Github.

Декодируем биты

Теперь, когда у нас готовфайл битовой матрицы, время превратить его в удобочитаемый и дизассемблированный файл прошивки. Этого можно добиться при помощи одного из двух инструментов,zorromилиbitviewer. В принципе, если уже знаем архитектуру, то используем zorrom, утилиту, преобразующую данные из физического представления в логическое и обратно при работе с топологией памяти чипа. Как написано в README от Zorrom, например, фотография загрузочного ПЗУ, преобразованная в двумерный битовый массив (.txt) может быть преобразована в машинно-читаемый двоичный формат. Затем этот .bin можно эмулировать, дизассемблировать и т.д., делать с ним все, что вы бы делали с обычным файлом прошивки . У программы есть отличный API, чтобы писать и настраивать, как именно должно считываться ПЗУ; то есть, здесь указывается топология, порядок следования байтов, требуется или нет инвертирование битов, а также порядки битов на выходе.

Причина, по которой мы не можем сразу начать работать с zorrom в том, что мы не знаем тип процессора. Потратив дни и недели на изыскания в головной корпорации, WCH, я не нашел ничего и близко напоминающего 14-битную архитектуру. Размышляя, с чем же мы имеем дело, мы, возможно, найдем ответ только тупо присмотревшись, а для этого нужен такой инструмент как bitviewer. С этим инструментом единственная корректировка, которая нам потребуется подогнать файл двоичной матрицы под 16-битную архитектуру. По-видимому, эта программа не слишком хороша для работы с 14-столбцовыми группами, но это как раз нормально, поскольку, когда мы извлечем bin-файл, эти заполняющие байты не повлияют на информативные байты прошивки.

В принципе, в ситуациях, когда мы не знаем, какой байт соответствует какому коду операции, мы не можем просто дизассемблировать тестовые bin-файлы. Вместо этого ищем в файле жестко закодированные последовательности символов или какие-либо константы, которые описывали бы внутренние конфигурации. Зачастую приходится как следует покорпеть над схемой, чтобы понять, что происходит. Я еще совсем новичок в этом деле, но я всегда начинаю с соединений, которые выходят из самого ПЗУ.

Металлический слой (слева), Слой подложки (справа)Металлический слой (слева), Слой подложки (справа)

Вот что мы можем узнать из этой картинки. В ПЗУ 64 бит по вертикали и 16 x 14 по горизонтали; как я уже говорил, объем этого ПЗУ почти 2k. Выяснил, что для него нужно всего 10 адресных разрядов. В первом столбце транзисторов в вертикальных адресных разрядов за адресным битом 0 идет неадресный бит 0. В следующем столбце переключение происходит каждые два бита, и так далее. Я считаю, что здесь видно 4 бита по горизонтали и 6 битов по вертикали. У каждой строки должна быть дополнительная, чтобы по возможности упростить декодирование мультиплексорами 16:1. Если сделать очень сильное увеличение, то видно, что, благодаря мультиплексору экономится место, в которое можно добавить 14 инверторов, а не прокладывать дополнительную сигнальную строку по горизонтали.

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

Экран, которым открывается Bitviewer Экран, которым открывается Bitviewer

С битами на строку кажется все верно, но я знаю, что в столбцах не по 32 бита, я же определил, что в каждой группе столбцов содержится 16 бит на столбец, это видно по изображениям. Нам нужно всего лишь откорректировать это число и картинка автоматически изменится.

Bitview 16-битные столбцыBitview 16-битные столбцы

Далее по списку нам нужно взглянуть на шестнадцатеричный дамп и посмотреть, есть ли там какие-то признаки, что мы правильно задали порядок. Для этого щелкнем по кнопке Byte view (hex). Прокручивая биты, ничего узнаваемого мы не увидим, так как 1) мы не знаем, как должны выглядеть коды операций, поскольку не знаем архитектуру и 2) мы пока не видим ни одной жестко закодированной последовательности символов. Так что мы полагаемся на то, что все-таки увидим здесь некие последовательности символов, по которым сможем судить, правильно ли выполнили декодирование.

Давайте кое-что откорректируем, нажав кнопку Export Options. Как видите, здесь мы можем откорректировать топологию ПЗУ, порядок следования байтов, а также внести еще некоторые изменения, например, инвертировать порядок бит. Большинство опций мы оставим без изменения, в том числе, порядок следования битов, который будет иметь вид:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15. Иногда приходится немного поэкспериментировать, чтобы получить правильный порядок на выходе, но я после нескольких попыток обнаружил, что полезно расставить галочки вот здесь:Reverse output bit order иAddress run right-to-left. Теперь можем снова прокрутить шестнадцатеричное представление.

05C0: FE 73 FF DB EF ... .s...t...t.b.|.j
05D0: FE 50 C6 5F D6 ... .P._._.Q...P....
05E0: DD 74 DF F8 ED ... .t...&.m...S.p..
05F0: FF 6D ED 00 FF ... .m...y...|.....>
0600: FF 7A FF 6A ED ... .z.j.<.g.Z.X.s..
0610: D9 74 CE 65 ED ... .t.e...W.p...[..
0620: E6 F0 F5 5B F0 ... ...[.W.W.W.W....

По-прежнему никаких подвижек. Есть еще один вариант, который мы не проверили возможно, наши биты нужно инвертировать/перевернуть. То есть, единицы должны стать нулями и наоборот. К счастью, в bitviewer это сделать можно; щелкаем кнопкуSelect all, и программа подсветит все биты во всех строках и столбцах. Когда они будут подсвечены, нажмите Invert Sel.

Инвертированные биты из BitviewИнвертированные биты из Bitview

Все удалось успешно инвертировать, и теперь можно открыть вкладку с просмотрщиком байт, чтобы посмотреть, что у нас получилось.

0770: 10 03 10 09 ... .............U..
0780: 10 53 10 00 ... .S...B...2......
0790: 10 30 10 00 ... .0...-..3...3...
07A0: 33 F3 10 00 ... 3...3...3...3...
07B0: 2F A4 10 00 ... /.....(.....+...
07C0: 10 23 29 08 ... .#)...../.. .'/.
07D0: 10 02 10 03 ... ..../.....+..P.S
07E0: 2F A4 10 72 ... /..r.e/..i.r/..n
07F0: 10 6D 2F A4 ... .i/..t.a+.. .l..

Я этого на первый взгляд не заметил, но теперь же у нас есть полноценный файл прошивки, и мы можем его изучить! Посмотрев на отступы0x0770и0x0780, можно выделить последовательность символов USB 2.0. Что еще? Следующую последовательность заметить не так легко, поскольку между первой и второй большой скачок. Последовательности символовPrintиSerialнаходятся на отступах0x07D00x07F0. Другие интересующие нас подсказки будут в верхней части файла прошивки, например, та или иная таблица переходов и /или таблица векторов исполнения. Из этого сделаем вывод о наличии повторяющихся инструкций или, в нашем случае, байт.

Таблица переходовТаблица переходов

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

Примечание:Возвращаясь к использованию zorrom, теперь мы знаем, какие опции нужны, чтобы получился правильный файл прошивки. Значит, мы можем автоматизировать этот процесс, написав подходящий алгоритм. Воспользовавшись API zorrom, пользователю всего-то останется скормить программе двоичный текстовый файл, а в ответ она выдаст файл прошивки. Здесь можете посмотреть код, который я написал для CH340. Этот инструмент можно запустить вот так:

python3 txt2bin.py --arch ch340t ch340_binary.txt ch340_fw.bin

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

Дизассемблирование неизвестного

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

Имея дело с незнакомой архитектурой, необходимо как следует разобраться с изображениями, чтобы понять, как используется ПЗУ. Ситуация примерно такова, как если бы врач выполнил КТ всего тела пациента, и изучил бы томограмму каждого органа в отдельности, чтобы найти подсказки.

Итак, в данном случае мы рассматриваем весь чип, а не только ПЗУ:

Послойно препарированный CH340 с аннотациямиПослойно препарированный CH340 с аннотациями

Аннотации важный аспект обратного проектирования интегральных схем, а в нашем случае придется пояснить очень многое. Прочитав даташит, мы знаем, что этот чип поддерживает возможности USB, поскольку служит мостом от USB к USART. Мы также знаем, что этому чипу требуется внешний источник колебаний для отсчета тактов. Некоторые допущения, которые мы можем сделать относительно чипа: здесь должен быть блок статической памяти с произвольным доступом для энергозависимого хранения данных, область регистров, которые будут использоваться для приема, хранения и переноса данных, а также команды, которые будут использоваться непосредственно ПЗУ при работе с ядром процессора. Поскольку, согласно даташиту, на этом чипе отсутствует ЭСППЗУ, мы отметили на большом участке слева, как данные принимаются и передаются USB-портом.

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

Частично дизассемблированное представление кода ch340Частично дизассемблированное представление кода ch340

Как понятно из кода на python, нам также удалось в точности выяснить, как именно передавались жестко закодированные последовательности символов. Подобно кодам операций в таблице переходов, CALL-ы покажутся вам весьма знакомыми, когда будете просматривать шестнадцатеричный дамп прошивки неизвестного типа. Увидите байт инструкции, а за ним еще два байта, выделенных под адрес.

Предстоит сделать еще немало. Даже при допущении, что отношение между инструкцией и регистром в формате начиная со старшего, нам придется перейти на формат начиная с младшего, поскольку по какой-то причине is IDA не преобразует или не дизассемблирует как следует двухбайтовые фрагменты WORD, когда работает в формате начиная со старшего. По-видимому, к этой статье придется написать вторую часть, в которой я наконец смогу объяснить, как все работает в этом чипе. А эту статью я завершу рассказом о том, как прибрать тот беспорядок, который мы учинили в лаборатории, работая со всеми этими неорганическими кислотами.

Убираем за собой. Кислотно-основная нейтрализация

Серную кислоту (HSO) можно нейтрализовать при помощи исключительно сильной щелочи, гидроксида натрия (NaOH). Эта кислота реагирует сNaOH, продуктами реакции являются сульфат натрия (NaSO) и вода. Это реакция кислотно-основной нейтрализации. После расстановки коэффициентов в уравнении видим, что нужное нам соотношение между щелочным раствором и кислотой 2:1.

2NaOH (aq) + HSO (aq) 2HO (l) + NaSO (aq)

В нашем случае мы воспользуемся гораздо более высоким соотношением, поскольку, как помните, мы задействовали всего 20 мл HSOдля декапсуляции чипа.NaOH существует в форме кристаллов, напоминающих соль, и всего 15 граммNaOHна 150 мл воды (раствор 10%) хватит для приготовления раствора. NaOH+HOдадут раствор с катионамиNa+и анионами OH-, дополнительно выделится некоторое количество тепла. Уравнение реакции выглядит так:

NaOH +2HO Na+ + OH- + HO (delta H < 0)

Медленно наливаем кислоту в свежеприготовленный щелочной раствор. При этом вы можете заметить, что смесь немного нагревается. Это происходит потому, что процесс экзотермический, то есть, кислотно-основная реакция происходит с выделением избыточной теплоты. Эта теплота сухой остаток процессов разрыва и образования химических связей. Проще говоря, конечные продукты этой реакции находятся в более низком энергетическом состоянии, чем реагенты. Энергетическая разница между двумя этими состояниями равна той энергии, что выделяется в виде теплоты. Остаток раствора можно разбавить, долив в полученную кислотно-основную смесь еще 150 мл воды. Медленно помешиваем в течение около 2 минут, затем проверяем нейтральность раствора при помощи лакмусовой бумажки.

Проверка уровня pH нейтрализованной серной кислотыПроверка уровня pH нейтрализованной серной кислоты

Примечание:чтобы проверить нейтрализацию, можно воспользоваться бытовой химией, например, бикарбонатом натрия (NaHCO), бросив его в стакан и посмотрев, пойдут ли пузырьки. Если разбавленный кислотно-водный раствор начинает пузыриться, это означает, что кислотность его по-прежнему немного повышена из-за связанного диоксида углерода (CO), который рвется наружу из раствора угольной кислоты. После того, как в растворе все успокоится, складываем все химикаты в специальный контейнер для химических отходов и относим в компанию, которая за нас их как следует утилизирует.

Спасибо, что дочитали! Надеюсь, вам понравилось не меньше, чем мне. Если у вас остались вопросы по этой статье, пишите мне пожалуйста в Instagram:@hackersclubили в Twitter:@ringoware

Доброй охоты :)

Ссылки и благодарности

Ken Shirriffhttp://www.righto.com/2020/05/extracting-rom-constants-from-8087-math.html, за то, что лично уделил время и рассказал мне, как биты считываются из ПЗУ.

John McMasterhttps://siliconpr0n.org/archive/doku.phpза то, что провел со мной многие часы и, в частности, рассказал, как автоматизировать извлечение ПЗУ, как делается декапсуляция и послойное препарирование.

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

Elijah Hawk Всегда был великодушно готов потратить на меня пару часов, вычитывая грамматику и структуру предложений во всех моих статьях.

О нейтрализации https://chem.libretexts.org/Bookshelves/Physical_and_Theoretical_Chemistry_Textbook_Maps/Supplemental_Modules_(Physical_and_Theoretical_Chemistry)/Acids_and_Bases/Acid_Base_Reactions/Neutralization

Получение серной кислоты https://www.cs.mcgill.ca/~rwest/wikispeedia/wpcd/wp/s/Sulfuric_acid.htm

Конструирование сверхбольших интегральных схем (VLSI) https://www.tutorialspoint.com/vlsi_design/vlsi_design_digital_system.htm

Понятие о NAND Flash https://www.simms.co.uk/nand-flash-basics/understanding-nand

Подробнее..

Модульный открытый ноутбук для параноиков начали рассылать заказчикам

13.04.2021 00:19:36 | Автор: admin

Около года назад на Хабре появилась статья об открытом в плане железа и ПО модульном ноутбуке MNT Reform, который предназначается для пользователей, которым крайне важна сохранность персональных данных. Это устройство было даже названо ноутбуком для параноиков, хотя, конечно, это не официальное название.

Тогда, в мае прошлого года, была запущена краудфандинговая кампания. Она собрала необходимые для производства устройства средства, и сейчас авторы объявили о старте отправки ноутбука заказчикам. Первые 25 устройств отгружены покупателям из ЕС, своей очереди ждут еще 450 ноутбуков их отправят в ближайшее время. Что собой представляет это чудо техники?

Характеристики



  • Процессор: 4-ядерный ARM Cortex-A53 (1.5 GHz) NXP/Freescale i.MX8MQ. Как процессор, так и память съемные, модуль выполнен в форм-факторе SO-DIMM.
  • ОЗУ: 4 GB LPDDR4.
  • Видеочип: Vivante GC7000Lite GPU. Поддержка OpenGL 2.1, ES 2.0, драйвер из основной ветки ядра Linux.
  • Дисплей: Full HD (1920x1080 pixels) 12.5" IPS eDP, который подключается через интерфейс MIPI-DSI. Есть еще совсем миниатюрный 128x32px OLED экран для вывода системных сообщений.
  • Порты: 3x USB 3.0 (Type-A), Gigabit Ethernet port. miniPCIe Wi-Fi.
  • Накопитель: Internal M.2 M-key socket for NVMe SSD, есть слот для карт памяти SD.
  • PCIe: 1x miniPCIe socket (PCIe 2.0 1x), 1x M.2/NGFF socket M-key (PCIe 2.0 1x)
  • Клавиатура: механическая клавиатура с Kailh Choc Brown Switches и подсветкой.
  • Трекбол (опционально): USB-трекбол с 5 механическими переключателями.
  • Трекпад: ну, он есть.
  • Корпус: модульный корпус из анодированного алюминия. Нижняя крышка выполнена с использованием полупрозрачного пластика.
  • Аудио: Wolfson WM8960 ADC/DAC.
  • Камера: встроенной нет (для параноиков же, зато есть MIPI-CSI коннектор.
  • Батарея: съемные ячейки 18650, 12 Ah/3.2 V. Их хватает примерно на 5 часов работы.
  • Системный контроллер: NXP LPC11U24 ARM Cortex-M0.
  • ОС: Debian GNU/Linux 11, Linux 5.x.
  • Размеры: 29 x 20.5 x 4 см.
  • Вес: ~1.9 кг.

А теперь смакуем подробности



Батарея. О ней стоит поговорить еще раз. Дело в том, что использование открытых банок 18650 беспроигрышный вариант. Да, это не плоская батарея, но зато в любой момент прохудившийся элемент можно заменить на свежий, не опасаясь блокировки контроллера или любых других непрятностей.


Материнская плата. Ее основное достоинство возможность подключения системы на модуле (SoM). Как и говорилось выше, модуль с процессором, видеочипом и ЗУ вставляется в материнку как SO-DIMM. Еще один положительный момент для подключения дисплея не нужен HDMI/DisplayPort. Вместо этого используется MIPI DSI --> eDP конвертер.


SoM. Здесь разработчики не изобретали велосипед, а использовали систему на модуле от Boundary Devices. Кроме уже озвученных элементов, SoM включает USB и PCIe контроллеры. Если есть возможность спроектировать собственный модуль без проблем.


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


Дисплей. Ничего необычного, это 12.5" IPS eDP (embedded DisplayPort) панель с FullHD-разрешением.


Трекбол и тачпад. Выше было указано, что трекбол опциональное решение. Можно установить либо его, либо тачпад.

Корпус. В качестве нижней крышки используется полупрозрачный пластик, через который видна начинка.

Все идеально?


Не совсем. С ноутбуком все хорошо, кроме одного производительности. Процессор, установленный в системе, несколько быстрее, чем Allwinner A64, на котором основана система ноутбука PineBook Linux стоимостью в $100. Но вот уже Rockchip RK3399 выигрывает в производительности. Этот чип стоит в Pinebook Pro за $220. Ну и, конечно, процессор модульного ноутбука безбожно отстает от любых других чипов, установленных в более-менее современных ноутбуках с Windows или Linux OS.

Еще один недостаток стоимость девайса. MNT Reform DIY Kit, набор для самостоятельной сборки ноутбука, стоит $999. Максимальная конфигурация с 1 TB NVMe SSD, беспроводным модулем mPCIe Wi-Fi, мануалом и прочими плюшками стоит $1500.

Дороговато, конечно, но кампания на СrowdSupply собрала $388 291 при запланированных $115 000.

По словам разработчиков, MNT Reform представляет собой:
  • Почти полностью открытый ноутбук, который можно модифицировать как душе угодно, заменять сломанные модули или менять устаревшие компоненты на более производительные/функциональные.
  • Систему с защитой персональных данных. В ноутбуке нет камер, микрофонов, WiFi можно отключать. При необходимости персональные данные можно хранить на SD-карте. Есть и шифрование жесткого диска с LUKS.
  • Печатную машинку, которую можно использовать для офисных целей. Любые офисные программы, браузер и т.п. работают без проблем.
  • Промышленную систему. Благодаря чипсету ноутбук можно использовать в качестве промышленной рабочей лошадки.
  • Платформу для разработки ARM 64-bit ПО. Ну, здесь и так все понятно.
  • Обучающую систему. MNT Reform можно использовать в качестве базы для обучения принципам работы железа, ПО, защиты информации и т.п. Подходит и детям, и взрослым.

Официальная страница ноутбука вот здесь. Кроме базовой информации, ресурс приводит таблицу со сравнением MNT Reform с другими системами.

Подробнее..

Перевод Сравнение коннекторов USB-C за 5 и 20 центов

31.03.2021 10:06:06 | Автор: admin
Давайте сыграем в игру Какая деталь дешевле?

Вот два 16-контактных коннектора USB-C. Один стоит примерно 20 центов, а другой примерно 5 центов при заказе от 100 штук.

image

image

image

image

image

image

Ещё не разобрались? Разница очень малозаметна. На самом деле о качестве здесь говорит очень немногое, просто разные процессы изготовления.

Более дешёвый находится слева, с золотыми контактами внутри. Это SHOU HAN TYPE-C16PIN

Справа HRO TYPE-C-31-M-12

Самое серьёзное отличие заметно здесь. Крылышки на коннекторе SHOU немного потрескались при сгибании. Возможно, это вызвано тем, что их сгибали быстрее, дальше или потому, что у металла меньший предел разрушения. Но это вполне нормально, трещины в буквальном смысле микроскопические.

image

Коннектор HRO согнут чуть аккуратнее, с едва заметным зазором. Коннектор SHOU имеет очень маленький зазор. В этом опять же нет ничего серьёзного.

image

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

А, и ещё у SHOU более короткие контакты на печатной плате. Это вполне нормально, но усложняет пайку вручную, поэтому стоит учитывать при покупке деталей для своих проектов.

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

Начнём с коннектора HRO. Мы уже видим, что это очень сложное литьё, которое определённо не было дешёвым.

image


С другой стороны:

image

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

А вот коннектор SHOU. Мы чётко видим, что это гораздо менее сложное литьё и, по моему мнению, именно из-за этого возникла разница в цене.

image

С другой стороны. Похоже, снова литьё из двух или нескольких частей, но в целом гораздо менее сложное.

image

О, вот это тоже интересно. Более дорогой коннектор HRO содержит покрытую золотом медь (как можно догадаться по фотографии спереди). Покрытие не особо толстое, я смог отскрести его пинцетом. А у коннектора SHOU позолота очень глубокая.

imageimage

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

Если приблизить изображение спереди коннектора HRO и повысить его насыщенность, то можно достаточно хорошо разглядеть позолоту. То, что мы видим медь спереди, просто говорит, что покрытие было нанесено до того, как разъём отрезали от полосы.

image

А вот доказательство того, что коннектор SHOU на самом деле состоит из двух частей (передняя часть повредилась, пока я пытался процарапать покрытие). Однако похоже, что коннектор HRO на самом деле отлит целиком, а то, что я посчитал срезом, было просто линией разъёма.

image

Любопытно, что удерживащая коннектор защёлка намного больше у SHOU.

image
Подробнее..

Поучительная история про китайских производителей микросхем

07.04.2021 10:06:45 | Автор: admin

В 2019 году правительство США наложило санкции на две крупные китайские телекоммуникационные компании, отрезав их от жизненно важных поставок полупроводниковых микросхем. Компания Wuhan Hongxin Semiconductor Manufacturing Co. тогда пообещала выйти на путь самообеспечения перед лицом все более жестких ограничений, накладываемых со стороны США. Частная компания заявила на своем веб-сайте, что привлечет в общей сложности 20 миллиардов долларов, чтобы производить 60 000 передовых чипов год.

Спойлер: компания Hongxin обанкротилась.

Незавершенный завод Hongxin в портовом городе Ухань сейчас стоит заброшенным. Его основатели исчезли, несмотря на то, что они задолжали подрядчикам и инвесторам миллиарды юаней.

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



Вид через микроскоп на китайский микрочип, установленный на стенде контролируемого государством проекта Tsinghua Unigroup во время 21-й Китайской международной выставки высоких технологий в Пекине в 2018 году

Громкие обещания


Компания Hongxin Semiconductor была основана в ноябре 2017 года как совместное предприятие между администрацией района Дунсиху города Ухань и компанией Beijing Guang Liang Lantu Technology.

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

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

Эта ситуация привлекла внимание Китайской национальной комиссии по развитию и реформам (Chinese National Development and Reform Commission, NDRC). Во время брифинга для прессы, состоявшегося в октябре 2020 года, пресс-секретарь Мэн Вэй заявила, что некоторые компании с недостаточными знаниями в области разработки интегральных схем вслепую участвовали в проектах.

Один из соучредителей Guang Liang, Цао Шань только закончил среднюю школу и использовал ложные учетные данные и другую личность. Другой соучредитель, Ли Сюэен, занимался продажей традиционной китайской медицины, алкоголя и табака до того, как основал Hongxin, согласно корпоративным отчетам, рассмотренным NDRC.

Цао обещал инвестировать в размере 1,8 миллиарда юаней (279,1 миллиона долларов) за 90% акций HSMC (Hongxin Semiconductor Manufacturing Co.), в то время как правительство Уханя выделило 200 миллионов юаней на оставшуюся часть.
Всякий раз, когда Цао встречался с потенциальными инвесторами, он представлялся вице-президентом компании Taiwan Semiconductor Manufacturing Co. (TSMC) или вице-президентом нью-йоркского офиса Acer. Он также хвастался личными связями с высокопоставленными китайскими правительственными чиновниками.


Цао Шань даже не было настоящим именем основателя HSMC. Цао на самом деле звали Бао Энбао, который позаимствовал имя водителя своей семьи. У TSMC не было вице-президента по имени Цао Шань, а у Acer даже не было офиса в Нью-Йорке. На самом деле Бао только окончил школу и не имел технических навыков, необходимых для изготовления полупроводниковых пластин.
Эти недостатки не помешали HSMC стать признанным звездным проектом для Уханя и провинции Хубэй. HSMC позиционировала себя как проект, в который было вложено 20 миллиардов долларов. Как HSMC, возглавляемая альтер-эго Бао Энбао, удалось пустить пыль в глаза инфесторов, ветеранов отрасли и правительственных спонсоров, остается загадкой.
Имея много денег, поступающих в бюджет, HSMC объявила об амбициозных планах по производству микросхем от 90 до 7 нанометров. Цао заявил, что HSMC станет третьим после TSMC и Samsung в области чиповых технологий.

Все, что было нужно, это техническая команда для реализации видения. План Бао по найму инженеров и техников был прост: он выберет компанию с хорошими связями в отрасли и заплатит солидную плату за найм лучших талантов. HSMC прибегла к услугам кадровой компании Shanghai Jingtai, чтобы переманить до 100 старших технических специалистов. Чем выше их уровень, тем больше комиссионных HSMC готово было платить.


За короткое время HSMC удалось сформировать высококвалифицированную команду инженеров, которые присоединились за привлекательное вознаграждение. HSMC также смогла закупить желанную машину для литографии у голландского производителя оборудования ASML. В какой-то момент казалось, что Бао на самом деле строит функциональное предприятие по производству полупроводников.


Однако инженерам не потребовалось много времени, чтобы придраться к работе HSMC. Бао заключил контракт на строительство с Wuhan Torch Construction Group, компанией, у которой не было опыта строительства заводов по производству полупроводников. Чтобы ускорить процесс планирования, Бао приобрел старые заводские чертежи SMIC в проектном институте. Для Бао никогда не было первостепенной заботы о том, будет ли завод работать. Все, что ему было нужно, это стены и крыша, чтобы HSMC могла привлечь больше инвестиций от центрального или местного правительства.

Китайские производители микросхем по-прежнему в значительной степени полагаются на европейские, американские и японские технологии, большая часть которых, в свою очередь, опирается на американскую интеллектуальную собственность, которую США не намерены допускать в руки Китая. Спрос на полупроводники в Китае продолжает расти за пределы того, что он может обеспечить сам; торговые данные показывают, что в 2019 году Пекин импортировал чипов на сумму 350 миллиардов долларов.

Учитывая эту зависимость, правительство Китая вкладывает большие деньги в этот сектор, чтобы ускорить разработку и производство микросхем внутри страны. В последнем документе о пятилетнем экономическом планировании страны, опубликованном в марте, интегральные схемы полупроводники определены как приоритетный сектор для финансирования исследований и разработок.

Тотальный подход привел к заметным достижениям. Успешные компании по разработке микросхем, такие как Cambricon и Huawei HiSilicon, позволили Huawei заменить некоторые из своих разработанных в США микросхем в своих мобильных телефонах. Недалеко от Hongxin находится Yangtze Memory Technologies Co. (YMTC), частично государственная компания, которая планирует удвоить производство микросхем памяти, чтобы обогнать южнокорейские Samsung и SK Hynix, которые в настоящее время доминируют в производстве.

Череда ошибок


Между тем, две других крупных полупроводниковых компаний Tacoma Semiconductor Technology Co. Ltd. и Dehuai Semiconductor Technology Co. Ltd. также обанкротились.

Tacoma находится в 520 км от Уханя вдоль реки Янцзы, в портовом городе Нанкин. Там тайваньский предприниматель Джозеф Ли изначально нашел желанную гавань для своих амбиций, основав в городе свою компанию в 2015 году. Он пообещал собрать 3 миллиарда долларов на производство микрочипов при консультации с израильской компанией Tower Semiconductor (ранее TowerJazz).


Ли в 2016 году стал соучредителем второй компании Dehuai Semiconductor в городе Хуайань провинции Цзянсу. (Ли продал свою долю в том же году, сославшись на противоречие в видении с другими менеджерами фирмы.)
В 2017 году Ли пригласил китайские СМИ совершить поездку по объектам Tacoma, заявив, что компания заработала 200 миллионов юаней (30,7 миллиона долларов). Tacoma на данный момент так и не завершила строительство своих производственных мощностей.
В 2018 году сотрудники Tacoma обратились в мэрию Нанкина с жалобами на невыплаченную зарплату. Корпоративные документы Китая показывают, что против Такомы в провинциальный суд было подано 50 судебных исков, и все они были направлены на возмещение затрат на строительство или невыплаты заработной платы. Ли оспаривает задолженность сотрудников по выплате заработной платы в размере 20 миллионов юаней.

Hongxin, Tacoma и Dehuai смогли получить государственное финансирование на миллиарды юаней при условии, что они будут соответствовать этому с собственными инвестициями обязательство, которое так и не реализовалось. В конечном итоге Tacoma собрала лишь небольшую часть 250 миллионов из 2,5 миллиардов юаней от того, что обещала.

Мы никогда не думали, что, когда наш денежный поток иссякнет, мы не сможем найти новые источники финансирования, на которые мы рассчитывали, сказал Ли японской телекомпании NHK в марте этого года.

Технологические аналитики говорят, что последние провалы в производстве полупроводников в Китае показывают, насколько астрономическими являются первоначальные затраты в этой отрасли.

Роспуск компаний Hongxin, Tacoma и Dehuai привел к каскадной цепи банкротств.

Судебные протоколы показывают, что правительство Уханя конфисковало около 120 гектаров земли и аппарат ASML компании Hongxin для выплаты долга на сумму около 128 миллиардов юаней (19,6 миллиарда долларов).

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


Руководителей нигде не найти, говорит Ван Лийин, директор Huaiyu Construction Co. в Ухане, с которой был заключен субподряд на строительство завода Hongxin. Ван утверждает, что подрядчики Hongxin все еще должны ему более 40 миллионов юаней (6,14 миллиона долларов) за строительные материалы, и предъявляет им иск в суде Ухани.

Tacoma и Dehuai официально объявили о банкротстве, а местные органы власти взяли на себя оставшиеся активы компаний для реструктуризации. Суд обязал основателя Tacoma Джозефа Ли не покидать материковый Китай до тех пор, пока он не выплатит долги компании. В настоящее время он живет в портовом городе Нинбо и работает над своим новым предприятием по разработке микросхем Chengxing Semiconductor Company, которое он основал в 2019 году.

Ли говорит, что также работает с местным правительством Нанкина над реструктуризацией компании и привлечением новых инвесторов. Возобновить работу Tacoma это единственный способ не подвести сотрудников и подрядчиков компании, написал он в WeChat.

Еще три крупных предприятия обанкротились в 2020 году. Даже солидные компании-производители микросхем сталкиваются с проблемами финансирования; Материнская компания YMTC Tsinghua Unigroup заявила в декабре прошлого года, что не выполнила своих обязательств по выплате основной суммы долга по облигациям на сумму почти 2,5 миллиарда долларов из-за проблемы ликвидности.


Урок


Учитывая большое количество полупроводниковых компаний, получающих государственные инвестиции, некоторые из них обречены на провал. Это дорогостоящая, но необходимая ошибка в стремлении Китая к технологической независимости.

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

Даже воспользовавшись рычагом промышленной политики и огромными государственными субсидиями, трудно конкурировать с ведущими компаниями, такими как южнокорейский Samsung и тайваньский производитель микросхем TSMC, которые ежегодно тратят баснословные деньги на научно-исследовательские и опытно-конструкторские работы.

Высокий риск не остановил волну новых участников. По данным китайской корпоративной базы данных Qichacha, только в прошлом году появилось более 20 000 новых компаний, связанных с полупроводниками.

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

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



На правах рекламы


Эпичные серверы это виртуальные серверы которые прекрасно подойдут для размещения разнообразных сайтов. Сумасшедшая производительность благодаря мощным процессорам семейства AMD EPYC и очень быстрым NVMe дискам Intel. Обязательно закажите!

Подробнее..

Китайская компания начала поставки оборудования для производства 5-нм чипов

11.04.2021 14:15:43 | Автор: admin

В этом году мы несколько раз писали об успехах китайских разработчиков оборудования для производства чипов. Поднебесная после начала торговой войны с США стала очень активно внедрять импортозамещение, причем достаточно успешно.

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

Речь идет об AMEC, ее руководитель Джеральд Инь на отчетной конференции заявил, что ряд мировых лидеров по производству 5-нм чипов используют промышленные установки компании. К сожалению, информация о том, кто именно закупил оборудование, не раскрывается. Но и особой загадки нет, поскольку именно лидеров в этом направлении не так много это либо Samsung, либо TSMC, либо обе компании вместе.

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

Китайская компания предоставляет оборудование для обработки 300-нм кремниевых подложек, которое может применяться для широкого спектра техпроцессов от 65 нм до 5 нм.

Два шага вперед и ни одного назад


Сейчас китайцы производят собственные чипы как процессоры, так и графические ускорители. Неплохо показало себя совместное предприятие Via Technologies и правительства Китая. В прошлом году компания выпустила процессоры KaiXian KX-6780A и KX-U6880A.

Первый из этих процессоров получил восемь ядер собственной разработки компании. Процессор поддерживал инструкции SSE 4.2 и AVX, виртуализации и шифрования. Частота работы около 2,7 ГГц, выполнен чип по 16-нм технологии.


Не отстают и другие компании, включая ту же Huawei, попавшую под санкции Китая. Всего в производство чипов Китай инвестирует $1,4 трлн долларов. Средства получат Alibaba Group, Huawei Technologies Co. Ltd, SenseTime Group Ltd. и ряд других высокотехнологичных компаний. Главная задача, которая ставится перед ними, снизить зависимость электронной отрасли Китая от других стран, преимущественно США.

В рамках развития собственной полупроводниковой отрасли Китай занимается и охотой за головами. Так, очень активно за профессионалами из этой сферы охотятся две китайские компании: Quanxin Integrated Circuit Manufacturing (QXIC) и Wuhan Hongxin Semiconductor Manufacturing Co (HSMC). Специалистам, которых приглашают на работу в Китай, предлагают зарплату в 2-3 раза больше, чем они получали на предыдущем месте работы. Перед таким предложением устоять могут немногие.

Подробнее..

Радары диапазонов 77 и 24 ГГц для автотранспорта и дорожной инфраструктуры (часть 1)

13.04.2021 10:07:06 | Автор: admin

Почему именно радары?

Компания АО ПКК Миландр знакома хабровчанам в сфере разработки интегральных микросхем. Сейчас номенклатурный ряд микросхем достаточно широкий, но в данном контексте нам интересны именно DSP (ЦОС) процессоры 1967ВН028 и 1967ВН044, которые имеют систему команд совместимую с процессором ADSP TS201. Принципиальное различие процессоров заключается в том, что 1967ВН028 нацелен на работу в составе многопроцессорного вычислительного кластера, а 1967ВН044 больше подходит на роль микроконтроллера с мощным вычислительным ядром и богатым набором периферии.

Именно процессоры 1967ВН028 стали востребованы в радарной тематике, правда речь идет о радарах специального назначения. В качестве примера могу привести блок обработки радиолокационных данных - ВНБО, рисунок 1).

Рисунок 1. Внешний вид ВНБО.Рисунок 1. Внешний вид ВНБО.

ВНБО предназначен для цифровой обработки радиолокационных сигналов, поступающих от блока приёмопередающих модулей, и передачи результатов на рабочую станцию оператора:

  • Тип вычислительного ядра - микросборка МВМ-03 (41967ВН028 + ПЗУ);

  • Количество - 52 микросборки МВМ-03;

  • Вычислительная производительность ~1100 Гфлопс.

Соглашусь, что 1100 Гфлопс сегодня не выглядит как выдающийся результат, но стоит отметить, что речь о специальном назначении (со всеми вытекающими особенностями: работа при температуре в -60, рядом с источником электромагнитных "помех" в 100 кВт) и о том, что ближайший отечественный аналог, разработанный не так давно на других процессорах, имеет вычислительные возможности почти в три раза ниже.

Как это связано с темой статьи?

Как оказалось, напрямую... В 2018 году ФГУП НАМИ пригласило представителей нашей компании для участия в рабочей группе на тему Компоненты отечественной системы ADAS (Advanced driver-assistance systems). Основными участниками этой встречи были ФГУП НАМИ, ПАО КАМАЗ, Группа ГАЗ, УАЗ. Обсуждались такие вопросы, как Разработка отечественных автокомпонентов, предназначенных для решения задачи ADAS (камеры, блоки управления, радары), Подготовка необходимой нормативной базы, Наиболее востребованные функции ADAS по мнению отечественных атомобилепроизводителей, Планы и предварительные сроки введения соответствующих уточнений в новый технологический регламент и многие другие, в общем, серьёзные вопросы, которые могут повлиять на нашу повседневную жизнь. Больше всего это было похоже на начало нового масштабного проекта, каким ранее был ЭРА-ГЛОНАСС (если вспомнить, то в Эру тоже многие не верили и сроки регулярно отодвигались, но сегодня мы все видим насколько она была неотвратима). После этого было много чисто технических рабочих групп на территории ФГУП НАМИ и участие в группах по регулированию нормативной базы в составе Национальной технологической инициативы Автонет. Были споры, дебаты, - острая, но интересная конкурентная борьба заинтересованных лиц.

Результатом функционирования рабочих групп стала разработка целой серии новых стандартов (в плане разработки числились более 180 проектов), регламентирующих различные сферы автомобильной отрасли: от электрифицированного (например, элементы инфраструктуры: зарядные станции, методы подключения, протоколы взаимодействия и т.д.) до автономного транспорта (см. далее). Для примера приведу несколько свежих стандартов по теме ADAS:

  • ГОСТ Р 58835-2020 Автомобильные транспортные средства. Бортовые системы помощи водителю. Радарные подсистемы. Общие технические требования и методы испытаний. (Дата введения 2021-04-30)

  • ГОСТ Р 58834-2020 Автомобильные транспортные средства. Бортовые системы помощи водителю. Общие технические требования к компонентам и методы испытаний. (Дата введения 2021-04-30)

  • ГОСТ Р 58838-2020. Автомобильные транспортные средства. Бортовые системы помощи водителю. Системы непрямого обзора. Общие технические требования и методы испытаний (Дата введения 2021-04-30)

Таким образом, Миландр, с одной стороны, имел опыт разработки военных локаторов вычислительной техники для обработки радиолокационных данных, с другой опыт разработки отечественных DSP процессоров, а также давно сотрудничал с кафедрой Информационных радиосистем Нижегородского Государственного Технического Университета им. Р.Е. Алексеева (одного из основных профильных ВУЗов по радиолокации). Другими словами, многое сложилось удачно. А ещё мне как инженеру кажется важным, что к началу такого сложного проекта в лабораториях Миландра имелось всё необходимое безумно дорогое измерительное оборудование.

Ближе к теме!

Рассмотрим принцип работы FMCW (Frequency Modulated Continuous Wave) радара, обобщенная структура которого показана на рисунке 2. Передатчик радара излучает непрерывный ВЧ сигнал через топологически сфазированную антенную решетку (ФАР), частота которого изменяется в заданном диапазоне по заранее определенному линейному закону, при этом амплитуда частотно-модулированного сигнала остается практически неизменной. Излучаемые радаром электромагнитные сигналы, отражаясь от объектов, находящихся в зоне обнаружения, поступают через приёмную ФАР на модуль приемо-передатчиков, где, смешиваясь с передаваемым сигналом, образуют разностный сигнал на промежуточной частоте. Частота промежуточного сигнала fif зависит от расстояния fR и относительной скорости fD обнаруженного объекта.

Рисунок 2. Обобщенная структурная схема.Рисунок 2. Обобщенная структурная схема.

Рассмотрим идеальный случай, когда цель одна, и движется медленно (рисунок 3). Графики показывают характер изменения частоты передаваемого (красный) и принимаемого (зеленый) СВЧ сигналов во времени и причину формирования промежуточной частоты fif (T период зондирования, разностная частота показана без знака).

Рисунок 3. Принцип работы FMCW радара при частотно-модулированном излучаемом сигнале.Рисунок 3. Принцип работы FMCW радара при частотно-модулированном излучаемом сигнале.

Промежуточная частота fif складывается из двух компонент: доплеровского сдвига частоты, зависящего от скорости объекта

f_{D} = \frac{2V}{\lambda}

и разностной частоты, вызванной временной задержкой на распространение зондирующего сигнала "туда" и "обратно"

f_{R} = \frac{2R}{c} *\frac{f_{\text{BW}}}{T/2}

Промежуточная частота fif , формируется согласно уравнению

f_{\text{if}} = \pm \frac{2V}{\lambda} + \frac{2R}{c} * \frac{f_{\text{BW}}}{T/2}

При использовании нашего модуля приемопередатчика M-LC6 (описание есть на сайте) в условиях безэховой камеры и не быстрого (500 Гц) модулирующего пилообразного сигнала отражение от уголкового отражателя выглядит следующим образом (рисунки 4 и 5):

Рисунок 4. Фотография условий эксперимента.Рисунок 4. Фотография условий эксперимента.Рисунок 5. Модулирующий сигнал (синий), квадратурный (желтый) и синфазный (зеленый) сигналы ПЧ.Рисунок 5. Модулирующий сигнал (синий), квадратурный (желтый) и синфазный (зеленый) сигналы ПЧ.

Результат расчета FFT по квадратурной компоненте после цифрового фильтра верхних частот и удаления паразитной модуляции (вызванной проникновением сигнала передатчика в приемник внутри СВЧ микросхемы) даёт спектр, показанный на рисунке 6.

Рисунок 6. Результат расчета FFT.Рисунок 6. Результат расчета FFT.

Рассчитаем разностную частоту для данного случая (понимая, что fD = 0):

f_{\text{if}} = \frac{f_{\text{BW}}}{T}*\left( \frac{2*R}{c} \right) = \frac{200\ MГц}{\left( \frac{1}{500\ Гц} \right)}*\left( \frac{2*5,4м}{300E6\frac{м}{с}} \right) = 3600\ Гц\ \

Matlab и осциллограф, совмещенный с генератором от Keysight, - это, конечно, хорошо и правильно, но в реальности для коммерческой компании это неинтересно. Необходимо, чтобы всё было в формате законченного изделия, имеющего реальное коммерческое применение.

Нет ничего проще.. часы ругани "мозговых штурмов", недели расчетов, месяцы испытаний и год работы - в трех рисунках 7, 8, 9.

Рисунок 7. Фотография прототипа.Рисунок 7. Фотография прототипа.Рисунок 8. Фотография макета.Рисунок 8. Фотография макета.Рисунок 9. Фотография опытного образца однолучевого радара.Рисунок 9. Фотография опытного образца однолучевого радара.

Однолучевой радар состоит из модулей приемопередатчика и вычислителя с сигнальным процессором. Приёмопередатчик представляет собой компактный модуль, включающий ФАР, реализованную в виде отдельных передающей и приемной частей, выполненных симметрично. Каждая часть состоит из отдельных патч-антенн, сориентированных между собой таким образом, чтобы была сформирована желаемая диаграмма направленности (ДН), и минимизировано взаимное влияние приёмника и передатчика. Модуль цифрового вычислителя разработан на основе 32-разрядного высокопроизводительного процессора цифровой обработки сигналов1967ВН044 (тактовая частота до 230 МГц). Рассмотрим подробнее структурную схему радара (рисунок 10).

Рисунок 10. Структурная схема опытного образца однолучевого радараРисунок 10. Структурная схема опытного образца однолучевого радара

Всё просто, а в гражданских изделиях иначе и нельзя - должно быть дешево и надежно. Центром радара является 1967ВН044 немного переделанный под данную задачу... Загружать ПО процессор умеет по SPI, соответственно, в качестве ПЗУ подходит почти любая флэшка.

ЦАП и АЦП выбираются по частоте, цене и возможности когерентного захвата данных. Сейчас реализована простая схема, почти не загружающая процессорное время, в ОЗУ лежит заранее сформированный фрагмент пилы; цепочка DMA выдвигает данные в SPI0 и в нужный момент перезапускает фрагмент этой пилы, запуская таймер TMR0. TMR0 запускает другую цепочку DMA, которая собирает данные с SPI1, выводы nCS двух АЦП объединены, выводы SDO, CLK заведены на простенький буфер, TMR0 также управляет стробами nOE буфера, а DMA собирает данные последовательно сначала с одного АЦП, а затем с другого, даже не подозревая, что это не один АЦП. Процессор загружается разного рода фильтрацией и расчетом FFT. Физический уровень CAN обеспечивает микросхема 5559ИН14, а логический SPI CAN-контроллер. Ethernet также выполнен на Ethernet-контроллере. Решение по CAN и Ethernet сейчас переносится на наш 1986ВЕ1QI, там уже есть CAN и Ethernet. Микросхема ГЛОНАСС используется не обычная, а Навигационный приемник ГЛОНАСС/GPS/SBAS/GALILEO ПРО-04, ИЛТА.464346.001 НИИ МА ПРОГРЕСС. Работает нормально, подключается по UART, свои задачи явно выполняет. Физический уровень RS-485 обеспечивает микросхема 5559ИН10. Таким образом видно, что сегодня вполне реально создать коммерческий продукт с очень высокой степенью отечественности локализации по ЭКБ.

Удобство такой модульной платформы очевидно. Меняем СВЧ приёмопередатчик (рисунок 11) получаем другое изделие, а FFT крутится на процессоре.

Рисунок 11. Пример характеристик двух СВЧ модулей в одном габарите.Рисунок 11. Пример характеристик двух СВЧ модулей в одном габарите.

Разработкой СВЧ мы тоже занимаемся сами, но тут стоит отметить, что разработка - это не просто расчет ФАР нужной формы. Это долгий процесс от идеи и до серийной сборки, расхлебывая решая все проблемы на своём пути. Например, есть нормы ГКРЧ (РЕШЕНИЕ от 7 мая 2007 года N 07-20-03-001 О выделении полос радиочастот устройствам малого радиуса действия), по которым разрешённым диапазоном в России считается 24,05 24,25 ГГц. Это значит, что использовать мы можем ЛЧМ максимум 200 МГц (а аппаратно можем - до 1500 МГц... Жаль...), и, применяя в качестве основного математического аппарата FFT, у нас будет следующее ограничение:

\frac{1}{T} = \frac{f_{\text{BW}}}{T}*\left( \frac{2*\Delta d}{c} \right)\Delta d = \frac{c}{{2*f}_{\text{BW}}} = \frac{300E6}{2*200E6} = 0.75\ м\ \

Другими словами, если забыть про всё, что реально расширяет нам каждый бин FFT (например, наложение оконной функции), ЛЧМ в 200 МГц обеспечивает нам разрешающую способность по дальности в 75 см. Но 200 МГц должны быть стабильными, иначе будет нарушение ГКРЧ. А так как мы должны использовать максимально дешевые доступные СВЧ микросхемы, ожидаемо, что с термостабилизацией у них не очень. Можно и нужно вносить аналоговую термокомпенсацию (например вводя термисторы в схему управления ГУН). Таких СВЧ приёмопередатчиков мы собрали уже несколько тысяч и можем поделиться обобщенной статистикой (рисунок 12).

Рисунок 12. Пример характеристик частотно-температурных зависимостей (слева зависимость абсолютного значения частоты в МГц от температуры, справа - зависимость полосы ЛЧМ сигнала от температуры), при подаче модулирующего сигнала лабораторным генератором.Рисунок 12. Пример характеристик частотно-температурных зависимостей (слева зависимость абсолютного значения частоты в МГц от температуры, справа - зависимость полосы ЛЧМ сигнала от температуры), при подаче модулирующего сигнала лабораторным генератором.

Видно, что термокомпенсация получилась неплохой, максимальный разброс 15 МГц и в крайних значениях температуры (минус 40 плюс 85 градусов). Если считать грубо, то это 30 МГц на 125 градусов или 0,24 МГц на градус (основные импортные аналоги обеспечивают 1 МГц на градус). Но ГКРЧ нарушается, значит, нужна дополнительная стабилизация. На модуле СВЧ для этой цели предусмотрен сигнал делителя частоты (рисунок 10); сигнал делителя - низкочастотный, порядка 24 кГц заводится на вход таймера TMR1. TMR1 записывает в память текущее значение счетчика тиков процессора, затем TMR1 отсчитывает до 1000 и снова записывает значение счетчика тиков процессора. Сравнивая эти значения, можно достаточно точно получить значение делителя частоты.

Хорошо, частоту СВЧ сигнала мы теперь знаем, нужно её скорректировать с помощью ЦАП, соответственно, точность подстройки частоты зависит от разрядности и качества ЦАП. Мы получили точность подстройки частоты СВЧ сигнала не хуже 240 кГц, что соответствует 110-3% от частоты 24,15 ГГц. Процесс подстройки представлен на рисунке 13.

Рисунок 13. Пример частотно-временной зависимости при включении радара.Рисунок 13. Пример частотно-временной зависимости при включении радара.

Другой вопрос - изменяется ли диаграмма направленности при использовании крышки из радиопрозрачного материала? К сожалению, крышка почти всегда ведет себя как сильная неоднородность, но при правильном подборе параметров (материал, толщина, самое важное расстояние от ФАР), в целом, всё будет терпимо. Наибольшие трудности возникают, когда необходима широкая диаграмма, так как увеличивается число возможных переотражений и даже если всё сделано правильно, крышка выступает в качестве диэлектрической линзы и немного обужает диаграмму.

Приведу пример измерений для немного другого радара с использованием следующих крышек: напечатанной на 3D принтере со 100% заполнением (красный), такой же, но отлитой из "типового" обычного пластика Vg280 (голубой), отлитой из "типового" пластика, но на скорректированном расстоянии от ФАР (зеленый) (рисунок 14).

Рисунок 14. Измерение диаграммы направленности.Рисунок 14. Измерение диаграммы направленности.

В общем, нюансов множество, но со всеми можно справиться, если много страдать читать и работать... Зато и результаты есть! Рассмотрим подробнее приборы, разработанные на основе Однолучевого радара.

Радар Поток-1, ТСКЯ.466369.007, является радиолокационным детектором транспортных средств (ТС) и предназначен для автоматизированного учета интенсивности дорожного движения. Детектор определяет следующие основные параметры: количество обнаруженных ТС, средняя скорость, загруженность, количество полос, классификация обнаруженных ТС; а для каждого из обнаруженных ТС скорость, длину, класс, номер полосы движения.

Наименование параметра, единица величины

Значение

Диапазон напряжений питания постоянного тока, В

От 9 до 32

Потребляемая мощность изделия по цепям питания при напряжении питания 12 В, Вт, не более

3

Диапазон изменения рабочей частоты, ГГц

От 24,05 до 24,25

Максимальная мощность излучаемого сигнала, мВт, не более

100

Угол обзора изделия по горизонтали, не более

16

Угол обзора изделия по вертикали, не менее

60

Диапазон измеряемых скоростей, км/ч

От 5 до 160

Число одновременно анализируемых полос, не более

12

Анализируемая дальность, м

От 2 до 60

Рабочая температура среды, С

От 40 до +75

Габаритные размеры, мм, не более

14012035

Масса, кг, не более

0,3

Возможность оснащения модулем отечественного ГЛОНАСС/GPS приемника

Опционально

Возможность оснащения интерфейсами Ethernet, CAN, RS-485, RS-232

Опционально

Детектор располагается возле контролируемого участка дорожного полотна на высоте 4-6 метров в зависимости от числа полос и необходимой максимальной дальности детектирования. В азимутальной (горизонтальной) плоскости детектор направляется ортогонально дороге, в угломестной плоскости, со смещением в 15-35 градусов (с наклоном в сторону дорожного полотна, рисунок 15).

Рисунок 15. Фотография установки радара Поток-1 на объекте эксплуатации.Рисунок 15. Фотография установки радара Поток-1 на объекте эксплуатации.

Радар Скорость-1, ТСКЯ.466369.006, является радиолокационным измерителем скорости движения и предназначен для обнаружения движущихся ТС, детектирования их скорости и направления движения. Измеритель может определять скорость целей с учетом направления их движения (только встречные, только попутные, оба направления), выделять скорости самой быстрой цели из группы и цели с наибольшей амплитудой принятого сигнала.

Наименование параметра, единица величины

Значение

Диапазон напряжений питания постоянного тока, В

От 9 до 32

Потребляемая мощность изделия по цепям питания при напряжении питания 12 В, Вт, не более

3

Диапазон рабочей частоты, ГГц

От 24,05 до 24,25

Максимальная мощность передающего устройства, мВт, не более

100

Угол обзора изделия по горизонтали, не более

16

Угол обзора изделия по вертикали, не более

26

Диапазон измеряемых скоростей, км/ч

От 10 до 320

Допускаемый предел среднеквадратичной ошибки измерения скорости, км/ч, не более

1

Дискретность выдаваемой измерителем информации, км/ч, не более

0,5

Дальность измерения скорости транспортного средства, м

От 10 до 180

Рабочая температура среды, С

От - 40 до +75

Габаритные размеры, мм, не более

14012035

Масса, кг, не более

0,3

Возможность оснащения модулем отечественного ГЛОНАСС/GPS приемника

Опционально

Возможность оснащения интерфейсами Ethernet, CAN, RS-485, RS-232

Опционально

Измеритель (рисунок 16) может быть использован как самостоятельный прибор, так и встраиваться в готовые решения заказчика. В настоящее время востребованы следующие применения: табло информирования о превышении скорости на опасном участке дороги, системы контроля скорости движения в складских помещениях и частных территориях.

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

Радары Поток-1 и Скорость-1 соответствуют требованиям ГОСТ Р 50856-96, ГОСТ 33991 2016, ГОСТ Р 50607-2012 с уточнениями, изложенными в технических условиях, являются конструктивно законченными, самостоятельными, изделиями и имеют класс защиты IP67 по ГОСТ 14254-2015.

Заключение.

Работа над радарами не останавливается думаю в следующей части статьи можно подробнее рассказать про именно автомобильные радары на 24 ГГц и 77 ГГц, сейчас просто покажу их внешний вид, рисунок 17.

Рисунок 17. Внешний вид автомобильных радаров МАРС2А1 (правее, ниже)и Обзор-77-2 (левее, выше).Рисунок 17. Внешний вид автомобильных радаров МАРС2А1 (правее, ниже)и Обзор-77-2 (левее, выше).

Спасибо, что дочитали..

Подробнее..

Китайская компания Loongson Technology разработала с нуля новую процессорную архитектуру

18.04.2021 20:08:22 | Автор: admin

О компании Loongson Technology регулярно пишут на Хабре. Ее процессоры на архитектуре MIPS изначально использовались китайскими же производителями нетбуков и телеприставок. Затем разработки компании применялись при создании гораздо более производительных систем. Например суперкомпьютера Dawning 6000 мощностью более 1000 терафлопс и других подобных систем.

Практически все эти процессоры создавались на базе уже существующих архитектур, главным образом, MIPS. Ну а сейчас стало известно о том, что компания представила разработанную с нуля собственную архитектуру, которая получила название Loongson Architecture или LoongArch. Это не только достижение самой компании, но и важный этап в процессе импортозамещения в китайской индустрии электроники.

LoongArch что это и зачем?


Ранее основанные на архитектуре MIPS процессоры позволяли сохранять совместимость с программным обеспечением, разработанным для MIPS64, включая ПО для суперкомпьютеров. Это было одним из преимуществ чипов от Loongson Technology.

Зачем компании новая архитектура? Она решила стать независимой после того, как MIPS Technologies перешла на RISC-V, о чем мы, кстати, писали. Ранее MIPS Technologies занималась развитием архитектуры и лицензированием интеллектуальной собственности, которая связана с процессорами MIPS. Сами чипы компания не производила. Но вот перерожденная организация займется выпуском процессоров, но уже на базе архитектуры RISC-V.

Новую архитектуру уже оценили независимые эксперты, выяснив, что у нее нет ничего общего с ALPHA, ARM, MIPS, POWER, RISC-V или х86. Компания разработала собственный формат инструкций, их кодирование, режимы адресации и т.п. LoongArch содержит около 2000 проприетарных инструкций. По словам разработчиков, они удалили устаревшие инструкции для обеспечения пониженного энергопотребления и более эффективной работы. В дополнение к базовому набору инструкций компания добавила инструкции расширения двоичного преобразования (LBT), инструкции расширения векторной обработки (LSX), инструкции расширения расширенной векторной обработки (LASX) и инструкции расширения виртуализации (LVZ), сообщает PC Watch.


И сама разработка не является просто очередной теоретической разработкой, практическую реализацию которой откладывают затем долгий ящик. Нет, на ее основе уже созданы и работают 12-нм процессоры Loongson 3A5000 и 3C5000. У первого 4 ядра на частоте 2,5 ГГц, он предназначен для обычных десктопных ПК. Второй получил 16 ядер, это серверный процессор. На плате сервера можно установить вплоть до 16 таких чипов.

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

Что все это значит для Китая?


Как и говорилось выше возможность развивать производство собственных чипов, как десктопных, так и процессорных, без зависимости от иностранных компаний. Еще в прошлом году эта компания выпустила MIPS-процессор 3A4000/3B4000. Тактовая частота 2.0 GHZ, 4 ядра, в синтетическом тесте он набрал 128 гигафлопс, производственная технология 28 нм.


Тогда говорилось, что процессоры полностью отечественные, а не заказанные у сторонних аутсорсеров. Кстати, именно так поступает Huawei Hisilicon, она заказывает свои процессоры Kirin и Kunpeng у партнеров.

На базе нового чипа создавались ПК, которые уже поступили в продажу. Они работают на основе дистрибутива Loongnix или любой другой MIPS-совместимой системе.

В начале этого года стало также известно и о новом процессоре еще одной китайской компании Zhaoxin Semiconductor. Она является объединенным предприятием Via Technologies и правительства Китая. В прошлом году компания выпустила процессоры KaiXian KX-6780A и KX-U6880A. Первый из этих процессоров получил восемь ядер собственной разработки компании. Процессор поддерживал инструкции SSE 4.2 и AVX, виртуализации и шифрования. Частота работы около 2,7 ГГц, выполнен чип по 16-нм технологии.

Несмотря на скепсис некоторых экспертов, сомневающихся в способности Китая наладить производство собственных процессоров, Поднебесная делает очень заметные успехи в этой отрасли. В целом, это неудивительно, если учесть чрезвычайно активные усилия страны, предпринимаемые для того, чтобы не зависеть от технологий США. Правительство Китая собирается вложить около $1,4 трлн в развитие высоких технологий до 2025 года. Средства планируется предоставить китайским компаниям, производителям электроники и софта. В том числе и разработчикам чипов.

Кроме инвестирования средств в инфраструктуру, немало тратит страна и на охоту за головами, то есть на поиск и привлечение талантливых специалистов, способных разработать чипы. В настоящее время за квалифицированными инженерами охотятся две китайские компании: Quanxin Integrated Circuit Manufacturing (QXIC) и Wuhan Hongxin Semiconductor Manufacturing Co (HSMC). Им уже удалось переманить больше сотни сотрудников из TSMC, предложив тем зарплату в два раза выше.

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

Подробнее..

Категории

Последние комментарии

© 2006-2021, personeltest.ru