Я ищу деталь, которая позволяет пользователю часто менять конфигурацию. Сейчас я использую DIP-переключатель SMD, подключенный к расширителю ввода / вывода I2C.
Что меня беспокоит, так это большой объем этих компонентов (DIP-переключатель в сочетании с IO-расширителем), а также довольно утомительный пользовательский интерфейс. Есть ли DIP-переключатели или что-то, что выполняет ту же функцию, с которой я могу общаться по цифровой шине, такой как I2C, для считывания ее состояния?
Я также открыт для совершенно разных подходов. Все, что мне нужно, это что-то, что может быть механически изменено на постоянной основе и допускает как минимум 64 различных состояния. Важно, чтобы конфигурация могла быть выполнена, когда цепь не включена, и обеспечивает визуальную обратную связь точной конфигурации пользователю. Единственный способ, при котором было бы нормально включить схему, - это если конфигурация и визуальная обратная связь автономны без необходимости управления микроконтроллером или SoC.
Вопрос несколько связан с этим вопросом 6 лет назад: замена DIP-переключателя
Изменить: В ответах есть несколько замечательных предложений, и я думаю, что оставляю этот вопрос без ответа, голосование сообщества должно решить, что полезно, а что нет. Если у вас такая же проблема, как у меня, просмотрите все ответы.
Ответы:
Вы можете использовать SIP-переключатель вместо DIP. Экономия в области платы даст вам место для вашего интерфейса I2C (или более простого интерфейса, такого как регистр сдвига с входной защелкой):
На рисунке показано горизонтальное положение, но на самом деле оно монтируется вертикально.
источник
"DIP-переключатель
Прежде всего, DIP-переключатель не должен быть большим. Вот 6-битный SMD-переключатель с J-образными штифтами и шагом 1,27 мм:
Потенциометр
Если вы отчаянно нуждаетесь в уменьшении занимаемой площади и можете немного причинить неудобства пользователю, вы можете использовать потенциометр, подключенный к аналого-цифровому преобразователю. Так как вам нужно 64 настройки, 12-разрядный преобразователь должен иметь более чем достаточный запас разрешения для различения шагов, учитывая некоторую электрическую и программную фильтрацию и пороговое значение. Вот решение 2 на 2 мм:
Однако я никогда не видел аналогового потенциометра с 64 физическими задержками. Это означает, что у вас не будет надежной тактической обратной связи для пользователя при настройке устройства. Также трудно надежно найти правильную настройку при загрузке, поскольку ее можно оставить справа на пороге между двумя настройками - я сохраню предыдущие настройки в EEPROM, и если потенциометр достаточно близок к сохраненному значению при загрузке, я посчитал бы их равными.
Кроме того, я бы, вероятно, не использовал этот триммер 2 на 2 мм, но существуют тысячи различных триммеров.
источник
У вас есть запасной АЦП?
Если у вас есть запасной 8-разрядный АЦП на соседнем микроконтроллере, вы, вероятно, могли бы отказаться от расширителя ввода-вывода в пользу сети резисторов - либо R-2R, либо бинарную взвешенную лестницу. Это закодирует положение переключателя как аналоговый уровень. Лестницы с резисторами доступны в очень маленьких упаковках, но я не знаю, получите ли вы одну меньшую, чем ваш расширитель I2C.
Сколько линий общего назначения у вас есть?
Если вы можете обойтись с меньшим количеством линий ввода-вывода, может быть, вы можете отказаться от расширителя ввода-вывода и использовать те, которые у вас есть? Вы можете мультиплексировать коммутаторы менее чем на шесть линий ввода-вывода. На самом деле, если у вас есть место для 3-х диодов, а ваш микроконтроллер имеет трехсторонние контакты, то вы можете управлять всего тремя контактами.
Могут ли ваши пользователи управлять чем-то немного техническим?
Если ваши пользователи могут следовать инструкциям, а конфигурация меняется очень редко, у вас могут быть открытые клеммы, где они могут вставить резистор. Вы бы измеряли резистор с помощью АЦП или измеряя постоянную времени, которую он составляет по отношению к конденсатору. Вы должны быть в состоянии различить 64 значения резистора, что может быть сложно с последним подходом. И, конечно, ваши пользователи должны иметь под рукой правильные значения резисторов / стили корпуса.
источник
Один или несколько кодовых поворотных переключателей - это то, что вы ищете.
Теоретически, перемычки предлагают больше конфигураций, когда вам требуется несколько сотен вариантов, потому что пользователи могут закорачивать любое их количество в разных конфигурациях, добавлять резисторы, конденсаторы, диоды и т. Д., Но это очень технически для пользователей и для расшифровки платы!
источник
NFC NTAG от NXP + смартфон. Это в основном I2C EEPROM, который также может считываться и записываться по NFC без энергопотребления системы.
источник
Здесь много отличных вариантов! Еще один немного неясный: используйте ИК-приемник, а затем используйте пульт ДУ телевизора или компьютер, чтобы пролистать настройки. Вот как это делают огни RGB.
источник
При изучении этого я получил рекомендацию для поворотных кодовых переключателей. Их занимаемая площадь сравнима с немного эквивалентным DIP-переключателем с шагом 1,27 мм. Хотя, на мой взгляд, они предлагают значительно более качественные пользовательские интерфейсы по сравнению с DIP / SIP-коммутаторами.
Вместо того, чтобы преобразовывать десятичное или шестнадцатеричное число в двоичное и переворачивать тонну маленьких переключателей, вы можете просто повернуть один или два из этих поворотных переключателей и работать с шестнадцатеричными числами. Гораздо проще сказать пользователю «войти» в E6, чем дать ему указание переключать множество переключателей в определенном порядке.
источник
Другим подходом может быть поворотный энкодер, EEPROM и 6 маленьких светодиодов.
Состояние сохраняется в EEPROM, а светодиоды показывают текущий выбранный режим.
Поворот энкодера переключит режимы.
Вероятно, также не экономит много места - ваш типичный энкодер имеет 6-миллиметровый вал, а затем вам нужно место и для светодиодов.
Просто использование одного поворотного переключателя не выглядит многообещающим. С 64 позициями вы получите чуть менее 6 ° на позицию, чувствуя, что или маркировка станет трудной.
Просто прочитайте свой комментарий @Trevors answer, так что такой подход также бесполезен.
источник
Три варианта
Аналог. Регулируемый делитель напряжения. Пользователь устанавливает свои собственные стандартные резисторы диапазона 5%, чтобы установить значение.
PWM. Оптоизолированная схема типа ШИМ или RC с 64 ступенями, которые читает ваше устройство. Они могут получать питание отдельно или от одного и того же источника, но, поскольку он оптоизолирован, ваше устройство не будет включено. Вы можете отключить схему ШИМ после загрузки.
Digital. Цифровой потенциометр с кнопочным управлением. Опять же, схема может получать питание независимо от вашего устройства.
источник
Энкодеры Они варьируются от 0 до 9, являются наращиваемыми и имеют двоичные выходы:
источник
Вы всегда можете использовать I2C или другой интерфейс, например USB, и позволить пользователю подключить свой телефон с помощью специального приложения, которое позволяет вам настроить некоторый внутренний адрес EEPROM.
Однако использование приложения для телефона может быть довольно проблематичным. Вам необходимо будет поддерживать приложение и быть в курсе новейших технологий, а также поддерживать многих поставщиков телефонов.
Или вы можете поставить специальный «Dongle», который включает в себя, что позволяет вам сделать подобное.
Но я сомневаюсь, что это сэкономит вам много места.
Если у вас есть другие пользовательские вводы, скажем, две или три кнопки и какой-то индикатор, также возможно с помощью соответствующего пользовательского ввода на кнопках (время удержания и т. Д.) Перевести устройство в режим программирования и настроить его. сюда. То же самое вы видите на бытовых приборах, таких как термостаты, умягчители воды, банки и т.д.
Вы можете сделать чертовски много с двумя или тремя кнопками и светодиодом.
Если его необходимо настроить, когда он не подключен к сети, вы в значительной степени застряли с переключателями или перемычками.
источник