Сегодня в очередной раз наткнулся на вакансию старшего инженера - схемотехника в Яндекс. Решил, что это знак и настало время разобрать их тестовое задание. Звучит оно следующим образом:
Есть:
Сенсор температуры на основе 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мВ:

Таким образом для 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, ее внутренняя схема:

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

Выберем частоту переключения равной 10кГц, конденсатор Cosc в таком случае не понадобится. Емкость С1 = С2 выберем равной 120мкФ (один танталовый 293D107X96R3B2TE3 и два керамических по 10мкФ). Рассчитаем пульсации при таких условиях
Vripple = 1 / (2 * fpump * C2) = 410мВ
Много? А давайте посмотрим на PSRR (коэффициент ослабления шумов по питанию) усилителей, для которых предназначается это питание. Вот, например график для отрицательной шины AD8223. Итого наши 410мВ при ослаблении в 90дБ превратятся в 13мкВ.

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

Однако эти усилители могут быть заменены на аналоги (например, 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нФ, результат следующий:

Отлично! Теперь запас 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:
High accuracy: 100 µA ±0.5%
Для нас 0.5% не считается высокой точностью. Также хочется обратить внимание, что R24 даже при точности 0.1% будет давать ошибку 0.1%*Gcl = 1.5%. К сожалению погрешности не обманешь....
Попробуем самостоятельно построить источник тока с требуемой точностью. У нас остался один свободный операционный усилитель (у OPA2376 два усилителя в корпусе), давайте его применим. Также понадобится опорный источник напряжения, хорошо подойдет AD780BR с напряжением 2.5В и погрешностью 0.08%. Подключение возьмем из документации:

Для формирования 800мкА номинал токозадающих резисторов должен быть:
Rcs = (3.3В - 2.5В) / 800 мкА = 1кОм 0.1%
Схема будет выглядеть так:

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

6. Заключение
Мы рассмотрели несколько вариантов схемы со своими плюсами и минусами и выбрали наиболее подходящий вариант. В любом случае схеме понадобится регулировка, в этом помогут резисторы R2, R10. Кстати, все неуказанные точности элементов считаем некритичными и равными 5%.
Стоимость элементной базы без учета датчика варьируется в диапазоне 7-8тыс. рублей. Еще около 500-1000 будет стоить двухслойная печатная плата при хороших партиях.
Комментарии (125)
DustCn
16.02.2025 17:16Чет мне кажется что для обычного бытового датчика это перебор. А если нет, вопрос термокомпенсации не раскрыт.
anovichkov Автор
16.02.2025 17:16А что можно было бы добавить по вашему мнению?
В разделе трактования условий я указал, что лишь датчик расположен в зоне где температура варьируется от 0 до 100°С, считается, что вся остальная схема работает при комнатной температуре
Javian
16.02.2025 17:16Комнатная температура не стабильная - открыл окно проветрить и уже 15С будет.
Hlad
16.02.2025 17:16Для меди - строго пофиг. Ну добавит 0,5% к погрешности...
Goron_Dekar
16.02.2025 17:16А для резисторов, которые в мосту?
Hlad
16.02.2025 17:16Тоже.
На всякий случай напомню, что ТКС резисторов измеряется в первых сотнях PPM. То есть, изменение температуры на 10 градусов приведёт к изменению их сопротивления на 0,2-0,3%. Причём у всех в одну и ту же сторону.
Goron_Dekar
16.02.2025 17:16Вот если бы кандидат начал говорить про термокомпенсацию (а также оценку погрешности, вызванной температурными характеристиками компонентов и, как следствие, необходимости этой термокомпенсации) - тогда бы получил 146% баллов за это задание.
Это нормальная практика, давать задачи на собеседования, которые в теории способны раскрыть не только минимальный уровень кандидата, но и больше.
antonluba
16.02.2025 17:16Я так и не понял, почему нельзя для питания использовать двуполярный трансформаторный бп со стабилизаторами на необходимое напряжение.
Goron_Dekar
16.02.2025 17:16Теоритически или практически?
Практически использование низкочастотного трансформатора говорит о том, что автор такого решения ничего не смыслит ни в технологичности производства, ни в себестоимости, ни в эрогномике и энергоэффективности.
antonluba
16.02.2025 17:16В ТЗ об этом вообще ни слова
Goron_Dekar
16.02.2025 17:16Где вы тут увидели ТЗ?
Тут только задача. Вступительная задача для собеседования. Стартовая точка для поговорить. И поговрить о разработке электроники, судя по заданию, аналоговой.
antonluba
16.02.2025 17:16Тогда не надо ничего додумывать. Просто обозначить напряжение питания и все.
При моделировании использовать идеальные источники. Имхо
Gizma_2000
16.02.2025 17:16что за бред? Вы сами то хоть раз делали источник питания для прецизионных устройств, где надо нановольты, да пикоамперы, к примеру мерять ? В таких вещах иногда железный трансформатор, гораздо проще (дешевле) фильтруется и ЭМИ-совмещается, чем импульсные братья....
Goron_Dekar
16.02.2025 17:16Нет, нановольты не мерил, а в местах, где были пикоамперы БП был заранее, и не мой. Но всё равно позволю себе вам не поверить - линия 220V настолько шумная/грязная, что помехи, пролезающие оттуда через трансформатор во-первых значительно менее предсказуемые, а во-вторых гораздо больше по амплитуде, чем пролезающие через высокочастотный ИБП с грамотно сконструированным фильтром.
Я вообще для таких вот измерителей сеть питания, даже освещения на рабочем столе, рассматриваю как самую значимую точку возникновения помех.
shkal
16.02.2025 17:16Всë ровно наоборот, недорогой импульсный БП создаëт значительно больше помех и в широком спектре
Goron_Dekar
16.02.2025 17:16Недорогой импульсный БП создаёт огромное количество помех. Как вниз, для своего потребителя, так и вверх, по линии питания. И если бы низкочастотный трансформатор был хорошим методом их фильтрации было бы здорово, но увы, он фильтрует эти помехи плохо.
А так как наша питающая сеть просто кишмя кишит этими самыми дешевыми импульсными БП, то она очень грязная.
И поэтому, чтобы отфильтровать эти помехи на входе, у прецезионного современного оборудования ставят не дешевый блок питания на входе. А раз задача фильтровать ВЧ шум всё равно стоит, то смысл городить древний низкочастотный трансформатор с последующим громоздким выпрямителем и фильтром как на 50Hz, так и для соседних импульсников пропадает. Проще сразу захреначить недешевый импульсник и после отфильтровать как его собственный шум, так и шумы его менее качественных коллег.
StpMA
16.02.2025 17:16Скажу больше. В вашем же устройстве для питания вычислителя будет стоять импульсный преобразователь.
Gizma_2000
16.02.2025 17:16И..... дальше что? Вы хоть раз видели что бы в реально прецизионном устройстве питание было от одного гальванически связанного источника, измерительной и вычислительной части?
shkal
16.02.2025 17:16Давайте вы вместо абстрактных рассуждений посмотрите спектр помех на выходе любого более-менее приличного импульсного БП (mean well, например) и такого же по мощности стандартного трансформаторного БП со стабом на 317\337, и учтёте разницу PSRR на 100Гц и 20КГц (условно) любого ОУ или АЦП.
Goron_Dekar
16.02.2025 17:16А можно мы не будем обсуждать mean well в контексте измерительной аппаратуры? Вот вообще!
Я видел и лазал в масспектрометры, в измерительный каскад ЯМР спектрометров. И везде видел только импульсные БП, никогда не встречал трансформаторов. Это хай-энд серийно выпускаемых измерителей, хотя тут уже слово "серийно" не подходит - серии очень малы. Везде стоят блочки внешне очень напоминающие mean well, но внутри там визуально гораздо больше рассыпухи. Часто это Agilent (Keysight).
shkal
16.02.2025 17:16OK, возьмите импульсный того производителя, который вам нравится
Goron_Dekar
16.02.2025 17:16БП того производителя, который мне нравится и который используется в знакомых мне измерителях номинально на 500 ватт.
Можно я не буду городить схожий линейный БП с трансформатором?
Без нагрузки у импульсника шумов практически нет, так что измерение "вхолостую" тупо неинтересно.
shkal
16.02.2025 17:16Вот зачем обсуждать блок на 500 вт, кода речь о питании одного ацп и пары тройки ОУ?
Практически нет - это сколько? В дб от номинального напряжения. И с каким спектром?
Goron_Dekar
16.02.2025 17:16Блин, я вам толкую, что в современной хай-энд измерительной аппаратуре не применяют грёбаных трансформаторов, и апелирую к тому, что видел в продакшене своими глазами.
А в мне говорите, что можно применить, и будет работать.
Да, можно!
Да, будет работать. Я сам видел измерительную аппаратуру до 90-х годов выпуска, где шли именно по этому пути. Но это не парвильно и несовременно. Так не делают сейчас. И на собеседовании предлагать устаревший подход к решению тестовой задачи не стоит.
Gizma_2000
16.02.2025 17:16500Вт... и прецизионные измерение... угу... угу... продакшен... в аналоге есть "в производстве", ITшную туфту там и оставьте. (или вы путаете, по наивности, и 500 Вт, это так сказать Rail питание какое-нить, там 48В или 12В, которое в паре метров от приборов стоит, в шкафе там каком-нить правильно заземленном... а от него уже поближе к приборам весело стоят еще несколько "правильных" небольших ИИП, с малоемкостной гальво-развязкой, плавными фронтами и т.д. )
Если вы что не видите это не значит во первых, что этого нет. А во вторых судя по рассуждением из прецизионного вы максимум что видели это, как вы сказали, нутрянки Agilent, и наверно осциллоф - но там ИИП дай бог на 50 Вт будут, а то и 10-20Вт. И это тоже специфические ИИП с кошмарным КПД, как вы сказали "не современными" размерами...
Вообще дико странный подход применять "современно" / "не современно" / "не правильно" к законам физики... это вам не фреймворки... они не меняются каждый год )))
shkal
16.02.2025 17:16Я вам открою страшную тайну: в любом импульсном гальванически развязанном от сети БП есть "Грёбаный Трансформатор" (С) , только работает он на значительно более высокой частоте, поэтому маленький по сравнению с сетевым.
Никто в здравом уме не будет делать транформаторный БП с линейным стабилизатором на 500Вт из за веса, габаритов и рассеивемого тепла, а в данном случае на единицы ватт -вполне. И речь вообще говоря шла не об этом, а о вашем утверждении, что линейный трансформаторный блок питания имеет на выходе уровень помех значительно больше, чем импульсный (как из сети, так и собственных)
И уж до кучи, я по работе имею дело с неисправностями различных устройств, от обычных мониторов до модульных сетевых коммутаторов и бродкаст ТВ аппаратуры, 90% отказов - импульсные БП или вторичные преобразователи.
Gizma_2000
16.02.2025 17:16ну тогда к чему разговор то, раз не делали то? Помехи не пролезают, а имеют вполне понятные физические пути. Если вы не знакомы с конструкциями трансформаторов с менее чем пико-фарадными емкостными связями между первичкой вторичкой, многостадийными экранными обмотками, правильным экранированием и отводом емкостных помех. То говорить, что железный трансформатор хуже импульсного - довольно смешно... Вы просто не в теме. А я вот делал не раз и свои же ИИП и сетевые("трансформаторные") ИП в многозвенной фильтрацией и каскадированием линейный стабов с уменьшением шумов. и ЭМИ даже от хорошо спроектированного ИИП давятся/отводятся/экранируются гораздо сложнее и менее предсказуемо...
Goron_Dekar
16.02.2025 17:16Мне не понятны все пути помех. Если вам они понятны, то да, для вас я не в теме. Но, опять таки, боюсь, что тут как с крестами: чем больше с ними работаешь, тем больше убеждаешься, что ты их не знаешь.
shkal
16.02.2025 17:16Угу, о чём и речь. Транс на десяток ватт с разнесёнными первичкой -вторичкой будет иметь проходную ёмкость десяток пик за счёт некоторой потери магнитной связи, что некритично. Зато избавляемся от мощного источника импульсных помех прямо на плате с диапазоном в десятки МГц, которые летят во всё вокруг.
balmerdx
16.02.2025 17:16ICL7660 дешевле, чем трансформатор, занимает меньше места и даёт достаточно низкий уровень пульсаций. Т.е. вполне хороший вариант для двуполярного питания ОУ.
REPISOT
16.02.2025 17:16Сначала автор использовал источник тока в виде токового зеркала. Ок, подумал я, наверное, в задании есть ограничение, чтобы сделать все на дискретных элементах. Потом у нас появился даже не ОУ, а сразу инструментальник. Сомнительно, но окэй. А под конец - ИОН AD780.
Два вопроса:
Зачем надо было начинать с транзисторов? Это решение задания, или все же теория и ликбез?
Если все равно используются микросхемы (причем ни разу не простые ОУ, а ИОН и инструментальник), то почему не взять готовую микросхему для резистивных датчиков? У которой уже есть источник тока, возможность подключить 3 и 4-проводную схему, еще и термокомпенсация. И которая стоит дешевле 1к рублей.
SADKO
16.02.2025 17:16Ну, первое бывает нужно чтобы сэкономить на втором, но тогда где обоснуй и прикид по шуму :-)
anovichkov Автор
16.02.2025 17:16Основная цель была в разработке точной аналоговой части. Я зацепился за условие:
Мощность, рассеиваемая на Pt1000, не должна превышать 1 мВт.
Как на указатель того, что требуются действительно точные измерения. Безусловно в реальной жизни при требуемой небольшой точности городить все эти каскады не имеет смысла. И естественно можно было использовать один rail to rail операционник, но это было бы не так интересно. Касательно ваших вопросов:
Начинал с Зеркала тока, как с базовой схемы, которая не требует много элементов (всего 5 транзисторов SOT23 и 6 резисторов), далее уже развивал мысль, объясняя чем обоснован выбор. Инструментальник со встроенными резисторами (G=5 с точностью 0.02%) был использован для предусиления и минимизации ошибки на самом первом этапе измерения, с помощью обычного усилителя не получилось бы достичь такой точности. Опорный источник - аналогично, когда
В условии требуется именно согласовать выход с АЦП, т.е. готовое устройство с SPI/I2C (других я не нашел) на выходе использовать не выйдет:
Разработать схему согласования сенсора и АЦП так, чтобы температуре 0 °С соответствовало напряжение 0 В на входе АЦП, температуре 100 °С соответствовало 3 В
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 Ω.
LinkToOS
16.02.2025 17:16Я зацепился за условие: "Мощность, рассеиваемая на Pt1000, не должна превышать 1 мВт." Как на указатель того, что требуются действительно точные измерения.
Это не имеет отношения к точности. Это стандартное требование, для исключения саморазогрева датчика. Типовой ток для pt1000 1 мА. Можно было не указывать в условиях задания.
REPISOT
16.02.2025 17:16готовое устройство с SPI/I2C (других я не нашел) на выходе использовать не выйдет
Вот кстати, да. Был удивлен, что сходу не смог найти RTD-конвертер без встроенного АЦП.
anovichkov Автор
16.02.2025 17:16Допишу свою мысль по поводу опорного источника, которую обрезал по ошибке. Когда под конец решения выясняется, что слабым звеном оказываются транзисторы, принимается решение их менять. Для того чтобы понять это, потребовалось построить всю систему и оценить ее погрешность.
StpMA
16.02.2025 17:16Вы когда источник отрицательного напряжения делали, какую пульсацию на выходе прикидывали? Синус 10кГц? А почему синус, там переключаются конденсаторы, форма должна быть сложной, с гармониками (рисунок 14 даташита).
Если предполагается кабель и помехи вокруг, то полосу нужно резать не только на выходе, но и на входе инструментального усилителя. Желательно симметрично. В книжке " A Designer’s Guide to Instrumentation Amplifiers" есть глава "Reducing RFI Rectification Errors in In-Amp Circuits"
anovichkov Автор
16.02.2025 17:16Предполагал да, кстати задал большую частоту, нежели описал, в реальности 1кгц.
Синус задал, чтобы не глубоко не уходить в теорию фильтрации. В любом случае емкости + линейный регулятор сгладят все ниже -2.3В. Также я не добавлял на схему конденсаторы по питанию к ОУ, которые в жизни будут присутствовать.
За книгу благодарю, она у меня как раз на очереди
StpMA
16.02.2025 17:16Проведем AC - анализ, для этого используем источник напряжения V1 вместо R16. Подключим оба входа дифференциального усилителя к источнику. Взглянем на график Боде выходного каскада.
Полоса пропускания схемы - 275кГц, видно, что запас по фазе маловат (около 20 градусов), т.е схема может быть не устойчива. Для увеличения запаса увеличим емкость на выходе дифференциального усилителя до 6.8нФ, результат следующий:
У вас на схеме не видно, где находится точка (n015). Вы смотрите между генератором синуса v1 и входом АЦП? Разве тут имеет значение критерий устойчивости? У вас два отдельных каскада усиления. У них нет общей обратной связи.
Superzoos
16.02.2025 17:16Ваш подход к решению задачи впечатляет. Но в большинстве случаев это перебор)))
Flammmable
16.02.2025 17:16В описании вакансии:
Разрабатывали устройства захвата и передачи видеоданных, устройства с применением электроприводов (BLDC, шаговые двигатели и пр.), а также устройства на аккумуляторном питании, в том числе проектировали устройства заряда аккумуляторных батарей
<...>
Работали с языками описания аппаратуры (HDL)Умеете рассчитывать печатные антенны, проводить 3D-моделирование параметров антенн
Надо больше таких вакансий )))) Например, допустим, на фронтэндера как-нибудь так:
-Имели опыт работы с IMSL (International Mathematical and Statistical Library) на Фортране
-Знаете на достаточном уровне SQL (можете написать иерархический запрос в СУБД Oracle, вспомнив синтаксис по памяти)
-У вас есть портфолио коммерческих проектов на MS VB для Excel
-Программировали микроконтроллеры на ядре 8051 на ассемблереHlad
16.02.2025 17:16А что, нынешние вакансии на фронтендера чем-то принципиально отличаются? Туда точно так же валят всё подряд.
olartamonov
16.02.2025 17:16А что не так? Старший инженер-электронщик в Я — это потенциально техлид, а не копатель в альтиуме от забора до обеда.
QwertyOFF
16.02.2025 17:16Несколько лет назад коллега делал для Яндекса тестовое - лидар. Помню что там нужно было вгонять немалые токи в лазер и принимать отражение, кажется очень часто, что-то типа наносекундных импульсов фигурировало. Коллеге отказали, да и в Москву он не очень хотел ехать. Было бы интересно почитать разбор того задания, если кто-то из читающих сталкивался с ним.
dmitrystu
16.02.2025 17:16Хм. В задании не вижу не требований по линейности, ни по термокомпенсации или компенсации сопротивления проводов. Посему всё решается одним недорогим операционником с Rail-to-Rail выходом и тремя резисторами. Если кто-то на тестовое задание по проектированию бумажного самолётика делает чертежи космического корабля, то это, конечно, здорово, но совершенно не нужно. PS. И да, а вы уверены, применяя двуполярное питание, что ADC переживёт появление отрицательного напряжения на входе?
anovichkov Автор
16.02.2025 17:16Согласен, однако я использовал данную задачу для того, чтобы показать какие приемы можно использовать, чтобы добиться высокой точности. Давно хотел написать подобную статью, а тестовое от Яндекса удобно подходило под требования.
По поводу АЦП - диапазон температуры не предлагает уход ниже 0 вольт, если опускать этот момент, для входов АЦП потребуется защита, все верно. Если же напряжение уйдет в минус на пару милливольт с АЦП ничего не случится
olartamonov
16.02.2025 17:16Посему всё решается одним недорогим операционником с Rail-to-Rail выходом
Вот на очном собеседовании и начнём с обсуждения, как именно вы на RRIO ОУ на выходе 0 В получаете...
dmitrystu
16.02.2025 17:16А заодно обсудим и необходимость точного нуля на выходе в соответствии с разрешением ADC. Не вижу причин для спора. Для построения минималистичной реальной схемы не хватает данных. Подход "полностью условия неизвестны, поэтому на всякий случай предусмотрим всё" имеет право на существование, но может увести в совершенно дикие дали.
olartamonov
16.02.2025 17:16В условиях задачи вам уже дан АЦП с входом от 0 В и жёсткое требование обеспечить сигнал от 0 В. Вполне вероятно, что собеседующий хочет послушать, есть ли у вас в голове понимание связанных именно с этим условием проблем и подходов к их решению.
Спорить с собеседующим о том, не надо ли пересмотреть данные им вам условия задачи, чтобы вам было проще её решать — плохая примета.
RTFM13
16.02.2025 17:16По этомиу опыт собеседований и реальные задачи имеют мало общего. Но берут тех кто прошел собеседования. По этому в реальных поделках имеем такие странные решения.
Тут урезать шкалу снизу на 0,1В самое простое и качественное решение. Вся эта лабуда для получения чистого нуля на выходе только ухудшает параметры конечного девайса.
С другой стороны я однажды делал ацп для датчика с двумя дифференциирующими операционниками (первая и вторая производные) только потому, что программист не мог их в цифре посчитать. А не мог он посчитать потому, что рп сказал макетировать на "ардуинах", а на ардуине вылез джиттер таймера, а прикладной программист эти ваши регистры и прерывания в гробу видал. Вишенкой на торте было то, что датчик по природе цифровой (в том смысле, что в нём уже сигнал оцифрован и обработан цифрой) и на выходе имел ЦАП. А цифровой не купили потому что надо быстрей-быстрей, а его ждать надо. Удивительно, но это работало.
А в бигтехе (не только, но в основном) в соседнем отделе может сидеть просто мудак который будет тебе из-за этого сокращения шкалы год мозги полоскать. Вот на совместимость с этими мудаками и проверяют.
olartamonov
16.02.2025 17:16Нет. Вас проверяют на то, осознаёте ли вы, что у такого требования может быть много других причин, кроме «да это просто мудак в соседнем отделе, а мне виднее, я ж инженер, а не мудак какой-то!».
Вы — не осознаёте.
RTFM13
16.02.2025 17:16Нет, разумеется он не мудак, а просто у него высокая загрузка и плотный график в танчиках.
По этому ты должен выдавать ему температуру строго в милливольтах с кратным 10 коэффициентами. Чтобы он выставил Vref=1.024 И пульнул данные с ацп сразу в индикатор одной командой (привет разработчикам индикатора).
Странно, что в задании нет второго выхода в фаренгейтах с такими же вводными.
olartamonov
16.02.2025 17:16Ну в целом вы показали наглядный пример, как заваливают собеседования. «Я самый умный и лучше всех знаю, как надо делать» — рецепт, работающий без сбоев.
StpMA
16.02.2025 17:16В условиях задачи пропущены некоторые "малозначимые" детали. Точность и быстродействие (частота дискретизации). Которые могут кардинально поменять схемотехнику.
olartamonov
16.02.2025 17:16Собеседующему, возможно, хочется послушать, осознаёте ли вы отсутствие данных деталей (и каких именно, и как оцениваете их влияние на решение), а также дадите ли всё-таки ответ в рамках некоторых разумных допущений или придёте с «ну нет, я такую задачу решать не буду, тут недостаточно данных!» (и такие случаи бывают).
nikolz
16.02.2025 17:16Сенсор температуры на основе Pt1000, где Rt = 1000 Ом при 0 °С, Rt = 1385 Ом при 100 °С. АЦП с входным диапазоном 0–3 В и эквивалентным входным сопротивлением не более 10 кОм.
По-моему мнению Вы необоснованно усложнили решение. Если не ошибаюсь, то в задании не задана погрешность измерения, нет разрядности АЦП, что делает бессмысленным расчет влияния длины проводов, колебания температуры, стабильности источников питания и т д. Поэтому решение должно быть максимально простое . А всеми влияниями мы пренебрегаем.
Решение может быть либо в виде пассивного делителя напряжения с компенсацией нуля, либо тоже самое, но на основе активного элемента( ОУ или транзистора).
CitizenOfDreams
16.02.2025 17:16А потом, блин, в реальных приборах видишь такие "тестовые задания". Вроде контроллера заряда одной банки Li-Ion внутри отвертки Bosch - 12 транзисторов, 21 резистор и 7 диодов. Вместо одной микросхемы размером пять миллиметров и ценой десять центов в розницу.
Скрытый текст
DvoiNic
16.02.2025 17:1612 транзисторов, 21 резистор и 7 диодов. Вместо одной микросхемы размером пять миллиметров и ценой десять центов в розницу.
"ящик противогазов еще искать надо, а вентилятор у меня с прошлого проекта оставался..."© (точнее, в данном случае, наоборот - "ящик противогазов был, а вентилятор надо покупать")
Mikhail_eng
16.02.2025 17:16Я тоже порой удивляюсь таким сложным решениям. При чём, приходилось чинить зарядку боша, которая отработала пару месяцев и деволт, который использовали около 20 раз.
Часто эта сложность с надёжностью слабо связаны. Прослеживается бОльшая связь с тем, что у разработчика в голове.
JollyRoger000
16.02.2025 17:16Почему сразу не поставить 16-24 разрядный сигма-дельта ацп, например AD7794, у него и источник тока встроенный есть и 6 каналов на борту и SPI на выходе.
StpMA
16.02.2025 17:16Если в системе однополярное питание, то инженер должен объяснить программистам, что "ноль" у них теперь будет при 50мВ.
olartamonov
16.02.2025 17:16Это, конечно, не так.
StpMA
16.02.2025 17:16Что-то я сомневаюсь, что схемы с однополярным питанием смогут обеспечить достаточную точность: высокую разрядность, линейность, температурную стабильность во всем диапазоне. Обязательно что-то вылезет. Для примера возьмем даташит на жирный техасовский ΔΣ АЦП 24 бита. Без PGA измеряет от 0В. Но с PGA минус по 100-200мВ сверху и снизу. Как же так? Не осилили?
olartamonov
16.02.2025 17:16Схемы с чистым однополярным питанием не смогут работать от нуля уже на уровне первого же ОУ. RRIO ОУ — они не совсем RRIO.
Но для таких случаев учёные изобрели LM7705, который позволяет чуть-чуть подвинуть диапазон питания конкретного ОУ, не заморачиваясь при этом ни с биполярным питанием всей схемы, ни с защитой входов следующего каскада от отрицательного напряжения.
В любом случае, ответ на собеседовании «не моя проблема, идите программистам объясняйте» — это сразу прямо жирный минус. На техлида кандидат с таким подходом уже не идёт.
StpMA
16.02.2025 17:16Вы восприняли мой ответ как "это не наше, это программистов". А я говорю, что "к людЯм надо помягче и на вопросы смотреть шЫрше". Вычитание "нуля" значительно упростит и удешевит схему. Широкий выбор операционников. Можно использовать любые встроенные буферы в АЦП (иногда нужно). В коде, вполне вероятно, так или иначе, будет калибровка смещения и амплитуды. Т.е. для программы это бесплатно. Любой генератор отрицательного напряжения - усложнение, удорожание и потенциальный источник шума. А что будете делать когда прижмет импортозамещение? Техлиду об этом думать не нужно?
olartamonov
16.02.2025 17:16Дословная формулировка у вас была: «инженер должен объяснить программистам».
Нет, не должен. Инженер должен оценить разные варианты реализации, их плюсы и минусы, а при необходимости обсудить и согласовать эти плюсы и минусы с другими направлениями (софт, конструкторы, логистика, фабрика, тестирование).
Более того, такая формулировка на собеседовании — это скорее всего красный флаг «скидывает проблемы на других, ставит себя априори выше разработчиков ПО».
RTFM13
16.02.2025 17:16Если прям очень надо не смещенный ноль в цифре, заводим его на Vref- и готово. Это по сравнению с двуполярным питанием в миллион раз проще.
Вообще я или пропустил, или Vref незаслужено обделены вниманием и в статье и в коментах. На резистивных датчиках это вопрос №1.
StpMA
16.02.2025 17:16Не обделена, но не состыкована со всех схемой. Если используется мост, то нужно было не брать прецизионный источник с двумя (т.е. одинаковыми) выходами, а запитать мост от одного источника. В некоторых случаях нужно было питать мост через усилитель от Vref АЦП. Но тут зависит от того, что стабильней.
AlexanderS
16.02.2025 17:16Отличная работа!
Комментаторам следует учесть, что это тестовое задание на старшего инженера. Автор выполнил его показав уровень своей компетенции, который он и продает на собеседовании. Скучным ардуиностроительством он будет заниматься уже при появлении экономических требований)
Hlad
16.02.2025 17:16Поправка: я ради интереса глянул вакансию, и не нашёл там ни слова про зарплату. А то, что там написано "старший инженер-схемотехник" - это просто слова. Я уже видел конторы, в которых прямо студентам-третьекурсникам дают должность "ведущий программист", лишь бы согласился работать за те копейки, которые там готовы платить.
olartamonov
16.02.2025 17:16О, экономические требования — это же наоборот самое весёлое. У авторов вакансии, впрочем, они мягонькие очень, а вот по соседству, где тиражи от нескольких сотен тысяч штук...
aabzel
16.02.2025 17:16Опять эти крохоборы из яндекса суют задачи из производства кандидатам при найме
vashwind
16.02.2025 17:16Вообще, была бы интересна не статья случайного Имярека про ЕГО видение, как проходить тестовое задания Яндекса, а статья от Яндекса, где приведено задание и РЕШЕНИЕ, верное с точки зрения Яндекса.
olartamonov
16.02.2025 17:16Я дежурно отмечу, что все рассказы о проведении собеседованиях в Яндексе релевантны только конкретному подразделению Яндекса.
У нас (Алиса и УУ) на электронщиков тестовых заданий, например, нет.
а статья от Яндекса, где приведено задание и РЕШЕНИЕ, верное с точки зрения Яндекса
Нет верного решения и вообще это не ради конкретного решения. Собеседующему интересен ход рассуждения, отдельные моменты для обсуждения подетальнее, а также попадание в типовые ловушки, демонстрирующие отсутствие базы в этой области при избытке самоуверенности.
Ну вот как выше в комментах с RRIO или аналоговым сигналом на сорок метров. Мало того, что человек не знает, он и не задумывается, что он не знает.
Gizma_2000
16.02.2025 17:16Задание конечно уровня детского сада, для тех кто реально прецизионными измерениями занимается. Оно для тех, кто особо этой темы не касался, что б хоть чуток увидеть насколько товарищ понимает, что там происходит в этом "аналоге".
LinkToOS
16.02.2025 17:16Из названия статьи ожидал разгромной критики тестового задания, с унижением кадровой службы Яндекса.
Оказалось изобретение велосипеда.
Хотя задание вполне заслуживает критики. Во-первых можно проще сформулировать - "Разработать нормирующий усилитель (или преобразователь температура-напряжение) на основе датчика pt1000. Диапазону температур 0-100С должен соответствовать диапазон напряжений 0-3В. Можно дополнительно указать требование по типу подключения датчика - 3х или 4х проводная. В задании много ненужных цифр, так как используется стандартный датчик.
Во-вторых "АЦП с эквивалентным входным сопротивлением не более 10 кОм" - что значить "не более"? От нуля до 10к что-ли?Хорошим кандидатом на эту роль является AD8223
Продукция AD является подсанкционной. Устройство нужно разрабатывать на доступных компонентах.
anovichkov Автор
16.02.2025 17:16А в чем в данном случае «велосипедность»?
Блоки схемы абсолютно стандартные, основная идея - максимальная точность схемы.
К сожалению, аналогов инструментальных усилителей с такой же полнотой описания параметров пока не находил. И AD8223 можно и на чип и дипе найти
Gryphon88
16.02.2025 17:16Без всяких подколок: что бы вы взяли из каталога Runic или 3Peak на замену упомянутым в статье компонентам?
olartamonov
16.02.2025 17:16Продукция AD является подсанкционной. Устройство нужно разрабатывать на доступных компонентах
Устройство нужно разрабатывать на компонентах, имеющихся в цепочке поставок фабрики, которая предполагается производителем данного устройства (модуля). Так как выполняющий задание доступа к фабрике не имеет, нет никакой проблемы в том, что он разработал его на любых не слишком экзотических («нууу, Maxim это выпускал до 1996-го, но ещё можно найти в продаже») компонентах.
Да и по DFM, организации производства, контролю качества и даже немного управлению проектами, если вы на техлида идёте, вас отдельно от схемотехники погоняют.
А от того, что вы его разработаете на компонентах, доступных в Чип-и-дипе, никому не будет ни горячо, ни холодно. Хотя нет: собеседующий может запросто зацепиться взглядом за «на доступных компонентах», и начать вас разбирать на запчасти вопросами про то, как именно вы доступность определяете.
firehacker
16.02.2025 17:16Не так давно реверс-инженирил плату теплового счётчика (тепловычислителя), кои уже больше 20 лет трудятся в разных уголках СНГ.
Надо понимать, что изделие не игрушечное, с метрологией у него всё окей, раз сертификат типа средства измерения есть и энергосбытовые компании его признают.
Фрагмент схемы
АЦП и обвязка измерительных цепей:
Термосопротивления подключаются к X7 и X8, Формирователь напряжения Vcmc:
Так вот, с высоты опыта реверсинга могу сказать:
Выбор 4-х проводной схемы aka «схема Кельвина» — это вообще не вопрос. Нет ни одной разумной причины обсуждать иные подходы. Да и выпускаемые промышленностью платиновые термосопротивления тоже заточены под эту схему.
Нет в промышленном приборе никаких токовых зеркал на рассыпухе и никаких ОУ. Есть высокоточный многоканальный АЦП, есть линейный стаб и токовый шунт (прецизионный). Всё остальное тепловычислитель делает программно.
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% " Как вы понимаете, искать какие-то супер схемы и заниматься околонаучными вычислениями смысла не имеет.
Автор, сильно прошу не ругаться, но не должны быть такими "старшие инженеры". Схемы должны быть просты и повторяемы. Никогда нельзя раздувать схему потому что так захотелось.
anovichkov Автор
16.02.2025 17:16Повторюсь, задача рассматривалась в академических целях, для демонстрации методик изменений с высокой точностью. Естественно, указанная вами схема первая пришла в голову, но высокую точность она не обеспечит.
Возможно мы говорим о разных датчиках, но вот пример, на который можно ориентироваться: https://www.chipdip.ru/product0/9001368506 Точность 0.1%, сечение провода на всякий случай брал равное ножкам датчика, в любом случае его можно подстроить, для этого предусмотрен резистор.
dronnet1
16.02.2025 17:16Понял. Всё равно прошу сильно не реагировать на мои мысли, они просто вот такие )) Задача в любом случае интересная.
unname
16.02.2025 17:16Доброго дня. Посмотрел. Честно, во первых удивлен заданием такой вроде бы серьезной компании. Сама принцип подхода к решению подобной задачи, заложенный в задании не совсем оптимален в нынешних условиях.
Удивлен так же самонадеянностью автора статьи, но он хоть имеет смелость, выставить все напоказ.
Начну с критики как общей так и конкретной.
Начнем с общего, вы застряли в элементной базе уже устаревшей в наших реалиях даже к началу кризиса электроники в ковидные времена, не говоря уже о санкциях. На месте ТС-а я бы тогда вообще не уходил в конкретные позиции а делал расчет в неких условных типовых элементах. смысл сейчас вообще доставать у примеру те же операционники от аналог девайсез для такой простой задачи???
Частично это следствие первого пункта но все же. Цена решения необоснованно завышена.
Мы работаем с измерениями в аналоговой области, где хотябы попытки фильтрации и прочего? Ладно сложные заскоки по ЭМС, но элементарная фильтрация по питанию измерительной цепи?
А с чего вы взяли, что опорное напряжение АЦП, 3 В, вообще совпадает с напряжением питания того же контроллера? Наоборот, в большинстве случаев в измерениях для ацп выделяется отдельное опорное напряжение особо точное и чистое и вам по лапкам на стучат только за попытку подключить туда что-то лишнее.
Схема получения отрицательного напряжения просто убила, сначала ставим древнейший преобразователь конденсаторный, потом стабилизируем его линейным стабилизатором, в наше то время? Ладно, вы прикинули падение напряжения на транзисторе регулятора, уверены в том что уложитесь в 0.7 вольта? На бипорлярнике?
Опять же вытекает из 5. Вы вообще токи просчитывали? Какие будут падения у преобразователя, а он древний конденсаторный, да и вообще по всей схеме?
-
Я просто спрошу: где ООС ?
Я долго могу дальше докапываться. скажу сразу, что схема не работоспособна хотябы по одной причине: Вы тянете, учитывая специфику компании, скорее всего или в серверном шкафу или еще, где в неблагоприятная обставновка ЭМС измерительную цепь сопротивлением в килоомы на расстояние 2 метра. Что вы там намеряете? На практике в серверном шкафу датчик влажности весьма известный и много применяемый с выходом по квадратной шине просто ложится в помехах, это блин цифровой сигнал по квадратной шине 5 вольт и весьма медленнйо скоростью передачи. А теперь представьте что тут будет.
unname
16.02.2025 17:16Что бы я поменял?
Если пойти с конца:
21 век + минимальный запас на пульсации, зачем собирать линейый стабилизатор на рассыпухе? Маленький ldo в том же sot-23-5 или подобном корпусе стоит дешевле, чем все по отдельности + дает бОльшую фильтрацию и стабильность выходного напряжения. Хотя элементарно: 3В- расчетные якобы (при непонятно каком токе) 410 мв пик ту пик + падение на транзисторе, повторю, ну не получится там 2.3 вольта стабильных даже близко.
Зачем вообще такая структура источника отрицательного напряжения? Нормальный dc/dc уже стабилизированный почему нельзя применить? И габариты меньше и тактовая выше мегагерца будет что по ЭМС все облегчит. И на плате меньше места займет. Ну если не умеешь на рассыпухе, ну поставь на край что из peak aimtec, trаcopower и китайских аналогов.
А зачем вообще тут отрицательное напряжение? Принципиально дрейф нуля оно не отменяет совершенно. Нахрен весь этот узел. а просто выводим один из методов компенсации дрейфа.
Я выше указал, такая высокоомная схема в принципе не работоспособна. Более того никто не говорил о изначальных требованиях каких-то завышенных по точности. Потому просто всю схему херим, мне даже лень копаться дальше. (если что это старое выражение от названия буквы Х в дореволюционном алфавите, похерить - зачеркнуть, поставить крест. )
unname
16.02.2025 17:16Далее третья часть, что бы я сам делал.
В условиях задачи я бы просто максимально снизил выходное сопротивление цепи и соответственно нагрузку бы использовал низкоомную. Хороший вариант как писали выше уйти в стандартные в АСУТП 4-20 мА. Преобразователи напряжение-ток и ток-напряжение никого учить делать не надо? в схемах ставил бы обычный ширпотреб номиналы с 1 процентного ряда. Затем уже на разведенном устройстве взял бы по климатике поправки по всему диапазону рабочему, на этой основе построил бы интерполирующую кривую и всунул ее программисту, а еще заставил его вспомнить методы компенсации шумов. Ну и заставил бы калиброваться по температуре или внешнего датчика или вообще встроенного в микроконтроллер в момент прошивки.
А если бы сам делал реальное устройство без таких странных тз, взял бы максимально дешевый микроконтроллер с вменяемым ацп и разместил бы его прямо возле датчика. на одной маленькой плате а далее гнал бы данные по цифровому интерфейсу, причем поднял бы напряжение притяжки если речь идет о квадратной шине, 1-wire и т.п. Ну а выше опять же калибровка и программная коррекция при необходимости.
Но вообще повторю, я удивлен самой задачей. Довелось шапочно общаться с представителями яндекса, когда занимался проектированием импортозамещающих устройств для ЦОД.
А ТС ну как сказать, знания какие-то есть. К себе бы я на фоне теперешнего контингента ищущих наверное взял, но максимум рядовым инженером с перспективой в ведущие в достаточно быстро, если сможет натаскаться.
Tirarex
А в чем смысл такого тестового если есть десятки-сотни готовых датчиков работающих по шинам типа i2c / 1wire итд, и за разработкой которых давно посидели инженеры.
Несомненно, задание интересное, но какие аспекты нанимаемого спеца оно должно раскрыть, если в общем итоге никто не будет это все городить в реальном устройстве вместо простого цифрового датчика которому в худшем случае надо конденсатор по питанию и резистор на пин данных.
Вопрос не к автору статьи а скорее к яндексу.
Ivanii
В аналоговой схемотехника каждый уровень знаний и опыта делает свои ошибки/изгалятельства.
GardenerX
Хороший коммент. Наверное применим для любого уровня компетенции в любой теме. К примеру в шахматах, если соберется компания, где все примерно рейтинга 1000 по chess.com, и будут обсуждать какую-нибудь позицию, то быстро придут к консенсусу как надо играть. Потом придет чел с рейтингом 2000 и скажет - ну и бред же несете господа, здесь все не так. Подтянутся еще 2000 и быстро придут к консенсусу, что надо играть по-другому. Потом придет чел с рейтингом 3000 и скажет - ну и бред же несете господа, здесь все не так. Подтянутся еще 3000 и придут к консенсусу, правду уже не быстро, понимают, что есть еще Магнус.
Я себя ощущаю в этой теме как примерно 1000 рейтинга, но догадываюсь, что придет какой-нибудь 2000 и отморозит что-нибудь в стиле - а с чего вы взяли, что на выходе нельзя получить чистый ноль без дополнительного отрицательного питания? Ну да, транзистор выходной в насыщении не дает нам ноль. Ну так не ставьте транзистор, поставьте резистор, статейку на эту тему почитайте "TI Precision Designs: Verified Design.
High-Side Voltage-to-Current (V-I) Converter"
shkal
Шахматистов с рейтингом 3000 не существует)) биологических.
GardenerX
Рейтинги разные бывают. В комменте явно указано - рейтинг по chess.com, не lichess.com, не FIDE rating.
anovichkov Автор
Как мне кажется, основная идея в том, чтобы кандидат подумал именно над аналоговой частью
Wesha
Над налоговой частью пусть бухгалтер думает! /sarcasm
CBET_TbMbI
Хотите сказать, что на тестовые задания надр давать задачи, которые пойдут в производство?
Как раз дать базовое задание разумнее. Про него многое мзвестно и можно проверить на бумаге.
igar_ok
В реальной жизни никто, конечно же, простой цифровой датчик вместо PT1000 не поставит. Скорее схемотехник поищет специализированный АЦП для резистивных датчиков. Ну а задание на то и тестовое, что бы раскрыть навыки схемотехника, а не навыки поиска по параметрам на mouser, digikey итд.
fizikdaos
Нормальное тестовое задание, на 20 минут. В условии никто не просил компенсировать провода, да и вообще делать схему точной. Там просили растянуть шкалу. Это делается в 4 резистора и один оу. И посчитать всякое для нее, но это тоже несложно.
Traveller0968
А попробуйте передать на некоторое расстояние (метров 50) чистый цифровой сигнал с этих датчиков в контроллер, в промышленных условиях, особенно если эта линия соприкасается с силовыми коммуникациями, а строить отдельные магистрали для слаботочки, это тоже тот еще квест + как ни крути если токовую петлю 4-20мА я могу передать, по "любому" проводу практически на "любое" расстояние, то в случае i2c / 1wire и даже RS-485, требования более кучерявые и в плане исполнения и в плане стоимости... :)
И еще один нюанс, так сказать вишенка на торте, точность этих интегральных датчиков не идет ни в какое сравнение с теми же самыми PT100/1000, это я даже не говорю про диапазоны температур которые нужно контролировать в промышлености от глубоких минусов, до сотен и даже тысяч градусов, где только термопары работают, а интегральные-цифровые, это -50С - +100C и всё! :)
venanen
Простейшая дифпара с дифференцированием сигнала на выходе, особенно с экраном, позволит передавать цифровой сигнал на любое расстояние, пока напряжение 0 и 1 не затухнет. А вот передать аналоговый сигнал с датчика на 40 метров - это уже из разряда "практически невозможно".
Traveller0968
Ну так то да, тока кто же передает сигнал сразу с датчика на 40 метров?, его сначала заводят в нормирующий преобразователь (может находится непосредственно в головке датчика или в паре метров от него в шкафу), который из него делает 4-20мА, а потом на любое расстояние, хоть на километр и потом я же не веду речь о промышленных датчиках и термопарах, я про интегральные датчики, где он совмещен вместе чипом, который дает готовый цифровой сигнал на выходе, вот вы этот сигнал без посредников, передайте на сколь значимое расстояние в условиях мощных индустриальных помех... :)
Хотя я видел что сигнал с термопары передают на самописец на метров 30, но там специальный термопарный провод и он не имеет такой гибкости как например тот же самый МКЭШ и полярность подключения к этому проводу нужно соблюдать и для разных термопар он разный и стоимость этого провода отнюдь не гуманная... :)
Экран это фактор удорожания и не всегда он поможет, если сигнал это вольты, а не ток! Можно конечно передать и вольты, но для этого нужно строить отдельную линию не соприкасающуюся с силовыми коммуникациями, к тому же прогружать ее на концах, что бы все таки в линии тёк хоть какой то значимый ток...
Muzzy0
Я работал с одной машиной. Там термопара и от неё кабель на нормализатор - максимум 2 метра. Но, неэкранированный и идёт в канале сов сем остальным (в частности, с кабелями шаговиков). Фильтруй, не фильтруй, всё равно получишь..
Traveller0968
Вы про эти 2 метра?
olartamonov
И что конкретно невозможного в 4-20 мА на 40 метров?
Muzzy0
Абсолютно ничего. Так же, как и на 100, и на 200 метров.
RTFM13
Под это описание подходит голая 485. Для описанных выше условий этого мало.
Muzzy0
Много ли вы лично имели дела с подобным цифровым (чуть не написал "цирковым) сигналом?
Во-первых, не особенно с экраном, а только с экраном. Во-вторых, весь мой практический опыт работы с промышленными объектами говорит, что подобный сигнал это 99% геморрой. В то время, как 4..20 мА - 0% геморроя.
smagluk
У токовой петли , тоже есть ограничение, при росте длинны проводов возрастает сопротивление проводов , а сопротивление датчика фиксировано, и точность падает. Плюс ещё температурные коэффициент учитывать в этом случае нужен.
Traveller0968
Не совсем понимаю, что значит точность падает в токовой петле 4-20мА? На сколько мы знаем, ток на любом участке цепи одинаковый, если нет утечек или замыканий, а сопротивление проводов компенсируется их толщиной, на 50 метров хватит и 0,35кв. а на км. можно заложить и 2,5кв. + повысить напряжение источника питания, но стоит учитывать что это просто провод, хоть МКЭШ, хоть банальный ШВВП, а вот для цифровой передачи, уже нужна или витуха, причем экранированая или специализированный кабель для этого предназначеный, но витуха все равно будет дешевле и прокладывать ее нужно отдельно... :)
Goron_Dekar
Вы говорите "в чём смысл решать тестовое задание"?
Тестовое задание оно не про практический смысл, оно про понимание уровня кандидата. И тут смысл очевиден, верно?
olartamonov
Да, тут в комментариях уже многие с «да мы просто цифровой датчик / RRIO / etc бахнем и всё готово» отсеялись с собеседования :)
Tirarex
Главное не переусердствовать, иначе кандидат начнет городить огромные бесполезные конструкции для аналоговых датчиков вливая в них кучу RND бюджета и меняя конечную стоимость устройства в большую сторону, вместо того что бы искать простые и оптимальные решения.
В роботах яндекса используются контроллеры моторов собственной разработки, чем VESC не угодил так и не понятно.
olartamonov
Переусложнение решения на ровном месте — тоже очевидный минус для собеседуемого.
Более того, между «не знаю ни теорию, ни практику» (а давайте вместо платины этой вашей цифровой датчик бахнем!) и «знаю много теории, но не практику» (а давайте тут в три этажа наворотим непонятно зачем!) нет какой-то принципиальной разницы: оба собеседуемых в первую очередь не понимают границ своих знаний, а значит, не смогут самостоятельно генерировать адекватные решения не только в рамках тестового задания, но и в реальной жизни.
anovichkov Автор
Увидел уже много ваших комментариев и стало интересно, насколько переусложненно решение задачи в посте? Какие есть недостатки описанного подхода?
olartamonov
Вполне нормальное решение, в нём нет очевидного безумия, предположения в процессе сделаны вполне разумные (я не говорю, что в реальной задаче они будут такими же — но это не реальная задача, поэтому здесь применяется принцип разумности). Подход интересный, изложение последовательное, есть о чём поговорить.
Несколько избыточно описание в том смысле, что собеседующему всё детальное изложение хода мысли не нужно. Но это на самом деле не проблема, я бы попросил сразу промотать к финальному решению и тезисно пояснить его по кусочкам — а вот если какой-то тезис меня заинтересует, можно уже копнуть поглубже по нему.
VT100
Цифровой датчик - надо калибровать. Аналоговый, теоретически, полностью работает на алгебраических уравнениях и может дать точность "искаропки".
Цифровой I²C - череповато выносить с платы прибора.
Постоянные времени. Pt термистор - может быть сколь угодно мал.