Цифровой милливольтметр
Часть 1. Устройство и принципиальная схема
Назначение прибора

Еще один измерительный прибор для домашней лаборатории, который мы будем собирать на основе набора модулей, описанного в нескольких публикациях на этом сайте - цифровой милливольтметр звукового диапазона частот. Он предназначен для тех же целей, что и аналоговый милливольтметр, но за счет цифровой индикации результатов измерений и встроенного микроконтроллера обладает более высокой точностью измерений и рядом дополнительных функций, таких, как измерение частоты сигнала, автоматическое переключение диапазонов измерений, усреднение результатов серии измерений и некоторых других, которых у его аналогового собрата не было.
Милливольтметр используется для измерения переменного напряжения от 0.3 мВ до 30 В в звуковом диапазоне частот. Весь диапазон измеряемых напряжений разбит на 8 поддиапазонов, которые автоматически переключаются таким образом чтобы в любой ситуации измерение происходило на участке характеристики прибора, обеспечивающем минимальную погрешность результатов. При необходимости автоматическое переключение диапазонов может быть отключено и желаемый диапазон может выбираться вручную, однако, такой режим работы не является рекомендованным и применяется только в особых случаях, когда автоматический режим почему-либо не удобен.
Важным достоинством цифрового милливольтметра является возможность его дальнейшего усовершенствования без внесения каких-либо изменений в схему и конструкцию прибора, только за счет обновления программного обеспечения микроконтроллера. Это могут делать как разработчики, публикуя новые версии прошивок на этом сайте, так и сами пользователи, владеющие некоторыми навыками программирования для платформы Ардуино. Исходные тексты прошивок доступны всем желающим, поэтому читатели могут вносить те или иные изменения в код для улучшения характеристик прибора и его адаптации к своим индивидуальным требованиям.
Режимы работы и функции органов управления
Вид дисплея прибора при измерении напряжения представлен на рис.1. Показания прибора соответствуют среднеквадратичному (действующему) значению напряжения для сигналов синусоидальной формы. Дополнительно в верхней строке дисплея отображается уровень сигнала в децибелах.

Кроме величины напряжения прибор одновременно измеряет частоту сигнала и отображает в нижней строке дисплея ее величину в Гц, являясь тем самым комбинированным прибором - милливольтметром-частотомером. Очевидно, что частоту можно измерить только для периодических сигналов, то-есть таких, форма которых повторяется через некоторый постоянный интервал времени. При этом сама форма не имеет особого значения, она может быть синусоидальной, прямоугольной, треугольной или какой-то другой, важна лишь периодичность повторения. Если же на вход прибора будет подан какой-либо непериодический сигнал, например, шумовой или музыкальный, то микроконтроллер обнаружит это обстоятельство и отключит функцию измерения частоты для такого сигнала.
Милливольтметр имеет 2 режима работы - "AUTO" (автоматический) и "MANUAL" (ручной). В первом случае переключение поддиапазонов измерений происходит автоматически, во втором - пользователь имеет возможность самостоятельно выбрать желаемый поддиапазон. Для этого в его распоряжении имеются 3 кнопки:
- "MODE" - переключение режимов "AUTO" - "MANUAL" и обратно
- "UP" - переключение поддиапазонов вверх (работает только в режиме "MANUAL")
- "DOWN" - переключение поддиапазонов вниз (также только в режиме "MANUAL")
В ручном режиме при нажатии кнопок "UP" и "DOWN" на дисплее кратковременно отображается наименование выбранного поддиапазона измерений - "[ 10 mV ]", "[ 30 mV ]", "[ 100 mV ]" и так далее. В автоматическом режиме включенный поддиапазон никак не отображается, но на то время, пока программа ищет и включает оптимальный поддиапазон для текущего входного сигнала, в верхней строке дисплея вместо уровня сигнала в вольтах и в децибелах отображается ряд звездочек. Измерение частоты сигнала на время поиска поддиапазона отключается и в нижней строке дисплея при этом ничего не отображается (рис.2).


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


При работе в режиме "MANUAL" возможна перегрузка прибора, когда измеряемое напряжение превышает установленную вручную верхнюю границу поддиапазона. В этом случае на дисплее будет отображаться сообщение, показанное на рис.5. В режиме "AUTO" такая ситуация не возникает, поскольку микроконтроллер автоматически выбирает такой поддиапазон, на котором измеряемое напряжение укладывается в его границы.
Технические характеристики
Характеристики цифрового милливольтметра в значительной степени совпадают с характеристиками аналогового милливольтметра, описанного в одной из публикаций на этом сайте, что не должно удивлять, поскольку в обоих приборах используется один и тот же тракт усиления и детектирования сигнала. Однако, как уже говорилось выше, цифровая индикация и наличие микроконтроллера позволили существенно повысить точность измерений, расширить функциональные возможности прибора и сделать работу с ним значительно более комфортной.
Милливольтметр:
- Диапазон измеряемых напряжений: 0.3 мВ...30 В с поддиапазонами 10-30-100-300 мВ, 1-3-10-30 В
- Диапазон измеряемых уровней в дБ: -70...+32 (значения в децибелах вычисляются по отношению к опорному напряжению 775 мВ)
- Время автоматического поиска поддиапазона от момента изменения уровня сигнала до появления устойчивых показаний напряжения и частоты на дисплее, не более: 4 сек
- Диапазон частот:
- с неравномерностью 1 дБ: 12 Гц...36 кГц
- с неравномерностью 3 дБ: 6 Гц...75 кГц
Частотомер:
- Диапазон измеряемых частот
- при входном напряжении 30 мВ...30 В: 10 Гц...30 кГц
- при входном напряжении 3 мВ...30 мВ: 20 Гц...20 кГц
Общие характеристики:
- Входное сопротивление
- на диапазонах 10 мВ...3 В: 100 кОм
- на диапазонах 10 В и 30 В: 1МОм - Напряжение внешнего источника питания: 9 В (допускается от 8 до 12 В).
- Ток, потребляемый от внешнего источника питания напряжением 9 В: не более 180 мА
Далее, чтобы не повторять те же соображения, которые уже были высказаны по вопросам расширения диапазона измеряемых напряжений и частотного диапазона прибора, отсылаем читателя к разделу "Технические характеристики" ранее описанного аналогового милливольтметра.
Что касается погрешности измерений напряжения, то основными факторами, позволившими ее значительно уменьшить по сравнению с аналоговым прибором являются:
- Цифровая индикация результатов. На большинстве поддиапазонов измерений описываемый цифровой милливольтметр отображает четыре десятичных знака результата измерений, в то время как со шкалы стрелочного прибора вряд ли можно достоверно прочитать больше двух.
- Использование высокостабильного источника опорного напряжения, снижающего зависимость показаний прибора от напряжений питания и температуры.
- Выполнение в цикле нескольких измерений с последующим усреднением результатов.
- Автоматический выбор оптимального поддиапазона измерений, обеспечивающего наивысшую точность измерений при заданной амплитуде входного сигнала.
- Независимость результатов измерений от точности подбора резисторов входного делителя напряжения в модуле аттенюатора. Благодаря тому что результаты измерений вычисляются микроконтроллером, появилась возможность хранить индивидуальные поправочные величины отдельно для каждого поддиапазона измерений, программно скомпенсировав тем самым возможные погрешности коэффициентов передачи аттенюатора. Вместо трудоемкого подбора с необходимой точностью множества постоянных резисторов, как это описано в разделе настройки модуля аттенюатора, теперь во время настройки прибора можно внести необходимые поправочные величины в программу и получить практически идеальный аттенюатор даже при не очень точно подобранных резисторах.
Благодаря всем перечисленным мерам можно сказать, что погрешность измерений напряжения описываемого цифрового милливольтметра не менее чем в 10 раз ниже погрешности ранее обсуждавшегося аналогового прибора. Можно ожидать, что при тщательной настройке, отклонение его показаний при измерении напряжения от показаний эталонного прибора составит не более 0.1% в диапазоне средних частот (50-500 Гц).
Компоненты, необходимые для сборки прибора
Для изготовления этого прибора понадобятся те же четыре модуля из набора, которые мы уже использовали для аналогового милливольтметра:

Кроме этих модулей из нашего набора, изготовленных самостоятельно, потребуются три покупных модуля - микроконтроллер Arduino Nano верс. 3.0, модуль аналогово-цифрового преобразователя ADS1110, а также символьный ЖК дисплей 1602 с конвертером интерфейса I2C.

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

Тракт усиления измеряемого сигнала и его преобразования из переменного напряжения в постоянное построен точно так же, как и у аналогового милливольтметра. Со входа прибора измеряемый сигнал поступает на модуль аттенюатора ATT01 (U1), причем на всех диапазонах измерений кроме двух старших, непосредственно через замкнутый контакт реле K1, а на диапазонах "10V" и "30V", когда контакт реле разомкнут - через резистор R1, ослабляющий амплитуду сигнала в 10 раз. После нормализации уровня сигнала в модуле аттенюатора он усиливается модулем измерительного усилителя AMP01 (U2), а затем поступает на вход модуля прецизионного выпрямителя RECT01 (U3), преобразующего его в постоянное напряжение. На этом сходство с аналоговым милливольтметром заканчивается и начинается собственно цифровая часть прибора.
Напряжение с выхода OutU модуля U3 поступает на вход IN+ аналогово-цифрового преобразователя U4 на базе микросхемы ADS1110, где преобразуется в цифровую форму, после чего по шине I2C (сигналы SDA и SCL) передается микроконтроллеру Arduino Nano (U6) для дальнейшей обработки и вывода результатов на дисплей. Символьный ЖК дисплей 1602 (2 строки по 16 символов в каждой) также подключен по шине I2C, таким образом, для обмена данными с модулем АЦП и с модулем дисплея задействованы всего два пина микроконтроллера - пины A4 и A5.
Другие пины микроконтроллера выполняют следующие функции:
- D2, D3 и D4 (выходы) управляют ослаблением сигнала в модуле аттенюатора, переключая тем самым диапазоны измерения милливольтметра.
- D5 (выход) управляет включением/выключением реле K1, которое дополнительно к ослаблению сигнала, вносимому аттенюатором, снижает уровень входного сигнала еще в 10 раз. На рис. 8 имеется таблица, показывающая, какое сочетание логических уровней на выходах D2-D5 должно быть установлено для включения каждого из диапазонов измерений.
- D6. D7 и D9 (входы со включенной подтяжкой к напряжению питания) используются для подключения кнопок SW1 ("Up"), SW2 ("Down") и SW3 ("Mode") соответственно.
- D8 (вход) используется для измерения частоты сигнала. На этот вход поступает измеряемый сигнал, который с помощью компаратора на микросхеме LM393 (IC2) преобразован в прямоугольную форму.
Также как и другие измерительные приборы, описанные в публикациях на этом сайте, цифровой милливольтметр питается от внешнего источника постоянного напряжения +9В. Потребляемый ток около 180 мА. Можно использовать нестабилизированный источник или аккумуляторы, но при этом важно, чтобы питающее напряжение не выходило за пределы 8...12В.
Вспомогательная плата
Большинство элементов прибора, не входящих в состав модулей, размещены на вспомогательной плате, обозначенной U5 на принципиальной схеме прибора (рис.8). На этой плате находятся несколько функциональных узлов прибора, важных для его функционирования:
- Ключ, управляющий реле K1, выполненный на цифровом транзисторе VT1 типа KRC103.
Термином "цифровой транзистор" обычно называют полупроводниковый прибор, состоящий из биполярного транзистора и двух резисторов, размещенных в одном корпусе с тремя выводами. На вход такого элемента подают логический ("цифровой") сигнал от микроконтроллера а на его выход подключают светодиоды, реле и другие виды нагрузок, потребляющие больший ток чем микроконтроллер может обеспечить на своих выходах или требующие более высокого напряжения чем напряжение питания микроконтроллера. Цифровые транзисторы KRC103 довольно широко распространены, стоят недорого и их несложно приобрести в популярных интернет-магазинах, однако, если все же их раздобыть не удастся, то их можно заменить обычными биполярными транзисторами, подключив к ним два внешних резистора по 20 кОм, как показано на принципиальной схеме.
- Компаратор на интегральной микросхеме IC2 типа LM393, который служит для преобразования измеряемого сигнала произвольной формы в прямоугольный, с уровнями логического "0" и логической "1" для подачи на пин 8 микроконтроллера. Этот пин является входом частотомера, реализованного программными средствами с помощью библиотеки FreqMeasure (см. далее в разделе про программное обеспечение прибора). Компаратор охвачен неглубокой (около 0.2%) положительной обратной связью через делитель напряжения R7 - R5, что формирует гистерезисную характеристику и способствует более четкому переключению без "дребезга" на фронтах выходного сигнала.
- Источник опорного напряжения, выполненный на микросхеме IC1 типа TL431. Вырабатываемое этой микросхемой напряжение 2.5 В используется в качестве опорного для компаратора IC2, а также, после ослабления делителем R1-R2 до уровня 2.0 В, подается на вход IN- модуля АЦП U4.
Все необходимое для самостоятельного изготовления вспомогательной платы, включая ее принципиальную и монтажную схему в формате CAD-системы EAGLE 7.5.0 от Autodesk и фотошаблон печатной платы можно скачать по ссылкам в конце этой публикации.
Переходим ко 2-й части этой публикации, где рассмотрим конструкцию и монтаж цифрового милливольтметра.
Добрый день! Очень заинтерисовал этот достойный прибор. Собираю в еденичном экземпляре. Не для комерции. Были ли какиенибуть измененич в программном обеспечении?
Здравствуйте! На сегодняшний день выложена самая свежая версия. Желаю успеха! Будут какие-нибудь вопросы -обращайтесь.
Добрый день! Версия arduino-ide_2.1.1_Windows_64bit. Выдает ошибку Хотя В библиотеке есть папка ADS1110-1.3.0 В чем может быть ошибка?
Добавляю еще один фаил. Пока не могу понять Почему ошибка
Что-то у вас с расположением файлов не то. Сильно смущает путь к файлу DigitalMillivoltmeter.ino на первом скриншоте. Получается, что сам проект у вас лежит в папке «Файлы для загрузки», а она, в свою очередь, на рабочем столе («Desktop\Новое рабочий стол»). А должно все это хозяйство лежать там, куда указывает путь Sketchbook в настройках Arduino IDE. Откройте в меню File — Preferences, там в самой первой строке указывается путь к папке Sketchbook, обычно что-то вроде C:\Users\Username\Documents\Arduino\ или на ваше усмотрение какое-то другое подходящее место. В этой папке кроме всех ваших проектов (каждый в отдельной папке с именем проекта) должна находиться папка libraries, в которую вы копируете все пакеты библиотек. Именно там IDE и будет искать библиотеки.
Добрый день! Рекомендации выполнил. Но возникла другое. При верификации выявилось другое.
C:\Users\Samsung\Documents\Arduino\DigitalMillivoltmeter\display.ino: In function ‘void displayGreeting()’:
C:\Users\Samsung\Documents\Arduino\DigitalMillivoltmeter\display.ino:18:13: error: no matching function for call to ‘LiquidCrystal_I2C::begin()’
lcd.begin(); // Display init
^
In file included from C:\Users\Samsung\Documents\Arduino\DigitalMillivoltmeter\display.ino:7:0:
C:\Users\Samsung\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );
^~~~~
C:\Users\Samsung\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided
exit status 1
Compilation error: no matching function for call to ‘LiquidCrystal_I2C::begin()’
Если есть возможность подскажите пож.
Ранее записывал разные проекты на ардуино Без проблем. Правдо в другой версии
Какаета проблемка с дисплееи. Библиотеки все вроде скачал. НО надо побеждать
Это, похоже, не у вас проблема, а у меня. Я посмотрел, у меня используется довольно старая версия библиотеки, где функция begin() не имеет аргументов. Что это за версия — установить не удалось, там никаких комментариев с номером версии нет, но, похоже, что лежит она довольно давно. В современной версии библиотеки функция begin() действительно требует, как минимум, два аргумента, третий — необязательный. Попробуйте исправить вызов на begin(16, 2), если дальше при этом ничего не сломается, то должно получиться.
Я сегодня попозже доберусь до компьютера, проверю это все, подправлю исходный текст прошивки и выложу новую версию.
И, кстати, та же старая версия библиотеки LiquidCrystal_I2C используется и в других прошивках на этом сайте- в звуковом генераторе и в амперметре-вольтметре, так что мне придется править их все.
Разобрался, что за версия библиотеки у меня использовалась в проекте. Она лежит тут — https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library/ . Она действительно очень старая и много лет уже не обновлялась, но работает, тем не менее, вполне исправно.
Я ее выложил сюда на сайт, можно взять отсюда. Чтобы заставить Arduino IDE все перекомпилировать с этой (более старой) библиотекой, после того, как вы удалите новую и положите на ее место эту, можно использовать такой трюк: откройте файл LiquidCrystal_I2C.h в папке библиотеки любым текстовым редактором и снова сохраните, чтобы у него дата изменилась на сегодняшнюю, тогда IDE его точно откомпилирует заново, а иначе может использовать ранее откомпилированные модули и будут сыпаться ошибки при линковке.
Пока так можно жить, а под более свежую версию этой библиотеки (которая, на самом деле тоже уже не такая свежая и много лет не обновлялась) буду переделывать позже. Сообщу об этом, когда сделаю.
Добрый день! Выполнил по Вашим рекомендациям. Открыл в редакторе и сохранил. Компиляция и прошивка прошла успешна. Спасибо Буду пока дальше собирать. Отпишусь по результатам. Еще раз спасибо.
Здравствуйте! Собрал это чудо вроде все ок но есть проблемки
Сможите ли помочь мне?
(до 32 кгц все ОК) В чем может быть проблема?
> Собрал это чудо вроде все ок но есть проблемки
Не сочтите за труд сфотографировать вашу конструкцию и прислать сюда на сайт. Читатели (и автор) хотят ее видеть.
> Как увеличить частоту выдачи информации на экран. (часто мерцает экран видно глазами что очень не удобно)
Частота вывода результатов на дисплей сильно зависит от режима компиляции DEBUG или RELEASE. Если директива #define __DEBUG__ в строке 22 закомментирована, то программа перестает отправлять диагностические сообщения в Serial Monitor и ее скорость работы заметно возрастает.
Еще немного повысить частоту можно, уменьшив количество циклов, за которые усредняется измеренное напряжение и частота. В главном цикле программы (функция loop(), в строке 345 условие if (countF > 9) определяет, что частота измеряется в течение 10-ти циклов, затем проверяется, что частота в течение этих циклов была стабильна (variation < 0.6) и тогда усредненное значение частоты выводится на экран. Если измерять в течение меньшего числа циклов, например, написать if (countF > 5), то измеренное значение будет выводиться на экран чаще. То же самое касается и измерения напряжения. В строке 385 есть оператор iterations = (searchInProgress) ? 3 : 9, который определяет, что в режиме поиска поддиапазона выполняется усреднение по 4-м измерениям, а в нормальном режиме — по 10-ти. Можно написать там iterations = (searchInProgress) ? 3 : 5, тогда в нормальном режиме измерения напряжение будет усредняться по 6-ти измерениям. Однако, по моим наблюдениям это может ухудшить поведение прибора — показания станут менее стабильными, ухудшится распознавание нестационарных и непериодических сигналов, поэтому число итераций 10 и для частоты и для напряжения было выбрано как разумный компромисс между частотой измерений и стабильностью показаний.
Если хочется повысить частоту измерений еще больше, потребуется более существенная переработка кода программы. Например, можно отказаться от библиотеки, работающей с АЦП и написать собственную процедуру, напрямую обращающуюся к регистрам ADS110, а также заменить библиотеку FreqMeasure на собственные функции измерения частоты, однако это потребует более углубленного владения программированием процессоров AVR на уровне таймеров, регистров, прерываний и т.д.
> Частота измеряемого уровня (ниже 500Гц)не соответствует показаниям. (до 32 кгц все ОК) В чем может быть проблема?
Надо посмотреть, что делается на выходе компаратора LM393 на вспомогательной плате. На любой частоте он должен формировать идеальный прямоугольный сигнал, который подается на пин D8 микроконтроллера. Если там нечеткое переключение («дребезг») на фронтах или сами фронты завалены (особенно на самых низких частотах), надо разобраться с конденсаторами C1, C2 и резистором R7. Возможно, емкости конденсаторов нужно увеличить, а резистора — уменьшить.
> Когда включается реле на 10 В Показания не корректные До 10 в все ОК. Может резистор 900ком надо подстраивать?
Желательно, конечно, чтобы сопротивление этого резистора было ровно в 9 раз больше входного сопротивления модуля аттенюатора (100 кОм), однако, даже если он не совсем точно подобран, вы всегда можете скомпенсировать его неточность при калибровке. В разделе «2-й этап настройки» подробно описано, как это делается. Если при калибровке вы правильно подобрали значение констант VRef и VDiv для каждого предела измерений, включая и два старших, то прибор должен показывать правильные результаты.
> Питание схемы работает +- 9в. Нужно ли именно +- 12в?
Не пробовал питать модули более низким напряжением, но, думаю, что это может вызывать ограничение сигналов при максимальных уровнях. Если вы с помощью осциллографа убедитесь, что усиливаемый сигнал нигде не ограничен (напрмер, на выходе модуля измерительного усилителя и в модуле прецизионного выпрямителя) и при этом не пострадала точность измерений, то, вероятно, можно оставить и 9V, но я тут ничего гарантировать не могу.
Добрый день! Высылаю фото и видо. Буду отрабатывать Ваши рекомендации.
С мерцанием дисплея в последную очередь. Может к мерцанию привыкну Думаю Ччто не критичн. Обязательно отпишусь о праделанной работе.
Еще одно фото
Ссылка на видео https://disk.yandex.ru/i/qEFrLqekECS4rw
Спасибо за фото и видео. Было очень интересно увидеть ваш вариант конструкции прибора. Ждем более подробного отчета по результатам окончательной настройки.
Добрый день! Приступил к программной настройке! Ну никак не могу раскомментировать. Док с версией ардуино иде высылаю. Извеняюсь за глупый вопро . Несколько дней бъюсь. В ардуино иде не селен. Может все просто. Если не трудно ответьте пож.
Здравствуйте! Не совсем понял вопрос. Если речь идет о том, чтобы закомментировать/раскомментировать строчку с определением константы __DEBUG__, то выглядит это так:
— константа раскомментирована, соответственно вся программа компилируется в режиме отладки, в окно Serial Monitor отправляются подробные диагностические сообщения обо всех выполняемых действиях
— определение константы закомментировано, программа компилируется в режиме релиза, никакие отладочные сообщения в Serial Monitor не отправляются, размер кода становится меньше и он работает быстрее.
Огромное смасибо уже разобрался. Надо доделывать В Звукотехники этот прибор просто «бомба»
Добрый день! Не получается включить монитор порта. Скрин прилагаю. Скетч в этой Aruino ide/заливается без проблем. А вот с монитором пишет нет конекта. Что может быть? Может еще какие нибуть настройки нужны?
Здравствуйте! Не могу точно сказать, в чем причина, но, немного погуглив, обнаружил, что многие пользователи Arduino IDE 2.1.1 жалуются на подобную ошибку. В ответ им предлагают какие-то сложные методы борьбы с этой проблемой, причем в большинстве случаев эти методы никак не помогают. Я понял так, что единственное реальное решение проблемы, которое помогает в 100% случаев, это обновиться до любой из последних версий Arduino IDE 2.3.x, например, до текущей версии 2.3.6. И это должно помочь!