Часть 1, Часть 2, Часть 3. Страница на краудфандинге
В предыдущей части я сообщил о запуске кампании и спросил у вас мнения насчет того, как лучше поступить с формой корпуса устройства. Юзеры @sshmakov, @dizatorr, тогда предложили сделать небольшой выступ со стороны дисплея, что исключит возможность устойчивого положения «Щупом к верху». А @Ivnika и @Olegun предложил сделать защитное стекло дисплея полукруглым. Прорабатываем оба эти варианта.
Очевидным упущением для меня стало то, что я плохо объяснил куда подключается второй щуп. Такие вопросы возникли как у читателей, так и у бекеров CrowdSupply. Думаю два этих фото все расставят по местам:
Как видим второй щуп действительно присутствует и для этого используется разъем TYPE-С.
Между тем, у некоторых читателей возникло справедливое сомнение по поводу надежности такого соединения. Тут необходимо прояснить некоторые моменты. Действительно, если бы этот прибор использовался как классический мультиметр, и на нем измерялись бы большие токи и напряжения, или если бы он лежал отдельно на столе, а мы тягали его за провода, то тогда, условно, эти претензии могли бы иметь основание. Однако, этот прибор предназначен для других целей. Мы его позиционируем как устройства для разработки под микроконтроллеры или иное низковольтное оборудование. Это во-первых. Во-вторых, у нас в руке находится сам щуп, он же прибор. Нет никаких заломов или напряжений в соединении. Нет необходимости тянуть его за провода. И, в-третьих. Ощущение меньшей надежности и жесткости используемого нами разъёма ошибочны. Это довольно крупный порт, который не припаивается на плату, а впаивается в разрез платы, имея 4 точки фиксации помимо контактной группы. Выдернуть его из платы можно только с куском самой платы. Ну и самое главное, за все время использования, не было никаких проблем с разъемом. Но в любом случае покажет живой опыт.
Так же были вопросы о том, как он измеряет ток, если нет отдельного разъёма под эту процедуру. Об этом, в частности, и о общем устройстве сегодня и пойдет речь. Но, для начала, расскажу еще об одном качественном улучшении, которое анонсировал в предыдущей части. В частности изменен входной тракт, ОУ осциллографа что дает возможность измерять отрицательную полуволну. Ну а теперь подробнее о устройстве устройства :D
Рассмотрим работу QUARK на основе блок-схемы:
Устройство построено на базе контроллера ESP32. Используется готовый модуль ESP32-WROOM. Все основные задачи по реализации режимов работы, вычисления, прорисовка экрана, беспроводные соединения, всем этим занимается ESP32. Так же, на борту имеется Atmega328, который выполняет роль АЦП при дополнительной оцифровке сигналов в режиме осциллографа и устанавливает чувствительность входного ОУ. Кроме того Atmega328 мультиплексирует массив резисторов при измерении сопротивления и емкости, и выполняет второстепенные функции включения светодиода подсветки платы и озвучку динамика. А теперь подробнее.
Внешний щуп (External PIN), подключается в разъем TYPE-C. В стандартном исполнении, он соединен с землей устройства и все измерения проводятся относительно нее. Через этот же порт осуществляется зарядка устройства, реализованная на микросхеме MCP73831. Стабилизированное питание обеспечивает LDO MIC5219, а на электронном насосе TPS60403 реализовано двухполярное питание +/- 3.3V, для питания ОУ входного каскада осциллографа. Ниже, часть схемы, описывающей питание устройства:
TYPE-C реализует обмен данными посредством USB-UART моста на CP2104 с главным контроллером ESP32 и Atmega328. При чем для общения компьютера с Atmega328, ESP32 выступает в качестве транслятора, поскольку Atmega328не подключен напрямую к CP2104. К примеру, для того, чтобы залить прошивку в Atmega328, ESP32 переводиться в режим ISP-программатора, а данные заливаются через шину SPI. По этой же шине общаются между собой ESP32 и Atmega328в рабочем режиме.
Встроенный щуп (Internal PIN) подключен к основной схеме через бистабильное электромеханическое реле. Во всех режимах, за исключением режима измерения тока, реле находиться в «Основном» состоянии. Для начала рассмотрим режим измерения тока. Реле из «Основного» переводиться в противоположное состояние, при этом внешний (External PIN) и встроенный (Internal PIN) щупы шунтируются токоизмерительным резистором номиналом 0.1Ом. При этом электронные ключи (KEY 1 TS5A3166 и KEY 2 TS5A3166) механически отвязаны от встроенного щупа. Реле бистабильное, что значит, что оно потребляет ток только в момент переключения состояния и подключено через мультиплексер (74HCT4066):
Cделано это по двум причинам. Во-первых, ток для переключения хоть и мал, но нагружает выводы контроллера. Во-вторых, реле переключается разной полярностью, что означает невозможность подключения защитного диода, а значит возрастает риск выхода из строя портов контроллера. Входы и выходы 74HCT4066 задействованы крест на крест, на схеме они обозначены REL_01 и REL_02. Дополнительно, резисторами R29 и R43, с одной стороны и R44 и R45, с другой, входы принудительно подтянуты к среднему неопределенному состоянию, что бы исключить случайное переключение.
Рассмотрим работу режима измерения тока на примере куска схемы:
PIN1 встроенный щуп. Реле находиться в положении как изображено выше. Ток идет через PIN1 -> предохранитель F1 -> группу контактов 1.3 реле -> токоизмерительный шунт R21 -> группу контактов 1.2 реле и приходит на землю устройства. Второй щуп PIN2 всегда подключен к земле, таким образом, с контактов токоизмерительного шунта R21, через резисторы R19 и R16, специализированной микросхемой U8 на INA226 (POWER MONITOR INA226), происходит измерение падения напряжения. Данные в цифровом виде, по шине I2C, отсылаются главному контроллеру.
Основной режим работы. Контакты реле находятся в противоположных положениях:
Если нам необходимо измерить напряжение, то сигнал со встроенного щупа PIN1, через предохранитель F1 поступает на группу контактов 1.2 реле. Дале, через резистор R16, поступает на вход VBUS, микросхемы INA226, на котором и происходит измерение напряжения относительно земли. Напомню, второй щуп всегда подключен к земле через разъем TYPE-C. В иных случаях, сигнал идет через группу контактов 1.3 реле и сверхбыстрый предохранитель F2. Микросхемы TS5A3166 электронные ключи со сверхнизким внутренним сопротивлением. U9 (KEY 1TS5A3166) и U10 (KEY 1 TS5A3166).
В режиме измерения сопротивления, или емкости, открывается KEY 1 (U9) и задействуется массив резисторов R9, R10, R46, R47 и R48 (RC-METER RESISTOR ARRAY). Сопротивление измеряется на делителе напряжения, образованном неизвестным резистором и одним из резисторов массива. Для более точного определения номинала, задействуется АЦП INA226. Емкость измеряется методом постоянной времени RC цепи. Точно так же, в зависимости от номинала конденсатора, подключается резистор определенного сопротивления из массива (RC-METER RESISTOR ARRAY) и измеряется время заряда. В режимах UART-логгер, UART-плоттер и генератор сигналов, сигнал так же идет через ключ U9 (KEY 1TS5A3166).
Индуктивность вычисляется измерением резонансной частоты на известной емкости C8. При это ключ U9 (KEY 1TS5A3166) закрыт, а сигнал идет через U10 (KEY 1 TS5A3166). С контроллера, короткий импульс поступает через защитный диод D3 на конденсатор C8 и через открытый ключ U10 (KEY 1 TS5A3166), на измеряемую индуктивность. Сигнал частоты снимается с выхода компаратора LM331 (COMPATOR LMV331).
В режиме осциллографа оба ключа закрыты и сигнал поступает во входной тракт, выполненный на ОУ LM258DG (LM258DG AMPLIFIER) (U11.1/ U11.2). На резисторах R20 и R25 происходит смещение нуля. Степень усиления сигнала регулируется массивом резисторов R50-52 (SENSIVITY RESISTOR ARRAY). R51 и R52 управляются контроллером. Сигнал с ОУ поступает на вход АЦП ESP32 , где происходит его обработка – определяется триггер, частота и период. Далее, данные, в подготовленном виде, передаются на смартфон посредством bluetooth соединения.
Управление устройством реализовано на специализированной микросхеме MPR121Q (TOUCH SENSOR MPR121):
Сенсоры S1, S2 и S3 объединены в одну группу, а сенсоры S4, S5 и S6 - в другую. Сделано это для того, чтобы сенсором можно было пользоваться как правой, так и левой рукой. Всегда работает только одна группа сенсоров, ориентированная под рабочую руку. Ниже, схематически обозначено расположение сенсоров:
Сенсор S0 является функциональным, а также выводит устройство из режима сна, сигналом прерывания на вывод IRQ. Поскольку MPR121Q не позволяет повесить прерывание на произвольный сенсор, то, для того, чтобы исключить возникновение события от любого сенсора, перед уходом в режим сна, MPR121Q конфигурируется таким образом, чтобы остался только один рабочий вход - S0. После пробуждения, MPR121Q переконфигурируются на работу с выбранной группой сенсоров. Вопреки заблуждению, акселерометр LSM6DS3 (ACCEL LSM6DS3) нужен вовсе не для ориентации дисплея, а для определения бездействия что бы безопасно уйти в режим сна.
Это основные моменты по принципиальной работе устройства. Сразу оговорюсь, что могут быть незначительные неточности в схемотехнике, поскольку материалы для графики обновляются не так оперативно, но принципиально суть передана верно.
Всех желающих, приглашаю поддержать проект на странице кампании и спасибо за внимание).
P.S. В статье были исправлены некоторые неточности, в частности была неверно указана частота семплирования АЦП.