Сегодня в очередной раз наткнулся на вакансию старшего инженера - схемотехника в Яндекс. Решил, что это знак и настало время разобрать их тестовое задание. Звучит оно следующим образом:

Есть:
Сенсор температуры на основе Pt1000, где Rt = 1000 Ом при 0 °С, Rt = 1385 Ом при 100 °С. АЦП с входным диапазоном 0–3 В и эквивалентным входным сопротивлением не более 10 кОм.
Требуется:
Разработать схему согласования сенсора и АЦП так, чтобы температуре 0 °С соответствовало напряжение 0 В на входе АЦП, температуре 100 °С соответствовало 3 В. Мощность, рассеиваемая на Pt1000, не должна превышать 1 мВт.

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

1. Трактование условий

Начнем с выгодного для нас трактования задания, условимся, что датчик расположен на удалении от схемы в 2м и и подключен проводами сечением 0.03мм^2 к плате. Соответственно, нет надобности функционирования схемы в температурном диапазоне 0-100°С. Считаем, что температура резко не изменяется, к примеру, не быстрее чем 1°С/1мс. За минимизацией стоимости я не гонюсь, поэтому не буду рассматривать китайские аналоги микросхем. Будем считать, что печатная плата спроектирована идеально и не оказывает никакого влияния на схему.

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

2. Подготовка

Начнем с датчика и сопротивления его проводов.

Исходя из таблицы выше при длине кабеля 2м из меди сопротивление составит 1.067 Ом. Предположим что 0.2м кабеля расположена в зоне, где температура 100°С, тогда получим:

1.067Ом + 0.1 * (1 + 4.3 * 10^-3 * (100°С - 20°С)) = 1.1 Ом.

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

Какие схемы измерения можно применить?

Мост Уитстона. Мост состоит из 4 сопротивлений, причем R1 = R2, Pt1000 в нашем случае - Rx, при температуре 0°С его сопротивление равно R3. При повышении температуры сопротивление Rx растет, таким образом появляется разность потенциалов между точками соединения R1, R2 и R3, Rx.

Мост Уитстона
Мост Уитстона

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

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

Пример двухпроводного подключения термдатчика
Пример двухпроводного подключения термдатчика

Выделяют три вида подключения: 2-, 3- и 4-проводное.

Виды подключения термодатчика
Виды подключения термодатчика

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

3. Расчет схемы

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

Начнем с источника тока, используем схему зеркала тока Вилсона, Q4 держит напряжение Vce Q5 примерно на напряжении 2*Vbe, работая как каскод. Добавим R15, R17 для создания большей стабильности при вариациях Vbe от транзистора к транзистору 100 Ом, 1% вполне достаточно. В качестве Pt1000 у нас выступает R2. Для большей точности используем pnp транзисторы с высокой бета BC807-40:

Токовое зеркало Вилсона
Токовое зеркало Вилсона

Чем больше тока, тем больше падение напряжения на термодатчике, следовательно, более точные измерения. Однако не забываем про условие ограничения мощности в 1мВт. Зададим ток, равный 800мкА, исходя из графика в документации, считаем Vbe равным 600мВ:

Напряжение Vbe от тока
Напряжение Vbe от тока

Таким образом для 800мкА нам понадобится резистор:

R18 = (3.3В - (0.6В * 2) - (800мкА * 100Ом)) / 800мкА = 2525 Ом

Возьмем 2.49кОм и 34.8Ом 0.1% (на схеме будет указана их сумма как R18).

А теперь нам понадобится еще одно плечо, соединим базы транзисторов, в таком случае ток в R3 будет равен R2 (считаем что Vbe отличается минимально). R3 выберем равным сопротивлению Pt1000 при 0°С, т.е 1кОм 0.1%

Внесение второго плеча
Внесение второго плеча

Подключение термодатчика

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

Схема подключения термодатчика с проводами
Схема подключения термодатчика с проводами

Помним, что расчетное сопротивление кабеля 1.1Ом. Оно обозначено резисторами R22, R21, R9. То есть за счет непосредственного подключения входа усилителя к датчику третьим проводом, падение напряжения на сопротивлении верхнего провода (R22) не будет влиять на измерения. Остается вопрос: что делать с возвратным проводником R21? Его я предлагаю компенсировать цепью R10, R6. Внеся их в соседнее плечо - мы создаем дополнительное падение напряжения, которое будет компенсировать падение на R21 (обратном кабеле). R10 - подстрочный резистор, которым можно калибровать измерения, например, при 0 градусов.

Усилитель ошибки

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

  • Vos - 160мкВ (0.052% от полного диапазона при температуре от 0 до 100°С)

  • Ib - 28нА (дает падение 38мкВ на Pt1000 и ошибку в 0.012%)

  • Ibos - 2.5нА (дает падение 3.46 мкВ на Pt1000 и ошибку в 0.0011%)

  • Vout - 0.01В от земли и 0.15В от питания при нагрузке 100кОм (дает ошибку в 0.7% при G = 5, поборемся с этим позже)

  • Точность усиления - 0.02% при G = 5

  • CMRR - 100дБ при G = 5

Усилитель хороший, но при работе с ним есть нюансы, например, его не получится напрямую подключить к АЦП, поскольку при нагрузке 10кОм максимальное выходное напряжение будет на 0.5В ниже положительного питания. Также усилитель имеет наименьшую погрешность при усилении G = 5:

The AD8223 defaults to G = 5 when no gain resistor is used. Add the tolerance and gain drift of the RG resistor to the specifications of the AD8223 to determine the total gain accuracy of the system. When the gain resistor is not used, gain depends only on internal resistor matching, so gain error and gain drift are minimal.

То есть, никаких резисторов нам не потребуется. Для ограничения полосы предлагаю добавить на выход фильтр с частотой среза 5кГц (1кОм и 3.3нФ):

Схема термодатчика с дифференциальным усилителем
Схема термодатчика с дифференциальным усилителем

В моей библиотеке нет AD8223, поэтому для модели я использую AD8221 с двуполярным питанием.

Итого:

В R20 и R16 течет одинаковый ток, при росте сопротивления термодатчика падение напряжения на нем увеличивается, на входе дифференциального усилителя растет разность напряжений, поскольку R20 остается все также равным 1кОм.

Выходной каскад

Осталось спроектировать выходной каскад для согласования с АЦП. Теперь наступает самая интересная часть, на что же мы готовы ради милливольт? У rail to rail усилителей есть одна важная особенность: напряжение на их выходе никогда не будет равно абсолютному нулю. Лучшее, что я нашел 30мВ, а это 1% выходного напряжения. Похоже, пора создавать отрицательное питание. Используем для этого ICL7660A, ее внутренняя схема:

Внутренности ICL7660A
Внутренности ICL7660A

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

Подключение микросхемы ICL7660A
Подключение микросхемы ICL7660A

Выберем частоту переключения равной 10кГц, конденсатор Cosc в таком случае не понадобится. Емкость С1 = С2 выберем равной 120мкФ (один танталовый 293D107X96R3B2TE3 и два керамических по 10мкФ). Рассчитаем пульсации при таких условиях

Vripple = 1 / (2 * fpump * C2) = 410мВ

Много? А давайте посмотрим на PSRR (коэффициент ослабления шумов по питанию) усилителей, для которых предназначается это питание. Вот, например график для отрицательной шины AD8223. Итого наши 410мВ при ослаблении в 90дБ превратятся в 13мкВ.

График PSRR для инструментального усилителя
График PSRR для инструментального усилителя

У потенциального претендента (OPA2376) в следующем каскаде график PSRR чуть хуже, но при 75дБ ослабления мы получим 73мкВ пульсаций.

График PSRR для операционного усилителя
График PSRR для операционного усилителя

Однако эти усилители могут быть заменены на аналоги (например, AD8223 -> AD8221) у которых PSRR хуже. Помимо прочего, подобные пульсации создают помехи на плате. Для их устранения потребуется пару элементов, которые не скажутся ни на габаритах платы, ни на стоимости устройства.

Соберем отрицательный линейный регулятор на транзисторе MMBT2907A и стабилитроне PH_BZX884-B3V0 с напряжением 3В. Таким образом, мы сгладим все пульсации выше примерно -3В + 0.7В), т.е -2.3В, отлично! Итоговая схема:

Схема формирования отрицательного напряжения
Схема формирования отрицательного напряжения

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

Выходной каскад построим на OPA2376, его параметры

  • Vos - 25мкВ (0.0017% от полного диапазона при температуре от 0 до 100°С)

  • Ib - 10пА (несравнимо малое падение на R12)

  • Ibos - 10пА (несравнимо малое падение на R12)

  • Vout - 30мВ от земли и питания

  • Zin - 0.1ГОм (несравнимо малый делитель с R13)

  • Zol 150Ом

  • Gol 120дБ

Теперь предстоит понять какой коэффициент усиления нам потребуется. Для этого посчитаем какое напряжение при 100°С мы получим на выходе дифференциального усилителя:

Vu2out_max = 800мкА * (1385Ом - 1000Ом) * 5 =1.54В

Для получения 3В при 100°С нам потребуется усиление:

Gcl = 3 / 1.54 = 1.948

Выберем R24 = 200кОм 0.1%, тогда:

R23 = 200кОм * (1.948 - 1) = 189.6кОм

В этом случае можно использовать два резистора 2.61кОм и 187кОм 0.1%.

Выходной импеданс усилителя будет:

Zout = Zol / (1+Gol * R23 / (R24 + R23)) = 0.3мОм

Выходной импеданс создаст несравнимо малую ошибку с 10кОм на входе АЦП. Для спокойствия также рассчитаем падение токов Ib + Ibos на резисторе в обратной связи:

200кОм * (0.1нА + 0.5нА) = 0.12мВ, что составляет 0.008% от 1.54В, думаю можно пренебречь.

Добавим еще один фильтр для ограничения полосы пропускания, для этого достаточно будет установить конденсатор параллельно с R23, R25. Выберем номинал равным 0.1нФ, частота среза будет составлять 8.4кГц. Хочу обратить внимание, что на схеме используется другой ОУ, поскольку OPA2376 нет в моей библиотеке.

4. Моделирование и оптимизация

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

Анализ по переменному напряжению

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

Схема усилителей с двуполярным напряжением
Схема усилителей с двуполярным напряжением
Результаты анализа по переменному напряжению
Результаты анализа по переменному напряжению

Полоса пропускания схемы - 275кГц, видно, что запас по фазе маловат (около 20 градусов), т.е схема может быть не устойчива. Для увеличения запаса увеличим емкость на выходе дифференциального усилителя до 6.8нФ, результат следующий:

Результаты анализа по переменному напряжению, итерация 2
Результаты анализа по переменному напряжению, итерация 2

Отлично! Теперь запас 60 градусов, достаточно для устойчивости, тем более, если учитывать, что максимальная частота сигнала на входе 100Гц, дополнительно зададим требование для частоты семплирования АЦП не более 100к Выб/Cек.

Анализ переходных процессов

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

Схема для анализа переходных процессов
Схема для анализа переходных процессов
  • Зеленая трасса - напряжение на отрицательном входе U2;

  • Cиняя трасса - напряжение на положительном входе U2;

  • Красная трасса - напряжение на выходе U1.

Переходной процесс при изменении температуры
Переходной процесс при изменении температуры

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

5. Анализ погрешностей

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

Пересмотр схемы

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

Vu2out_max = 100мкА * (1385Ом - 1000Ом) * 5 =0.1925В

Gcl = 3 / 0.1925 = 15.584

В выходном каскаде заменим R24 на 20кОм, R23 тогда будет:

R23 = 20кОм * (15.584 - 1) = 291.68кОм

Схема устройства с REF200
Схема устройства с REF200

Казалось бы, все хорошо, но теперь натыкаемся на такую фразу в даташите REF200:

High accuracy: 100 µA ±0.5%

Для нас 0.5% не считается высокой точностью. Также хочется обратить внимание, что R24 даже при точности 0.1% будет давать ошибку 0.1%*Gcl = 1.5%. К сожалению погрешности не обманешь....

Попробуем самостоятельно построить источник тока с требуемой точностью. У нас остался один свободный операционный усилитель (у OPA2376 два усилителя в корпусе), давайте его применим. Также понадобится опорный источник напряжения, хорошо подойдет AD780BR с напряжением 2.5В и погрешностью 0.08%. Подключение возьмем из документации:

Подключение AD780BR
Подключение AD780BR

Для формирования 800мкА номинал токозадающих резисторов должен быть:

Rcs = (3.3В - 2.5В) / 800 мкА = 1кОм 0.1%

Схема будет выглядеть так:

Схема с источником тока на операционном усилителе
Схема с источником тока на операционном усилителе

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

Итоговая схема устройства
Итоговая схема устройства

6. Заключение

Мы рассмотрели несколько вариантов схемы со своими плюсами и минусами и выбрали наиболее подходящий вариант. В любом случае схеме понадобится регулировка, в этом помогут резисторы R2, R10. Кстати, все неуказанные точности элементов считаем некритичными и равными 5%.

Стоимость элементной базы без учета датчика варьируется в диапазоне 7-8тыс. рублей. Еще около 500-1000 будет стоить двухслойная печатная плата при хороших партиях.

Комментарии (125)


  1. Tirarex
    16.02.2025 17:16

    А в чем смысл такого тестового если есть десятки-сотни готовых датчиков работающих по шинам типа i2c / 1wire итд, и за разработкой которых давно посидели инженеры.

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

    Вопрос не к автору статьи а скорее к яндексу.


    1. Ivanii
      16.02.2025 17:16

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


      1. GardenerX
        16.02.2025 17:16

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

        Хороший коммент. Наверное применим для любого уровня компетенции в любой теме. К примеру в шахматах, если соберется компания, где все примерно рейтинга 1000 по chess.com, и будут обсуждать какую-нибудь позицию, то быстро придут к консенсусу как надо играть. Потом придет чел с рейтингом 2000 и скажет - ну и бред же несете господа, здесь все не так. Подтянутся еще 2000 и быстро придут к консенсусу, что надо играть по-другому. Потом придет чел с рейтингом 3000 и скажет - ну и бред же несете господа, здесь все не так. Подтянутся еще 3000 и придут к консенсусу, правду уже не быстро, понимают, что есть еще Магнус.

        Я себя ощущаю в этой теме как примерно 1000 рейтинга, но догадываюсь, что придет какой-нибудь 2000 и отморозит что-нибудь в стиле - а с чего вы взяли, что на выходе нельзя получить чистый ноль без дополнительного отрицательного питания? Ну да, транзистор выходной в насыщении не дает нам ноль. Ну так не ставьте транзистор, поставьте резистор, статейку на эту тему почитайте "TI Precision Designs: Verified Design.
        High-Side Voltage-to-Current (V-I) Converter"


        1. shkal
          16.02.2025 17:16

          Шахматистов с рейтингом 3000 не существует)) биологических.


          1. GardenerX
            16.02.2025 17:16

            Рейтинги разные бывают. В комменте явно указано - рейтинг по chess.com, не lichess.com, не FIDE rating.


    1. anovichkov Автор
      16.02.2025 17:16

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


      1. Wesha
        16.02.2025 17:16

        чтобы кандидат подумал именно над аналоговой частью

        Над налоговой частью пусть бухгалтер думает! /sarcasm


    1. CBET_TbMbI
      16.02.2025 17:16

      Хотите сказать, что на тестовые задания надр давать задачи, которые пойдут в производство?

      Как раз дать базовое задание разумнее. Про него многое мзвестно и можно проверить на бумаге.


    1. igar_ok
      16.02.2025 17:16

      В реальной жизни никто, конечно же, простой цифровой датчик вместо PT1000 не поставит. Скорее схемотехник поищет специализированный АЦП для резистивных датчиков. Ну а задание на то и тестовое, что бы раскрыть навыки схемотехника, а не навыки поиска по параметрам на mouser, digikey итд.


    1. fizikdaos
      16.02.2025 17:16

      Нормальное тестовое задание, на 20 минут. В условии никто не просил компенсировать провода, да и вообще делать схему точной. Там просили растянуть шкалу. Это делается в 4 резистора и один оу. И посчитать всякое для нее, но это тоже несложно.


    1. Traveller0968
      16.02.2025 17:16

      А в чем смысл такого тестового если есть десятки-сотни готовых датчиков работающих по шинам типа i2c / 1wire итд, и за разработкой которых давно посидели инженеры.

      А попробуйте передать на некоторое расстояние (метров 50) чистый цифровой сигнал с этих датчиков в контроллер, в промышленных условиях, особенно если эта линия соприкасается с силовыми коммуникациями, а строить отдельные магистрали для слаботочки, это тоже тот еще квест + как ни крути если токовую петлю 4-20мА я могу передать, по "любому" проводу практически на "любое" расстояние, то в случае i2c / 1wire и даже RS-485, требования более кучерявые и в плане исполнения и в плане стоимости... :)

      И еще один нюанс, так сказать вишенка на торте, точность этих интегральных датчиков не идет ни в какое сравнение с теми же самыми PT100/1000, это я даже не говорю про диапазоны температур которые нужно контролировать в промышлености от глубоких минусов, до сотен и даже тысяч градусов, где только термопары работают, а интегральные-цифровые, это -50С - +100C и всё! :)


      1. venanen
        16.02.2025 17:16

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


        1. Traveller0968
          16.02.2025 17:16

          А вот передать аналоговый сигнал с датчика на 40 метров - это уже из разряда "практически невозможно"

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

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

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

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


          1. Muzzy0
            16.02.2025 17:16

            Я работал с одной машиной. Там термопара и от неё кабель на нормализатор - максимум 2 метра. Но, неэкранированный и идёт в канале сов сем остальным (в частности, с кабелями шаговиков). Фильтруй, не фильтруй, всё равно получишь..


            1. Traveller0968
              16.02.2025 17:16

              Вы про эти 2 метра?


        1. olartamonov
          16.02.2025 17:16

          А вот передать аналоговый сигнал с датчика на 40 метров - это уже из разряда "практически невозможно".

          И что конкретно невозможного в 4-20 мА на 40 метров?


          1. Muzzy0
            16.02.2025 17:16

            И что конкретно невозможного в 4-20 мА на 40 метров?

            Абсолютно ничего. Так же, как и на 100, и на 200 метров.


        1. RTFM13
          16.02.2025 17:16

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

          Под это описание подходит голая 485. Для описанных выше условий этого мало.


        1. Muzzy0
          16.02.2025 17:16

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

          Много ли вы лично имели дела с подобным цифровым (чуть не написал "цирковым) сигналом?

          Во-первых, не особенно с экраном, а только с экраном. Во-вторых, весь мой практический опыт работы с промышленными объектами говорит, что подобный сигнал это 99% геморрой. В то время, как 4..20 мА - 0% геморроя.


      1. smagluk
        16.02.2025 17:16

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


        1. Traveller0968
          16.02.2025 17:16

          Не совсем понимаю, что значит точность падает в токовой петле 4-20мА? На сколько мы знаем, ток на любом участке цепи одинаковый, если нет утечек или замыканий, а сопротивление проводов компенсируется их толщиной, на 50 метров хватит и 0,35кв. а на км. можно заложить и 2,5кв. + повысить напряжение источника питания, но стоит учитывать что это просто провод, хоть МКЭШ, хоть банальный ШВВП, а вот для цифровой передачи, уже нужна или витуха, причем экранированая или специализированный кабель для этого предназначеный, но витуха все равно будет дешевле и прокладывать ее нужно отдельно... :)


    1. Goron_Dekar
      16.02.2025 17:16

      Вы говорите "в чём смысл решать тестовое задание"?

      Тестовое задание оно не про практический смысл, оно про понимание уровня кандидата. И тут смысл очевиден, верно?


      1. olartamonov
        16.02.2025 17:16

        Да, тут в комментариях уже многие с «да мы просто цифровой датчик / RRIO / etc бахнем и всё готово» отсеялись с собеседования :)


        1. Tirarex
          16.02.2025 17:16

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

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


          1. olartamonov
            16.02.2025 17:16

            Переусложнение решения на ровном месте — тоже очевидный минус для собеседуемого.

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


            1. anovichkov Автор
              16.02.2025 17:16

              Увидел уже много ваших комментариев и стало интересно, насколько переусложненно решение задачи в посте? Какие есть недостатки описанного подхода?


              1. olartamonov
                16.02.2025 17:16

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

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


    1. VT100
      16.02.2025 17:16

      Цифровой датчик - надо калибровать. Аналоговый, теоретически, полностью работает на алгебраических уравнениях и может дать точность "искаропки".

      Цифровой I²C - череповато выносить с платы прибора.

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


  1. fizikdaos
    16.02.2025 17:16

    Это в яндекс надо было отправлять, а не на хабр.


  1. DustCn
    16.02.2025 17:16

    Чет мне кажется что для обычного бытового датчика это перебор. А если нет, вопрос термокомпенсации не раскрыт.


    1. anovichkov Автор
      16.02.2025 17:16

      А что можно было бы добавить по вашему мнению?

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


      1. Javian
        16.02.2025 17:16

        Комнатная температура не стабильная - открыл окно проветрить и уже 15С будет.


        1. Hlad
          16.02.2025 17:16

          Для меди - строго пофиг. Ну добавит 0,5% к погрешности...


          1. Goron_Dekar
            16.02.2025 17:16

            А для резисторов, которые в мосту?


            1. Hlad
              16.02.2025 17:16

              Тоже.

              На всякий случай напомню, что ТКС резисторов измеряется в первых сотнях PPM. То есть, изменение температуры на 10 градусов приведёт к изменению их сопротивления на 0,2-0,3%. Причём у всех в одну и ту же сторону.


    1. Goron_Dekar
      16.02.2025 17:16

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

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


  1. antonluba
    16.02.2025 17:16

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


    1. Goron_Dekar
      16.02.2025 17:16

      Теоритически или практически?

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


      1. antonluba
        16.02.2025 17:16

        В ТЗ об этом вообще ни слова


        1. Goron_Dekar
          16.02.2025 17:16

          Где вы тут увидели ТЗ?

          Тут только задача. Вступительная задача для собеседования. Стартовая точка для поговорить. И поговрить о разработке электроники, судя по заданию, аналоговой.


          1. antonluba
            16.02.2025 17:16

            Тогда не надо ничего додумывать. Просто обозначить напряжение питания и все.

            При моделировании использовать идеальные источники. Имхо


      1. Gizma_2000
        16.02.2025 17:16

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


        1. Goron_Dekar
          16.02.2025 17:16

          Нет, нановольты не мерил, а в местах, где были пикоамперы БП был заранее, и не мой. Но всё равно позволю себе вам не поверить - линия 220V настолько шумная/грязная, что помехи, пролезающие оттуда через трансформатор во-первых значительно менее предсказуемые, а во-вторых гораздо больше по амплитуде, чем пролезающие через высокочастотный ИБП с грамотно сконструированным фильтром.

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


          1. shkal
            16.02.2025 17:16

            Всë ровно наоборот, недорогой импульсный БП создаëт значительно больше помех и в широком спектре


            1. Goron_Dekar
              16.02.2025 17:16

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

              А так как наша питающая сеть просто кишмя кишит этими самыми дешевыми импульсными БП, то она очень грязная.

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


              1. StpMA
                16.02.2025 17:16

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


                1. Gizma_2000
                  16.02.2025 17:16

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


              1. shkal
                16.02.2025 17:16

                Давайте вы вместо абстрактных рассуждений посмотрите спектр помех на выходе любого более-менее приличного импульсного БП (mean well, например) и такого же по мощности стандартного трансформаторного БП со стабом на 317\337, и учтёте разницу PSRR на 100Гц и 20КГц (условно) любого ОУ или АЦП.


                1. Goron_Dekar
                  16.02.2025 17:16

                  А можно мы не будем обсуждать mean well в контексте измерительной аппаратуры? Вот вообще!

                  Я видел и лазал в масспектрометры, в измерительный каскад ЯМР спектрометров. И везде видел только импульсные БП, никогда не встречал трансформаторов. Это хай-энд серийно выпускаемых измерителей, хотя тут уже слово "серийно" не подходит - серии очень малы. Везде стоят блочки внешне очень напоминающие mean well, но внутри там визуально гораздо больше рассыпухи. Часто это Agilent (Keysight).


                  1. Gizma_2000
                    16.02.2025 17:16

                    Это только внешне, внутри они будут очень сильно от минвела отличаться


                  1. shkal
                    16.02.2025 17:16

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


                    1. Goron_Dekar
                      16.02.2025 17:16

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

                      Можно я не буду городить схожий линейный БП с трансформатором?

                      Без нагрузки у импульсника шумов практически нет, так что измерение "вхолостую" тупо неинтересно.


                      1. shkal
                        16.02.2025 17:16

                        Вот зачем обсуждать блок на 500 вт, кода речь о питании одного ацп и пары тройки ОУ?

                        Практически нет - это сколько? В дб от номинального напряжения. И с каким спектром?


                      1. Goron_Dekar
                        16.02.2025 17:16

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

                        А в мне говорите, что можно применить, и будет работать.

                        Да, можно!

                        Да, будет работать. Я сам видел измерительную аппаратуру до 90-х годов выпуска, где шли именно по этому пути. Но это не парвильно и несовременно. Так не делают сейчас. И на собеседовании предлагать устаревший подход к решению тестовой задачи не стоит.


                      1. Gizma_2000
                        16.02.2025 17:16

                        500Вт... и прецизионные измерение... угу... угу... продакшен... в аналоге есть "в производстве", ITшную туфту там и оставьте. (или вы путаете, по наивности, и 500 Вт, это так сказать Rail питание какое-нить, там 48В или 12В, которое в паре метров от приборов стоит, в шкафе там каком-нить правильно заземленном... а от него уже поближе к приборам весело стоят еще несколько "правильных" небольших ИИП, с малоемкостной гальво-развязкой, плавными фронтами и т.д. )

                        Если вы что не видите это не значит во первых, что этого нет. А во вторых судя по рассуждением из прецизионного вы максимум что видели это, как вы сказали, нутрянки Agilent, и наверно осциллоф - но там ИИП дай бог на 50 Вт будут, а то и 10-20Вт. И это тоже специфические ИИП с кошмарным КПД, как вы сказали "не современными" размерами...

                        Вообще дико странный подход применять "современно" / "не современно" / "не правильно" к законам физики... это вам не фреймворки... они не меняются каждый год )))


                      1. shkal
                        16.02.2025 17:16

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


          1. Gizma_2000
            16.02.2025 17:16

            ну тогда к чему разговор то, раз не делали то? Помехи не пролезают, а имеют вполне понятные физические пути. Если вы не знакомы с конструкциями трансформаторов с менее чем пико-фарадными емкостными связями между первичкой вторичкой, многостадийными экранными обмотками, правильным экранированием и отводом емкостных помех. То говорить, что железный трансформатор хуже импульсного - довольно смешно... Вы просто не в теме. А я вот делал не раз и свои же ИИП и сетевые("трансформаторные") ИП в многозвенной фильтрацией и каскадированием линейный стабов с уменьшением шумов. и ЭМИ даже от хорошо спроектированного ИИП давятся/отводятся/экранируются гораздо сложнее и менее предсказуемо...


            1. Goron_Dekar
              16.02.2025 17:16

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


            1. shkal
              16.02.2025 17:16

              Угу, о чём и речь. Транс на десяток ватт с разнесёнными первичкой -вторичкой будет иметь проходную ёмкость десяток пик за счёт некоторой потери магнитной связи, что некритично. Зато избавляемся от мощного источника импульсных помех прямо на плате с диапазоном в десятки МГц, которые летят во всё вокруг.


    1. balmerdx
      16.02.2025 17:16

      ICL7660 дешевле, чем трансформатор, занимает меньше места и даёт достаточно низкий уровень пульсаций. Т.е. вполне хороший вариант для двуполярного питания ОУ.


  1. REPISOT
    16.02.2025 17:16

    Сначала автор использовал источник тока в виде токового зеркала. Ок, подумал я, наверное, в задании есть ограничение, чтобы сделать все на дискретных элементах. Потом у нас появился даже не ОУ, а сразу инструментальник. Сомнительно, но окэй. А под конец - ИОН AD780.

    Два вопроса:

    1. Зачем надо было начинать с транзисторов? Это решение задания, или все же теория и ликбез?

    2. Если все равно используются микросхемы (причем ни разу не простые ОУ, а ИОН и инструментальник), то почему не взять готовую микросхему для резистивных датчиков? У которой уже есть источник тока, возможность подключить 3 и 4-проводную схему, еще и термокомпенсация. И которая стоит дешевле 1к рублей.


    1. SADKO
      16.02.2025 17:16

      Ну, первое бывает нужно чтобы сэкономить на втором, но тогда где обоснуй и прикид по шуму :-)


    1. anovichkov Автор
      16.02.2025 17:16

      Основная цель была в разработке точной аналоговой части. Я зацепился за условие:

      Мощность, рассеиваемая на Pt1000, не должна превышать 1 мВт.

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

      1. Начинал с Зеркала тока, как с базовой схемы, которая не требует много элементов (всего 5 транзисторов SOT23 и 6 резисторов), далее уже развивал мысль, объясняя чем обоснован выбор. Инструментальник со встроенными резисторами (G=5 с точностью 0.02%) был использован для предусиления и минимизации ошибки на самом первом этапе измерения, с помощью обычного усилителя не получилось бы достичь такой точности. Опорный источник - аналогично, когда

      2. В условии требуется именно согласовать выход с АЦП, т.е. готовое устройство с SPI/I2C (других я не нашел) на выходе использовать не выйдет: 

      Разработать схему согласования сенсора и АЦП так, чтобы температуре 0 °С соответствовало напряжение 0 В на входе АЦП, температуре 100 °С соответствовало 3 В


      1. ehitev
        16.02.2025 17:16

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

        Думаю это ограничение мощности самого датчика. Применял как-то PT100 в металлическом корпусе размером с одноваттный резистор и был удивлен, что его довольно легко сжечь, подав единицы вольт или небольшим током заметно исказить измеряемую температуру. Вот пример из первого попавшегося даташита: Self – heating of sensor caused by passing current is 0,4 K / mW. Recommended values of measuring current are: 0,3 to 1,0 mA for 100 Ω, 0,1 to 0,7 mA for 500 Ω, 0,1 to 0,3 mA for 1000 Ω.


      1. LinkToOS
        16.02.2025 17:16

        Я зацепился за условие: "Мощность, рассеиваемая на Pt1000, не должна превышать 1 мВт." Как на указатель того, что требуются действительно точные измерения.

        Это не имеет отношения к точности. Это стандартное требование, для исключения саморазогрева датчика. Типовой ток для pt1000 1 мА. Можно было не указывать в условиях задания.


      1. REPISOT
        16.02.2025 17:16

        готовое устройство с SPI/I2C (других я не нашел) на выходе использовать не выйдет

        Вот кстати, да. Был удивлен, что сходу не смог найти RTD-конвертер без встроенного АЦП.


    1. anovichkov Автор
      16.02.2025 17:16

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


      1. StpMA
        16.02.2025 17:16

        Вы когда источник отрицательного напряжения делали, какую пульсацию на выходе прикидывали? Синус 10кГц? А почему синус, там переключаются конденсаторы, форма должна быть сложной, с гармониками (рисунок 14 даташита).

        Если предполагается кабель и помехи вокруг, то полосу нужно резать не только на выходе, но и на входе инструментального усилителя. Желательно симметрично. В книжке " A Designer’s Guide to Instrumentation Amplifiers" есть глава "Reducing RFI Rectification Errors in In-Amp Circuits"


        1. anovichkov Автор
          16.02.2025 17:16

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

          Синус задал, чтобы не глубоко не уходить в теорию фильтрации. В любом случае емкости + линейный регулятор сгладят все ниже -2.3В. Также я не добавлял на схему конденсаторы по питанию к ОУ, которые в жизни будут присутствовать.

          За книгу благодарю, она у меня как раз на очереди


          1. StpMA
            16.02.2025 17:16

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

            Полоса пропускания схемы - 275кГц, видно, что запас по фазе маловат (около 20 градусов), т.е схема может быть не устойчива. Для увеличения запаса увеличим емкость на выходе дифференциального усилителя до 6.8нФ, результат следующий:

            У вас на схеме не видно, где находится точка (n015). Вы смотрите между генератором синуса v1 и входом АЦП? Разве тут имеет значение критерий устойчивости? У вас два отдельных каскада усиления. У них нет общей обратной связи.


  1. Superzoos
    16.02.2025 17:16

    Ваш подход к решению задачи впечатляет. Но в большинстве случаев это перебор)))


  1. Flammmable
    16.02.2025 17:16

    В описании вакансии:

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

    <...>

    Работали с языками описания аппаратуры (HDL)Умеете рассчитывать печатные антенны, проводить 3D-моделирование параметров антенн

    Надо больше таких вакансий )))) Например, допустим, на фронтэндера как-нибудь так:

    -Имели опыт работы с IMSL (International Mathematical and Statistical Library) на Фортране
    -Знаете на достаточном уровне SQL (можете написать иерархический запрос в СУБД Oracle, вспомнив синтаксис по памяти)
    -У вас есть портфолио коммерческих проектов на MS VB для Excel
    -Программировали микроконтроллеры на ядре 8051 на ассемблере


    1. Hlad
      16.02.2025 17:16

      А что, нынешние вакансии на фронтендера чем-то принципиально отличаются? Туда точно так же валят всё подряд.


    1. olartamonov
      16.02.2025 17:16

      А что не так? Старший инженер-электронщик в Я —  это потенциально техлид, а не копатель в альтиуме от забора до обеда.


    1. radtie
      16.02.2025 17:16

      • Прошел миссию на скутерах в BattleToads


  1. QwertyOFF
    16.02.2025 17:16

    Несколько лет назад коллега делал для Яндекса тестовое - лидар. Помню что там нужно было вгонять немалые токи в лазер и принимать отражение, кажется очень часто, что-то типа наносекундных импульсов фигурировало. Коллеге отказали, да и в Москву он не очень хотел ехать. Было бы интересно почитать разбор того задания, если кто-то из читающих сталкивался с ним.


    1. anovichkov Автор
      16.02.2025 17:16

      Далеко идти не надо, вот статья на Хабре



  1. dmitrystu
    16.02.2025 17:16

    Хм. В задании не вижу не требований по линейности, ни по термокомпенсации или компенсации сопротивления проводов. Посему всё решается одним недорогим операционником с Rail-to-Rail выходом и тремя резисторами. Если кто-то на тестовое задание по проектированию бумажного самолётика делает чертежи космического корабля, то это, конечно, здорово, но совершенно не нужно. PS. И да, а вы уверены, применяя двуполярное питание, что ADC переживёт появление отрицательного напряжения на входе?


    1. anovichkov Автор
      16.02.2025 17:16

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

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


    1. olartamonov
      16.02.2025 17:16

      Посему всё решается одним недорогим операционником с Rail-to-Rail выходом

      Вот на очном собеседовании и начнём с обсуждения, как именно вы на RRIO ОУ на выходе 0 В получаете...


      1. dmitrystu
        16.02.2025 17:16

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


        1. olartamonov
          16.02.2025 17:16

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

          Спорить с собеседующим о том, не надо ли пересмотреть данные им вам условия задачи, чтобы вам было проще её решать — плохая примета.


          1. RTFM13
            16.02.2025 17:16

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

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

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

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


            1. olartamonov
              16.02.2025 17:16

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

              Вы — не осознаёте.


              1. RTFM13
                16.02.2025 17:16

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

                По этому ты должен выдавать ему температуру строго в милливольтах с кратным 10 коэффициентами. Чтобы он выставил Vref=1.024 И пульнул данные с ацп сразу в индикатор одной командой (привет разработчикам индикатора).

                Странно, что в задании нет второго выхода в фаренгейтах с такими же вводными.


                1. StpMA
                  16.02.2025 17:16

                  Предлагаю совместить идеи. Не будем делать отрицательное питание, а индикацию сделаем в кельвинах!


                  1. RTFM13
                    16.02.2025 17:16

                    Жаль только LM335 уже изобрели. Но всегда можно сделать на рассыпухе.


                1. olartamonov
                  16.02.2025 17:16

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


          1. StpMA
            16.02.2025 17:16

            В условиях задачи пропущены некоторые "малозначимые" детали. Точность и быстродействие (частота дискретизации). Которые могут кардинально поменять схемотехнику.


            1. olartamonov
              16.02.2025 17:16

              Собеседующему, возможно, хочется послушать, осознаёте ли вы отсутствие данных деталей (и каких именно, и как оцениваете их влияние на решение), а также дадите ли всё-таки ответ в рамках некоторых разумных допущений или придёте с «ну нет, я такую задачу решать не буду, тут недостаточно данных!» (и такие случаи бывают).


  1. nikolz
    16.02.2025 17:16

    Сенсор температуры на основе Pt1000, где Rt = 1000 Ом при 0 °С, Rt = 1385 Ом при 100 °С. АЦП с входным диапазоном 0–3 В и эквивалентным входным сопротивлением не более 10 кОм.

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

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


  1. CitizenOfDreams
    16.02.2025 17:16

    А потом, блин, в реальных приборах видишь такие "тестовые задания". Вроде контроллера заряда одной банки Li-Ion внутри отвертки Bosch - 12 транзисторов, 21 резистор и 7 диодов. Вместо одной микросхемы размером пять миллиметров и ценой десять центов в розницу.

    Скрытый текст


    1. DvoiNic
      16.02.2025 17:16

      12 транзисторов, 21 резистор и 7 диодов. Вместо одной микросхемы размером пять миллиметров и ценой десять центов в розницу.

      "ящик противогазов еще искать надо, а вентилятор у меня с прошлого проекта оставался..."© (точнее, в данном случае, наоборот - "ящик противогазов был, а вентилятор надо покупать")


    1. Mikhail_eng
      16.02.2025 17:16

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


  1. JollyRoger000
    16.02.2025 17:16

    Почему сразу не поставить 16-24 разрядный сигма-дельта ацп, например AD7794, у него и источник тока встроенный есть и 6 каналов на борту и SPI на выходе.


    1. vanxant
      16.02.2025 17:16

      ... и цена раза в два ниже вот этого вот


  1. StpMA
    16.02.2025 17:16

    Если в системе однополярное питание, то инженер должен объяснить программистам, что "ноль" у них теперь будет при 50мВ.


    1. olartamonov
      16.02.2025 17:16

      Это, конечно, не так.


      1. StpMA
        16.02.2025 17:16

        Что-то я сомневаюсь, что схемы с однополярным питанием смогут обеспечить достаточную точность: высокую разрядность, линейность, температурную стабильность во всем диапазоне. Обязательно что-то вылезет. Для примера возьмем даташит на жирный техасовский ΔΣ АЦП 24 бита. Без PGA измеряет от 0В. Но с PGA минус по 100-200мВ сверху и снизу. Как же так? Не осилили?


        1. olartamonov
          16.02.2025 17:16

          Схемы с чистым однополярным питанием не смогут работать от нуля уже на уровне первого же ОУ. RRIO ОУ — они не совсем RRIO.

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

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


          1. StpMA
            16.02.2025 17:16

            Вы восприняли мой ответ как "это не наше, это программистов". А я говорю, что "к людЯм надо помягче и на вопросы смотреть шЫрше". Вычитание "нуля" значительно упростит и удешевит схему. Широкий выбор операционников. Можно использовать любые встроенные буферы в АЦП (иногда нужно). В коде, вполне вероятно, так или иначе, будет калибровка смещения и амплитуды. Т.е. для программы это бесплатно. Любой генератор отрицательного напряжения - усложнение, удорожание и потенциальный источник шума. А что будете делать когда прижмет импортозамещение? Техлиду об этом думать не нужно?


            1. olartamonov
              16.02.2025 17:16

              Дословная формулировка у вас была: «инженер должен объяснить программистам».

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

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


    1. RTFM13
      16.02.2025 17:16

      Если прям очень надо не смещенный ноль в цифре, заводим его на Vref- и готово. Это по сравнению с двуполярным питанием в миллион раз проще.

      Вообще я или пропустил, или Vref незаслужено обделены вниманием и в статье и в коментах. На резистивных датчиках это вопрос №1.


      1. StpMA
        16.02.2025 17:16

        Не обделена, но не состыкована со всех схемой. Если используется мост, то нужно было не брать прецизионный источник с двумя (т.е. одинаковыми) выходами, а запитать мост от одного источника. В некоторых случаях нужно было питать мост через усилитель от Vref  АЦП. Но тут зависит от того, что стабильней.


  1. AlexanderS
    16.02.2025 17:16

    Отличная работа!

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


    1. Hlad
      16.02.2025 17:16

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


    1. olartamonov
      16.02.2025 17:16

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


  1. aabzel
    16.02.2025 17:16

    Опять эти крохоборы из яндекса суют задачи из производства кандидатам при найме


  1. vashwind
    16.02.2025 17:16

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


    1. olartamonov
      16.02.2025 17:16

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

      У нас (Алиса и УУ) на электронщиков тестовых заданий, например, нет.

      а статья от Яндекса, где приведено задание и РЕШЕНИЕ, верное с точки зрения Яндекса

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

      Ну вот как выше в комментах с RRIO или аналоговым сигналом на сорок метров. Мало того, что человек не знает, он и не задумывается, что он не знает.


  1. shkal
    16.02.2025 17:16

    А сколько примернт денег в яндексе платят человеку на такой позиции?


  1. Gizma_2000
    16.02.2025 17:16

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


  1. LinkToOS
    16.02.2025 17:16

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

    Хотя задание вполне заслуживает критики. Во-первых можно проще сформулировать - "Разработать нормирующий усилитель (или преобразователь температура-напряжение) на основе датчика pt1000. Диапазону температур 0-100С должен соответствовать диапазон напряжений 0-3В. Можно дополнительно указать требование по типу подключения датчика - 3х или 4х проводная. В задании много ненужных цифр, так как используется стандартный датчик.
    Во-вторых "АЦП с эквивалентным входным сопротивлением не более 10 кОм" - что значить "не более"? От нуля до 10к что-ли?

    Хорошим кандидатом на эту роль является AD8223

    Продукция AD является подсанкционной. Устройство нужно разрабатывать на доступных компонентах.


    1. anovichkov Автор
      16.02.2025 17:16

      А в чем в данном случае «велосипедность»?

      Блоки схемы абсолютно стандартные, основная идея - максимальная точность схемы.

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


    1. Gryphon88
      16.02.2025 17:16

      Без всяких подколок: что бы вы взяли из каталога Runic или 3Peak на замену упомянутым в статье компонентам?


    1. olartamonov
      16.02.2025 17:16

      Продукция AD является подсанкционной. Устройство нужно разрабатывать на доступных компонентах

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

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

      А от того, что вы его разработаете на компонентах, доступных в Чип-и-дипе, никому не будет ни горячо, ни холодно. Хотя нет: собеседующий может запросто зацепиться взглядом за «на доступных компонентах», и начать вас разбирать на запчасти вопросами про то, как именно вы доступность определяете.


  1. LennyB
    16.02.2025 17:16

    В схеме не хватает колонки с Алисой.


  1. firehacker
    16.02.2025 17:16

    Не так давно реверс-инженирил плату теплового счётчика (тепловычислителя), кои уже больше 20 лет трудятся в разных уголках СНГ.

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

    Фрагмент схемы

    АЦП и обвязка измерительных цепей:

    Термосопротивления подключаются к X7 и X8,
    Термосопротивления подключаются к X7 и X8,

    Формирователь напряжения Vcmc:

    Так вот, с высоты опыта реверсинга могу сказать:

    1. Выбор 4-х проводной схемы aka «схема Кельвина» — это вообще не вопрос. Нет ни одной разумной причины обсуждать иные подходы. Да и выпускаемые промышленностью платиновые термосопротивления тоже заточены под эту схему.

    2. Нет в промышленном приборе никаких токовых зеркал на рассыпухе и никаких ОУ. Есть высокоточный многоканальный АЦП, есть линейный стаб и токовый шунт (прецизионный). Всё остальное тепловычислитель делает программно.


  1. dronnet1
    16.02.2025 17:16

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

    В п.2 у вас явно ошибка, если я все верно понял. Почему у провода будет такое огромное сопротивление? Какое должно быть сечение провода чтобы при общей длине 4 метра, иметь сопротивление 2,2 Ом? Вроде бы как 0,033 мм2. Вы этот провод себе представляете? Почему тогда не 0,00000001 мм2 ?

    Судя по заданию достаточно вот такой схемы,  от пользователя Sergey-Ufa https://forum.cxem.net/index.php?/topic/149877-операционный-усилитель-для-терморезистора/

    "PT1000 BКласс точности: ± 0,3% " Как вы понимаете, искать какие-то супер схемы и заниматься околонаучными вычислениями смысла не имеет.

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


    1. anovichkov Автор
      16.02.2025 17:16

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

      Возможно мы говорим о разных датчиках, но вот пример, на который можно ориентироваться: https://www.chipdip.ru/product0/9001368506 Точность 0.1%, сечение провода на всякий случай брал равное ножкам датчика, в любом случае его можно подстроить, для этого предусмотрен резистор.


      1. dronnet1
        16.02.2025 17:16

        Понял. Всё равно прошу сильно не реагировать на мои мысли, они просто вот такие )) Задача в любом случае интересная.


  1. unname
    16.02.2025 17:16

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

    Удивлен так же самонадеянностью автора статьи, но он хоть имеет смелость, выставить все напоказ.

    Начну с критики как общей так и конкретной.

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

    2. Частично это следствие первого пункта но все же. Цена решения необоснованно завышена.

    3. Мы работаем с измерениями в аналоговой области, где хотябы попытки фильтрации и прочего? Ладно сложные заскоки по ЭМС, но элементарная фильтрация по питанию измерительной цепи?

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

    5. Схема получения отрицательного напряжения просто убила, сначала ставим древнейший преобразователь конденсаторный, потом стабилизируем его линейным стабилизатором, в наше то время? Ладно, вы прикинули падение напряжения на транзисторе регулятора, уверены в том что уложитесь в 0.7 вольта? На бипорлярнике?

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

    7. Я просто спрошу: где ООС ?

      Я долго могу дальше докапываться. скажу сразу, что схема не работоспособна хотябы по одной причине: Вы тянете, учитывая специфику компании, скорее всего или в серверном шкафу или еще, где в неблагоприятная обставновка ЭМС измерительную цепь сопротивлением в килоомы на расстояние 2 метра. Что вы там намеряете? На практике в серверном шкафу датчик влажности весьма известный и много применяемый с выходом по квадратной шине просто ложится в помехах, это блин цифровой сигнал по квадратной шине 5 вольт и весьма медленнйо скоростью передачи. А теперь представьте что тут будет.


  1. unname
    16.02.2025 17:16

    Что бы я поменял?

    Если пойти с конца:

    1. 21 век + минимальный запас на пульсации, зачем собирать линейый стабилизатор на рассыпухе? Маленький ldo в том же sot-23-5 или подобном корпусе стоит дешевле, чем все по отдельности + дает бОльшую фильтрацию и стабильность выходного напряжения. Хотя элементарно: 3В- расчетные якобы (при непонятно каком токе) 410 мв пик ту пик + падение на транзисторе, повторю, ну не получится там 2.3 вольта стабильных даже близко.

    2. Зачем вообще такая структура источника отрицательного напряжения? Нормальный dc/dc уже стабилизированный почему нельзя применить? И габариты меньше и тактовая выше мегагерца будет что по ЭМС все облегчит. И на плате меньше места займет. Ну если не умеешь на рассыпухе, ну поставь на край что из peak aimtec, trаcopower и китайских аналогов.

    3. А зачем вообще тут отрицательное напряжение? Принципиально дрейф нуля оно не отменяет совершенно. Нахрен весь этот узел. а просто выводим один из методов компенсации дрейфа.

    4. Я выше указал, такая высокоомная схема в принципе не работоспособна. Более того никто не говорил о изначальных требованиях каких-то завышенных по точности. Потому просто всю схему херим, мне даже лень копаться дальше. (если что это старое выражение от названия буквы Х в дореволюционном алфавите, похерить - зачеркнуть, поставить крест. )


  1. unname
    16.02.2025 17:16

    Далее третья часть, что бы я сам делал.

    В условиях задачи я бы просто максимально снизил выходное сопротивление цепи и соответственно нагрузку бы использовал низкоомную. Хороший вариант как писали выше уйти в стандартные в АСУТП 4-20 мА. Преобразователи напряжение-ток и ток-напряжение никого учить делать не надо? в схемах ставил бы обычный ширпотреб номиналы с 1 процентного ряда. Затем уже на разведенном устройстве взял бы по климатике поправки по всему диапазону рабочему, на этой основе построил бы интерполирующую кривую и всунул ее программисту, а еще заставил его вспомнить методы компенсации шумов. Ну и заставил бы калиброваться по температуре или внешнего датчика или вообще встроенного в микроконтроллер в момент прошивки.

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

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

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