Логарифмически разнесенные сопротивления с использованием переключателей

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

Есть ли способ получить логарифмически разнесенный набор сопротивлений?

Самый простой случай:

Если у вас есть 2 переключателя SPST, они могут находиться в 4 разных состояниях (выключено-выключено, включено-выключено, выключено-включено, включено-включено).

Есть ли способ соединить эти переключатели с (любым расположением) резисторами, чтобы общее сопротивление между двумя узлами в 4 состояниях было {1, 10, 100, 1000}? Другими словами, логарифмический реостат с цифровым управлением. Состояния не обязательно должны быть в каком-то определенном порядке.

Если это возможно, можно ли расширить его на большее количество переключателей (8 значений от 3 переключателей, 16 от 4 и т. д.)?

Я думаю, это будет забавная задача по кодированию: P
по какой причине нельзя было использовать подпороговый мосфет?
@bdegnan Есть и другие альтернативы, мне просто интересно это с теоретической точки зрения. Возможно ли это сделать? Вроде есть, но решения не нашел.
@endolith У меня было несколько полевых МОП-транзисторов с наклоном подпорога 100 мВ на десятилетие. Мы использовали их для логарифмической обратной связи, но вы должны были быть уверены, что вы насытились. Тот факт, что у нас есть 100 мВ на декаду, позволил нам сделать лестницу R2R, чтобы легко управлять воротами.
Как насчет делителя Кельвина-Варли? используется в прецизионных эталонах напряжения.
@WesleyLee Итак, я попробовал это. Настройте все 15 возможных мест размещения резисторов для 2 внешних клемм и 2 переключателей и оптимизируйте их значения. Он нашел решения для {1, 2, 3, 4}, но проработал 27 часов, ничего не найдя для {1, 10, 100, 1000}, поэтому я думаю, что это невозможно. Итак, следующий вопрос: вы можете получить 3 состояния с интервалом между журналами из 2 коммутаторов, но можете ли вы получить более 4 из 3 коммутаторов?
@endolith Как насчет 10 из 4 переключателей? Смотрите мой обновленный ответ.
@Neil_UK 10 из 4 - это здорово! Мне нужно изменить мою программу, чтобы попробовать такие вещи, как ваша строка резисторов, а не просто перебирать все возможные топологии резисторов.
@endolith привел в порядок мой ответ и проиллюстрировал те, которые работают.

Ответы (2)

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

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

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

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

Верхнее расположение обеспечивает следующие сквозные сопротивления для всех 4 комбинаций переключателей: 47 Ом, 100 Ом, 220 Ом, 470 Ом. Красивый бревно, а! Это даже соответствует выбору резистора E3.

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

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

17,2, 23,3, 32,3, 47,9, 67,0, 100,0, 149,2, 222,7, 332,4, 488,1

... которые имеют передаточное число от 1,36 до 1,49. За исключением первого, эти значения очень близки к серии E6: 22, 33, 47, 68, 100, 150, 220, 330, 470!

Это график на логарифмической оси сопротивлений.

введите описание изображения здесь

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

Вот один из примеров случайного запуска. Это позволяет случайный выбор для каждого резистора в диапазоне от 100 до 500 Ом.

введите описание изображения здесь

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

\изменить 2019\

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

схематический

смоделируйте эту схему

Каждое соединение идет на 4-миллиметровую розетку. Подключение к каждому резистору по очереди, очевидно, дает мне серию E3.

Последовательное подключение пар резисторов, например R4+R5 = 3,2 МОм (вместо 3,3 МОм). Остальные пары приблизительно соответствуют другим интерполяционным резисторам серии E6. 1, 1,47 (1,5), 2,2, 3,2 (3,3), 4,7, 6,9 (6,8).

Последовательное подключение четырех резисторов, например R4+R5+R6+R7 = 17,9 МОм (вместо 18 МОм). Остальные четверки дают примерно половину оставшихся интерполяционных резисторов в диапазоне E12.

Соединение трех резисторов последовательно, при этом средний закорочен перемычкой, например R4+R6 = 5,7 МОм (вместо 5,6 МОм). Другие «разнесенные пары» примерно соответствуют другим оставшимся интерполяционным резисторам в диапазоне E12.

/изменить 2019\

\изменить 2020\

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

Мое решение с 4 переключателями и 5 резисторами обеспечивает диапазон 28:1 с соотношением между ступенями 1,5:1. Это соотношение означает, что два из них можно сложить вместе, чтобы получить диапазон 1000: 1, с двумя дополнительными переключателями или одним переключателем c/o. Итак, теперь у нас есть решение с 9 коммутаторами для 1000:1. Однако не очевидно, как управлять переключателями для любого заданного значения сопротивления, поэтому управление uC почти обязательно.

Есть ли другие лучшие способы получить 1000:1 в 9 переключателях с аналогичным размером шага 1,5:1? Да это так. Рассмотрим последовательную цепочку, как я предлагал в 2019 году, 10, 22, 47, 100, 220, 470, 1000, 2200, 4700, но теперь каждая с перемычкой накоротко. Любой разомкнутый переключатель, конечно, дает вам одно из значений резистора серии E3. Любые два соседних переключателя в разомкнутом состоянии дают другие номиналы резисторов E6 с межступенчатым отношением 1,5:1. Очевидно, как расширить ряд на более широкий диапазон. Если вы не заинтересованы в длинной последовательной цепочке переключателей (слишком много ненадежных контактов переключателя последовательно), тогда все параллельное также будет работать и даст вам те же отношения.

Есть ли еще лучший способ получить интерполяцию в диапазоне 1000: 1? Давайте перейдем к 10 переключателям, а не к 9, не такое уж большое увеличение. Соотношения резисторов E3 были индивидуально 2,2: 1, что означало, что были некоторые значения сопротивления, которые нельзя было сгенерировать даже с произвольными комбинациями переключателей. Однако с 10 переключателями мы можем покрыть диапазон 1000:1 с соотношением 1,995:1, что очень близко к двоичному. Истинный двоичный код даст нам 1024:1, что лишь немного отличается от хороших степеней 10. Это означает, что мы можем сгенерировать любое желаемое значение сопротивления в пределах очевидного допуска. Тот факт, что соотношение немного меньше 2:1, означает, что если бы это устройство использовалось в качестве АЦП, коды бы отсутствовали. Для ЦАП это не имеет значения, некоторые сопротивления будут иметь более одного уникального способа их создания. Однако,

Этот ЦАП может использовать резисторы, такие как 1, 2, 4, 8, 16, 32, 63, 125, 250, 500, чтобы упростить добавление. Ошибка в 2,4% поглощается парой шагов посередине. Ошибка от двоичного кода ниже разрешения даже для 5 смежных битов, используемых для создания значения сопротивления, что дает нам погрешность в пару процентов от любого значения, которое мы указываем, в пределах диапазона ЦАП.

В качестве последовательной цепочки с закорачивающими выключателями довольно легко выполнить арифметические действия в уме, чтобы выбрать конкретное значение сопротивления. Параллельное расположение было бы сложнее. Это может помочь пометить переключатели проводимостью, например, 0,001, 0,002 ... 0,25, 0,5, которые добавляются по мере замыкания переключателей, поэтому нам нужно сделать только одно преобразование нашего целевого сопротивления в проводимость.

/изменить 2020\

Да, вы можете разместить свой код где-нибудь?
@endolith Найдите пользователя NeilT-UK (обратите внимание на дополнительную букву) на github, это репозиторий с очевидным названием. Это немного беспорядок, поэтому я извиняюсь, я инженер-электронщик, который также программирует, а не программист. Моя конкретная конфигурация коммутатора жестко встроена в код, ее необходимо переписать, чтобы принять другие.
У вас все еще есть этот код Python? Я хотел бы взглянуть на это. Я одержим идеей выяснить, как заставить работать переключаемый бревенчатый горшок.
@endolith добавил немного больше, связанного с моим ответом
@endolith Есть и другие люди. Я наткнулся на эту статью сегодня в Electronic Design. Он получает соотношение 8:1 только с 5 резисторами и 4 переключателями с самым большим передаточным отношением 1,5:1, в то время как я получаю соотношение 28:1 с 5 резисторами и 4 переключателями одностороннего действия и самым большим передаточным отношением 1,49:1. Думаю, я выиграю по трем пунктам!
@endolith Я начал размышлять о том, чтобы отправить статью в Electronic Design в этом духе, поэтому немного больше подумал о приложении. Небольшой общий коэффициент не слишком полезен, причудливые добавления резисторов не слишком полезны. Нам нужно чуть больше оборудования, чтобы сделать что-то гораздо более удобное, легко расширяемое до произвольно широкого диапазона, возможно, не требующее управления uC, и это бинарная (или близкая к ней) лестница переключателей, которую это должно было заменить в первую очередь. Вздох!
Я всегда хотел, чтобы он управлялся мкК

В двух клеммах только с двоичным возбуждением (включено или выключено) причина, по которой лестница R, 2R, 4R, 8R работает для получения «всех возможных значений», заключается в том, что система счисления резисторов соответствует системе счисления возбуждения.

Итак, у вас есть 0 при всех замкнутых переключателях, 1 при разомкнутом первом, 2 при разомкнутом втором, 3 при разомкнутом первом и втором. И т. д., если хотите.

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

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Что позволяет вам также делать другие странные значения, но не простые «кратные», поскольку система возбуждения численно не соответствует системе вывода и, следовательно, по своей сути требует нелинейных элементов, если вы хотите убедиться, что 2 двоичных входа делают ( только) 4 желаемых выхода.