Осваиваем STM32 или ESR-метр на быстром ADC
РадиоКот >Схемы >Цифровые устройства >Измерительная техника >Осваиваем STM32 или ESR-метр на быстром ADC
Начало
Доброго всем здоровья. Расскажу о своем переходе с ATmega8 на STM32, и немного затрону теорию и практику измерения ESR. Радиолюбитель я с одной стороны с давней историей, а с другой стороны начинающий. Потому как в молодости занимался паянием схемок всяких. Потом учеба, кризис. И вот год назад мне таки стало интересно, почему многие из схем в детстве не работали. И понеслось все по новой. Пока занимаюсь измерением разных параметров катушек индуктивности и конденсаторов. Сделал несколько схемок, спасибо этому сайту и замечательной статье Измеритель ESR/L/C/F/P/t на PIC16F876A.
Сравниваем
Перво наперво руководствуясь заветами этой стати сделал измеритель ESR и LC. Правда вместо PIC16 поставил ATmega8, вместо MCP6022 поставил LM328, а вместо TL431 поставил стабилитрон на 3.3 v. Результаты получились не очень. Прибор безбожно врал на емкостях меньше 10 микрофарад. И если емкость он еще измерял правильно, то веры в ESR для маленьких конденсаторов не было никакой. Впрочем результат закономерен. LM328 тормоз еще тот. ADC ATMega8 имеет максимальную частоту в 10 кГц. Всего
Вот возьмем STM32F102CBT6 который купил за 120 руб/шт. Это сравнимо с ценой Atmega8. Смотрим характеристики:
- ATMega8 — 2 кб RAM, 8 кб FLASH, 10 кгц 10 бит ADC. Частота ядра 16 Мгц
- STM32F102CBT6 — 16 кб RAM, 128 кб FLASH, 500 кгц 12 бит ADC и хардварный USB. Частота ядра 48 Мгц
Сначала не поверил такому. Может быть в наших краях нельзя купить? Может плату нельзя вытравить под него? Может ADC гавно хоть и быстрое? Может программировать эту штуку настолько сложно, что документацию пол года читать надо? Оказалось, что все хорошо и никаких проблемм нет.
Травим платку. Обычный ЛУТ. Фотки составляющих успеха. Cif чистит, но не царапает. Бумага от самоклейки — тонер полностью переводится. Ничего отмывать не надо. Ламинатор. Пропускаем пару раз через него платку с самоклейкой. Платка после ламинатора. Принтер конечно не особо ровно тонер ложит, поэтому при травлении главное не передержать, чтобы дыр не было ненужных. Персульфат аммония, нагреть до 40 градусов. За 5-10 минут все травися. Получившийся после травления результат. Окончательный результат. Конечно транзисторы запаяны кривовато, но паял их уже после того как было все припаянно, буквально на весу.Схема довольно простая. STM32 процессор по центру. Слева-сверху инвертор напряжения на ICL7660. Слева-посредине USB разъем чтобы к компьютеру подключать. Справа-сверху аналоговая часть, быстрый операционный усилитель AD825 , несколько pullup резисторов и один pull-down транзистор. Сравним с Измеритель ESR/L/C/F/P/t на PIC16F876A. Там два каскада усиления, у меня один. Два каскада усиления не стал делать, потому как понимаю — таких маленьких шумов не смогу обеспечить. С одним каскадом улиления в 10 раз уже получается 300 милливольт на входе, делим на 4096, получаем младший разряд 100 микровольт. Источник тока тоже не стал делать, потому как стабилитроны отнюдь не предназначенны на работы на высоких частотах, а 400 килогерц это уже довольно приличная частота и стабилитрон, особенно составной вроде TL431 может попортить нам картину на начале графика. pull-down транзистор взял маломощный, чтобы лишней емкости и утечек не было на входе.
Сначала хотел припаять LCD дисплей, но потом понял — от лукавого это все. Схемка ведь чисто для обучения и тестирования свойств STM32. Поэтому сливаем все данные по USB. По хардварному
Начнем с простого, с измерения резистора 1 ом. Используем 220 ом pullup резистор.
Синий график, что намеряли. Красный график — апроксиммация. Тут никаких неожиданностей. Есть лишь небольшой шум в последних двух битах ADC амплитудой порядка 200-300 микровольт. Замкнем щупы и присмотримся к ним тщательнее.
0.02 ома — это не ошибка измерения, это сопротивление щупов. Так что таким способом можно довольно точно сопротивления мерять, что неудивительно. Теперь возмем конденсаторы, начиная с больших и постепенно уменьшая емкость.
Конденсатор емкостью 2200 мкф. Так как график крайне линейный, то сомневаться в достоверности данных не приходится. А метод наименьших квадратов в данном случае позволяет обойтись лишь одним циклом измерения. Обратите внимание — на измерение емкости конденсатора достаточно ДВУХ милисекунд времени.
Конденсатор емкостью 100 мкф — это вообще идеальный случай, так как и ESR у него достаточно высок чтобы не было особых ошибок измерения и емкость достаточна мала, чтобы он устел зарядиться до 300 милливольт за 2 милисекунды.
Конденсатор 1 мкф уже не получается измерить по нормальному с резистором 220 ом, слишком быстро он заряжается до 300 mV. ESR полностью зафейлился, емкость показало заниженную. Как показали дальнейшие тесты — заниженная емкость это не ошибка измерения. Электролитический конденсатор 1 мкф на частоте порядка 100 кгц действительно теряет половину своей емкости. Чтож включаем тогда pullup резистор на 10 ком.
Привожу лишь начало графика, чтобы было видно начальную ступеньку от ESR. Могу сказать, что измеритель на основе ATMega8 выдавал совсем неточные показания для такого конденсатора, ибо скорости ему катастрофически не хватало. Здесь же результат идеальный, все видно как на ладони.
Конденсатор 100 nf еще можно измерять с резистором 10 ком, но для более мелких конденсаторов включим pullup 470 ком. Обратите внимание — вначале достаточно приличное время идет нулевое плато. В реальности там немного отрицательное напряжение. Это каойто косяк в схемотехнике у меня, но к сожалению не до конца понимаю какой.
Для более мелких емкостей уже существенна входная емкость схемы. Всетаки pulldown полевой транзистор обладает большой внутренней емкостью. Запускаем измерять емкость просто разомкнув щупы.
Получаем отличный ровный график входной емкости. Тут мы уже подходим к краю точности прибора. Поэтому точность результата 740pf+-10pf. Начинают уже вовсю сказываться внешние помехи, скорости ADC начинает не хватать. Чтож, измеряем далее.
Конденсатор емкостью 910 pf. Здесь мы уже вычли 750 pf собственной емкости.
Конденсатор емкостью 15 pf. Здесь уже точность никакущая, может показать как 10 так и 25 пикофарад. Врочем сам факт измерения такой маленькой емкости напрямую при помощи ADC уже радует.
Результатами доволен. ADC встроенное в STM32 отличнейшее. Правда есть одно но. Низкое входное сопротивление. Более того — низкое входное ЕМКОСТНОЕ сопротивление от конденсаторов которые не полностью разрядились. Поэтому если подключить щупы осциллографа ко входу работающего ADC получится примерно такая картина.
Результаты взяты со входа ADC работающего на частоте 500 кгц и подключенного к земле через резистор в 1 ком. Выбросы в 20 mV. Так что если вы вдруг увидите на просторах интернета схему USB осциллографа на STM32 без входного операционного усилителя — знайте, измеряет она хрен знает что да еще и шумы на измеряемую схему дает.
На сладкое — попробовал использовать сей девайс в качестве USB звукового входа. Поставил резистор чтобы было смещение на 150 mV, разделительный конденсатор и подключил к плееру. Получилась читать поток лишь 44100 8 бит, дальше идет гдето затык по скорости передачи USB. Но результаты все равно неплохие (оцифрованный кусочек музыки в аттаче). Шумов на 8 бит совершенно нет, так как они в последних двух битах. Пробовал сливать и все 12 бит точности — если слушать тишину, то шум слышен, но ооочень тихо.
Выше описывал все в достаточно положительном ключе, теперь опишу проблеммы. Как практические так и теоретические. Когда выключаем все pullup и pulldown резисторы — на входе образуется немного отрицательного напряжения. Порядка 300 микровольт. Так и не смог понять причину — возможно плату надо отмывать лучше, возможно в схемотехнике косяк. Это достаточно сильно влияет на результаты при использовании резистора в 470 ком.
Другая проблемма теоретическая. Смотрим на функцию которой мы приближаем наш конденсатор. Взяли специально случай, когда расхождения видны наиболее хорошо.
Смотрим на начало графика.
Расхождение на начальном этапе связано с тем, что емкость электролитического конденсатора зависит от частоты. Для сравнения ниже график металлокерамического конденсатора 0.47 мкф 275V.
Как видим аппроксимирующая функция идеально совпадает с измеренной. Но вернемся к графику резистора 1 мкф. При такой аппроксимации получается ESR порядка 20 ом, но если мы напрямую возмем значение с синего графика — то полуается ESR порядка 10 ом. Конечно эту проблемму можно «замести под ковер», но проблемма остается — емкость электролитов зависит от частоты и это не учитывается в формулах.
Тадиционно в аттаче исходники программы для микроконтроллера. Также схема и плата для Eagle. И скрипты на питоне, которые принимают данные на стороне комптютера. Так-же приложил данные, считанные для разных конденсаторов. При запуске скрипта qt4_plot.py их можно загрузить и посмотреть графики во всех деталях. Код для микроконтроллера был переделан из стандартного сэмплика STM32, и написанный мной код в файлах hw_config.c, voltage.c, sound.c.
Файлы:
Схема и печатная плата в формате Eagle
Все одним архивом, печатная плата, программа и скрипты.
Оцифрованный кусочек музыки 44 кгц 8 бит
Все вопросы в Форум.
Как вам эта статья? | Заработало ли это устройство у вас? |
Esr метр на atmega8 — Морской флот
На одном из сайтов нашёл статью, где предлагают собрать простой тестер полупроводниковых проборов именуемый AVR-Transistortester. Изучая данную тему, нашел, что AVR-Transistortester выполнены почти все по одной схеме отличия только в применяемых микроконтроллерах и дисплеев. Самая простая схема на ATmega8 можно использовать и ATmega48, содержит весь необходимый минимум, деталей, что не составит большого труда собрать начинающему радиолюбителю.
Типы тестируемых деталей:
(имя элемента — индикация на дисплее):
— NPN транзисторы — на дисплее «NPN»
— PNP транзисторы — на дисплее «PNP»
— N-канальные-обогащенные MOSFET — на дисплее «N-E-MOS»
— P-канальные-обогащенные MOSFET — на дисплее «P-E-MOS»
— N -канальные-обедненные MOSFET — на дисплее «N-D-MOS»
— P -канальные-обедненные MOSFET — на дисплее «P-D-MOS»
— N-канальные JFET — на дисплее «N-JFET»
— P-канальные JFET — на дисплее «P-JFET»
— Тиристоры — на дисплее «Tиристор»
— Симисторы — на дисплее «ТРИАК»
— Диоды — на дисплее «Диод»
— Двухкатодные сборки диодов — на дисплее «Дв диод CA»
— Двуханодные сборки диодов — на дисплее » Дв диод CС»
— Два последовательно соединенных диода — на дисплее «2 диода послед.»
— Диоды симметричные — на дисплее «2 диода встречные»
— Резисторы — диапазон от 1 Ом до 10 МОм [Ом, KОм]
— Конденсаторы — диапазон от 0,2nF до 5000uF [nF, uF]
Описание дополнительных параметров измерения:
— h31e (коэффициент усиления по току) — диапазон до 1000
— (1-2-3) — порядок подключенных выводов элемента
— Наличие элементов защиты — диода — «Символ диода»
— Прямое напряжение – Uf [mV]
— Напряжение открытия (для MOSFET) — Vt [mV]
— Емкость затвора (для MOSFET) — C= [nF]
Традиционно для себя перечертил схему в ДипТрейс и развёл плату под свои компоненты. Я применил планарную микросхему с тридцати двумя выводами.
Вот моя схема.
Плату старался развести так чтобы все детали, были под дисплеем, а тестовая панель, кнопка и контрольный светодиод были перед дисплеем. Применил стандартный разъём питания для подключения любого адаптера до 15в., на точность показаний это ни как не влияет.
Что касаемо применяемых деталей.
Транзисторы VT1-VT3 любые маломощные соответствующие переходу.
Резисторы тоже любые, любого класса точности кроме R7-R12, главное чтобы их сопротивление не сильно отличались от требуемых. Очень важно, чтобы резисторы R7-R12 были более высокого класса точности. Если таковых у вас нет, то нужно вооружиться хорошим, точным тестером и отобрать резисторы R7-R12, с минимальной погрешностью.
От этого зависит точность показаний. Правильно собранный из рабочих деталей прибор в наладке не нуждается. Работает сразу, транзисторы и другие детали кроме конденсаторов большой ёмкости тестирует достаточно быстро.
Я, подобные микросхемы программирую, уже впаянную в плату.
Проводки подпаиваю к дорожкам ведущие к соответствующим выводам. А потом уже припаиваю остальные детали. Можно программировать и после окончательной сборки приборчика.
А каким программатором, или какой программой пользоваться уже дело вкуса. Мне так понравилась программа AVRDUDE.
Главное установить правильные фьюзы.
Для ATmega8: lfuse = 0xc1; hfuse = 0xd9
Для ATmega48: lfuse = 0x42; hfuse = 0xdf; efuse = 0xff
В архиве выкладываю все свои и не свои материалы по изготовлению данного устройства.
Также в архиве, есть прошивка для русификации показаний прибора (английский и русский EEPROM, правильное отображение в кирилице µ и Omega), это в том случае если у вас дисплей поддерживает русские символы. Мой дисплей к несчастью оказался не из таких.
Содержание / Contents
↑ Начало
↑ Мой вариант схемы измерителя ESR
Я внес минимальные изменения. Корпус — от неисправного «электронного дросселя» для галогеновых ламп. Питание — батарея «Крона» 9 Вольт и стабилизатор 78L05 . Убрал переключатель — измерять LowESR в диапазоне до 200 Ом надо очень редко (если приспичит, использую параллельное подключение). Изменил некоторые детали. Микросхема 74HC132N, транзисторы 2N7000 (to92) и IRLML2502 (sot23). Из-за увеличения напряжения с 3 до 5 Вольт отпала необходимость подбора транзисторов.
При испытаниях устройство нормально работало при напряжении батареи свежей 9,6 В до полностью разряженной 6 В.
Кроме того, для удобства, использовал smd-резисторы. Все smd-элементы прекрасно паяются паяльником ЭПСН-25. Вместо последовательного соединения R6R7 я использовал параллельное соединение — так удобнее, на плате я предусмотрел подключение переменного резистора параллельно R6 для подстройки нуля, но оказалось, что «нуль» стабилен во всем диапазоне указанных мною напряжений.
Удивление вызвало то, что в конструкции «разработанной в журнале» перепутана полярность подключения VT1 — перепутаны сток и исток (поправьте, если я неправ). Знаю, что транзисторы будут работать и при таком включении, но для редакторов такие ошибки недопустимы.
↑ Наладка
Наладка очень проста и заключается в установке чувствительности с помощью R4 при подключенном резисторе 2…5 Ом и установке нуля цифрового вольтметра на диапазоне 200mV.
Операции надо повторить несколько раз, далее можно убедиться в точности измерителя, подключая резисторы 0,1…5 Ом. Настраивать надо со штатными шнурами, плату хорошенько промыть, конденсатор С3 должен быть термостабилен.
↑ К вопросу о точности вообще
Начиная с 10 Ом, точность примерно 3% и ухудшается примерно до 6% при 20 Ом (200мВ), но точность при измерениях бракованных элементов не важна. Поскольку измерения проводятся при комнатной температуре, термонестабильность будет мала, испытаний на эту тему я не проводил.
При измерениях ESR конденсаторов в компьютерных блоках питания и на материнских платах, я пришел к выводу, что конденсаторы от 1000 мкФ с сопротивлением 0,5 Ом надо срочно выпаивать и отправлять в ведро, нормальное ESR 0,02…0,05 Ом. Попутно обнаружил, что у исправных конденсаторов ESR очень сильно зависит от температуры, так у конденсатора 22 мкФ ESR уменьшалась от тепла пальцев на 10%. Это объясняет, почему некоторые фанатичные лампадные конструкторы специально делают подогрев конденсаторов в катодных цепях с помощью проволочных обогревателей. По этой причине, а также по причине имеющегося сопротивления контактов считаю, что в измерения тысячных долей Ом нет особой необходимости.
На первом фото ЭПС конденсатора 0,03 Ом.
Желающие подробнее ознакомиться с принципом работы данного устройства могут прочитать оригинальную статью на стр. 19, 20 «Радио» №8 за 2011 год.
↑ Моя печатная плата
↑ Итого
Данный прибор работает у меня около месяца, его показания при измерениях конденсаторов с ESR в единицы Ом совпадают с прибором по схеме Ludens.
Он уже прошёл проверку в боевых условиях, когда у меня перестал включаться компьютер из-за емкостей в блоке питания, при этом не было явных следов «перегорания», а конденсаторы были не вздувшимися.
Точность показаний в диапазоне 0,01…0,1 Ом позволила отбраковать сомнительные и не выбрасывать старые выпаянные, но имеющие нормальную ёмкость и ESR конденсаторы. Прибор прост в изготовлении, детали доступны и дёшевы, толщина дорожек позволяет их рисовать даже спичкой.
На мой взгляд, схема очень удачна и заслуживает повторения.
↑ Файлы
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Оригинальная статья в журнале «Радио» № 8 за 2011 год:
▼ radio-8-2011-esr-meter.7z 🕗 13/08/16 ⚖️ 1,09 Mb ⇣ 53
Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.
—
Спасибо за внимание!
Игорь Котов, главный редактор журнала «Датагор»
Какой главный параметр для оценки исправности конденсаторов? Конечно их ёмкость. Но по мере распространения импульсной высоковольтной техники, стало очевидно, что надо обратить внимание на ещё один параметр, от которого зависит надёжность и качество работы импульсных преобразователей — это эквивалентное последовательное сопротивление (ЭПС, по англ. ESR — equivalent series resistance). Применение конденсаторов с увеличенным значением ЭПС приводит к росту пульсаций выходного напряжения по сравнению с расчётными значениями, и бстрому выходу их из строя из-за повышенного нагрева за счёт выделения тепла на ЭПС, нередки даже случаи закипания электролита, деформация корпуса, а также взрывы конденсаторов. Особая выраженность негативного влияния ЭПС именно в силовых импульсных преобразователях вызвана, работой на больших токах заряда-разряда, а также тем, что с ростом рабочей частоты ЭПС возрастает. Наличие ESR объясняется конструкцией оксидного конденсатора и обусловлена сопротивлением обкладок, сопротивлением выводов, переходным сопротивлением контактов между обкладками и выводами, а также потерями в материале диэлектрика. С течением времени ESR конденсатора возрастает, что совсем не хорошо. ESR конденсаторов разных типов Естественно, проконтролировать обычным Омметром эквивалентное последовательное сопротивление конденсатора невозможно — тут нужен специальный прибор. В интернете есть несколько простых конструкций ESR-метров, но при желании, можно собрать более точный и удобный измеритель на микроконтроллере. Например из журнала Радио 7-2010.
Схема измерителя ESR конденсаторов на Все необходимые файлы и прошивки — в архиве. После сборки и включения крутим регулятор контрастности до появления на экране LCD надписи в две строки. Если её нет — проверяем монтаж и правильность прошивки МК ATtiny2313. Если всё ОК — нажимаем кнопку «Калибровка» — в прошивку внесётся поправка на скорость срабатывания входной части измерителя. Далее понадобится несколько новых электролитических конденсаторов высокого качества ёмкостью 220. 470 мкФ разных партий, лучше всего — на разные напряжения. Подключаем любой из них к входным гнёздам прибора и начинаем подбирать резистор R2 в пределах 100. 470 ом (у меня получилось 300 ом; можно применить временно цепочку постоянный+подстроечный) так, чтобы значение ёмкости на экране ЖКИ примерно было похоже на номинал конденсатора. К большой точности пока что стремиться не стОит — ещё будет корректироваться; затем проверить и с другими конденсаторами. Для настройки измерителя ESR нужна таблица с типовыми значениями этого параметра для разных конденсаторов. Эту табличку рекомендуется приклеить на корпус прибора под дисплеем. В следующей табличке указаны максимальные значения эквивалентного последовательного сопротивления для электролитических конденсаторов. Если у измеряемого конденсатора оно будет выше, то его уже нельзя использовать для работы в сглаживающем фильтре выпрямителя: Подключаем конденсатор 220 мкФ и, незначительным подбором сопротивления резисторов R6, R9, R10 (на схеме и на моём сборочном чертеже обозначены со звёздочками), добиваемся показаний Esr, близких к указанным в таблице. Проверяем на всех имеющихся заготовленных эталонных конденсаторах, в т.ч. уже можно использовать и конденсаторы от 1 до 100 мкФ. Так как для измерения ёмкости конденсаторов от 150 мкФ и для измерителя ESR применяется один и тот же участок схемы, после подбора сопротивления этих резисторов несколько изменится точность показаний измерителя ёмкости. Теперь можно подстроить ещё сопротивление резистора R2, чтобы эти показания стали точнее. Другими словами, нужно подбирая сопротивление R2 — уточнить показания измерителя ёмкости, подстраивая резисторы в делителе компараторов — уточнить показания ESR-метра. Причём, приоритет надо отдавать измерителю внутреннего сопротивления. Теперь надо настроить измеритель ёмкости конденсаторов диапазона 0,1. 150 мкФ. Так как для этого в схеме предусмотрен отдельный источник тока, измерение ёмкости таких конденсаторов можно сделать очень точным. Подключаем конденсаторы малой ёмкости к входным гнёздам прибора и, подбором сопротивления R1 в пределах 3,3. 6,8 кОм добиваемся максимально точных показаний. Этого можно достичь, если в качестве эталонных применить не электролитические, а высокоточные конденсаторы К71-1 ёмкостью 0,15 мкФ с гарантированным отклонением 0,5 или 1%. Когда собрал данный измеритель ESR — схема завелась сразу, понадобилась только калибровка. Этот измеритель много раз помогал при ремонте БП, так что устройство рекомендуется к сборке. Схему разработал — DesAlex, собрал и испытал: sterc. Обсудить статью ИЗМЕРИТЕЛЬ ESR НА МИКРОКОНТРОЛЛЕРЕ |
LC метр на ATmega8 – измеритель индуктивности и емкости
Я уверен, что этот проект не является новым, но это собственная разработка и хочу, чтобы этот проект так, же был известен и полезен.
Схема LC метра на ATmega8 достаточно проста. Осциллятор является классическим и выполнен на операционном усилителе LM311. Основная цель, которую я преследовал при создании данного LC метра — сделать его не дорогим и доступным для сборки каждым радиолюбителем.
Принципиальная схема измерителя емкости и индукции
Характеристики LC-метра:
- Измерение емкости конденсаторов: 1пФ — 0,3мкФ.
- Измерение индуктивности катушек: 1мкГн-0,5мГн.
- Вывод информации на ЖК индикатор 1×6 или 2×16 символов в зависимости от выбранного программного обеспечения
Для данного прибора я разработал программное обеспечение, позволяющее использовать тот индикатор, который есть в распоряжении у радиолюбителя либо 1х16 символьный ЖК-дисплей, либо 2х 16 символов.
Тесты с обоих дисплеев, дали отличные результаты. При использовании дисплея 2х16 символов в верхней строке отображается режим измерения (Cap – емкость, Ind – катушка индуктивности) и частота генератора, в нижней же строке результат измерения. На дисплее 1х16 символов слева отображается результат измерения, а справа частота работы генератора.
Однако, чтобы поместить на одну строку символов измеренное значение и частоту, я сократил разрешение дисплея. Это ни как не сказывается на точность измерения, только чисто визуально.
Как и в других известных вариантах, которые основаны на той же универсальной схеме, я добавил в LC-метр кнопку калибровки. Калибровка проводится при помощи эталонного конденсатора емкостью 1000пФ с отклонением 1%.
При нажатии кнопки калибровки отображается следующее:
Измерения, проведенные с помощью данного прибора на удивление точны, и точность во многом зависит от точности стандартного конденсатора, который вставляется в цепь, когда вы нажимаете кнопку калибровки. Метод калибровки устройства заключается всего лишь в измерении емкости эталонного конденсатора и автоматической записи его значения в память микроконтроллера.
Если вы не знаете точное значение, можете откалибровать прибор, изменяя значения измерений шаг за шагом до получения наиболее точного значения конденсатора. Для подобной калибровки имеются две кнопки, обратите внимание, на схеме они обозначены как «UP» и «DOWN». Нажимая их можно добиться корректировки емкости калибровочного конденсатора. Затем данное значение автоматически записывается в память.
Перед каждым замером емкости необходимо сбросить предыдущие показания. Сброс на ноль происходит при нажатии «CAL».
Для сброса в режиме индуктивности, необходимо сначала замкнуть выводы входа, а затем нажать «CAL».
Весь монтаж разработан с учетом свободной доступности радиодеталей и с целью достижения компактности устройства. Размер платы не превышают размеров ЖК-дисплея. Я использовал как дискретные компоненты, так и компоненты поверхностного монтажа. Реле с рабочим напряжением 5В. Кварцевый резонатор — 8MHz.
При программировании микроконтроллера ATmega8 необходимо выставить следующие фьюзы:
Несколько фото готового устройства:
Скачать прошивку (12,4 KiB, скачано: 2 657)
http://www.qsl.net/yo6pir/lcavr.html
Универсальный измерительный прибор на микроконтроллере ATMega8 — Меандр — занимательная электроника
Омметр, измеритель ёмкости, осциллограф, генератор и частотомер — это функции которыми наделено устройство схемой которого я хочу с вами поделиться. Ведь такой универсальный измерительный прибор очень нужен в практике каждого радиоаматора. А собрать его не представляет особой сложности даже начинающим радиолюбителям.
Схема устройства
В основе схемы лежит микроконтроллер фирмы ATMEL — ATMega8, который работает на частоте 16 МГц. Информация выводится на стандартный двухстрочный символьный индикатор (16 символов в строке).
Принципиальная схема универсального измерительного прибора на микроконтроллере ATMega8
Сразу хочу сказать, что я не являюсь автором данной разработки, и не претендую на авторство этой схемы. Схему этого прибора я нашел в интернете, она встречается на многих сайтах. Поэтому невозможно определить первоисточник и имя автора проекта. Но все же, автору схемы выражаю большую благодарность за весьма интересную разработку!
Когда я увидел впервые эту схему, она купила меня своей простотой и многофункциональностью. Поскольку все детали у меня были в наличии, то я собрал этот прибор за один вечер. Уж сильно хотелось посмотреть как будет функционировать этот приборчик. Честно говоря, собирая его, я был настроен скептически. Не верил в высокую точность и в широкий интервал измерений емкости и сопротивления. Но все же приятно был удивлен результатом. Устройство полностью соответствует указанному интервалу измерений с достаточно высокой точностью.
Функциональные возможности устройства
- Наличие функции измерение частоты с возможностью изменения времени измерения и выводом значение частоты и длительности на дисплей;
- Наличие функции генератора с возможностью изменение частоты во всем диапазоне с шагом 1-100 Гц и выводом значение частоты и длительности на дисплей;
- Наличие функции осциллограф – позволяющей визуализировать форму сигнала и измерить его амплитудное значение;
- Наличие функции измерения емкости позволяет измерять емкость во всем диапазоне;
- Наличие функции измерения сопротивления позволяет измерят во всем диапазоне;
- Наличие функции измерения напряжения в режиме осциллограф;
- Наличие режима автокалибровки в режимах измерения емкости и измерения сопротивления;
- Наличие входного универсального разъема для подключения кабеля для всех пяти режимов работы;
- Наличие символьного дисплея с подсветкой размером 2 строки по 16 символов;
- Наличие трех кнопок управления: «кнопка переключения режимов3»-3, «кнопка увеличения значения параметра»-1 и «кнопка уменьшения значения параметра»-2.
Технические характеристики устройства
- Диапазон измерения частоты Гц 0.1-15000000;
- Диапазон генерации частоты Гц 0-100000;
- Количество точек по горизонтали для осциллографа Шт 16;
- Количество точек вывода по вертикале для осциллографа Шт 8;
- Диапазон чувствительности входа осциллографа В 0-5;
- Диапазон измерения емкости мкФ 0.00001 – 2000;
- Диапазон измерения сопротивления ОМ 1 — 200000000;
- Напряжение питания В 5;
- Рабочая температура 0 … +60ºС.
Порядок работы
Включить прибор на экране дисплея временно (1 Сек) появится сообщение «Измерение R» и прибор перейдет в режим измерения сопротивления. Переход из одного режима в другой осуществляется циклически при помощи кнопки переключения режимов «3» в порядке: «Измерение R», «Измерение С», «Осциллограф», «Генератор», «Частотомер». При переходе из режима в режим осуществляется кратковременная индикация названия режима. В режиме «Генератор» изменение частоты генерации происходит кнопками «1» — (увеличение частоты) и «2» (уменьшение частоты). В режиме «Осциллограф» кнопками «1» и «2» производится изменение времени развертки, измерение уровня сигнала происходит автоматически с индикацией его значения. В режимах «Измерение емкости» и «Измерение сопротивления» переключение диапазонов измерения происходит автоматически. Калибровка нуля в этих режимах происходит нажатием и удержанием кнопки «1»,с последующей записью в память кнопкой «2» и калибровка по номиналу 1000 ом или 1000пф нажатием и удержанием кнопки «2» с последующей записью в память кнопкой «1».
Изменение время измерения частоты осуществляется кнопкой «1», позволяющей измерять частоту с точностью до 0.1 Гц. Само время измерения (Сек) индицируется в крайнем правом знакоместе верхней строки.
Фото устройства моей сборки:
Режим измерения сопротивления
Измерение емкости конденсаторов
Осциллограф
Генератор
Частотомер
Печатная плата внутри корпуса
При прошивке микроконтроллера фьюзы выставляем так:Дополнительные материалы (проверенная ппрошивка, печатная плата в формате .lay):
[hidepost]Скачать прошивку микроконтроллера
Скачать печатную плату в формате .lay [/hidepost]
Для тех кто захочет повторить данное устройство выкладываю наклейку на переднюю панель прибора
Автор: Киричик С.
Схема измерителя емкости на микроконтроллере AVR Atmega8
С помощью представленного в данной статье измерителя емкости можно измерять емкость конденсаторов с разрешением 1 пФ в нижнем конце диапазона. Максимальное значение емкости, которое можно им измерить, составляет 10000 мкФ. Ошибка измерения не превышает 0.5% в наихудших случаях, типовое же значение составляет примерно 0.1% — измерена экспериментально при тестировании нескольких десятков конденсаторов. Труднее всего схеме даются измерения электролитических конденсаторов большой емкости.
Можно включить либо полностью автоматический выбор пределов измерения, либо заставить устройство принудительно работать в нижнем или верхнем диапазоне емкостей. Устройство характеризуется наличием двух разных пределов измерения, позволяя производить два измерения для одного и того же конденсатора. С помощью данного приема можно проверить точность измерения и определить действительно ли мы подсоединили к прибору конденсатор, а не какую-нибудь другую радиодеталь. Больше всего разница в пределах измерения проявляется на электролитических конденсаторах, что обусловлено их значительной нелинейностью в различных режимах измерения.
В приборе реализована система меню, с помощью которого можно откалибровать нулевое значение и емкость в 1 мкФ. Результаты калибровки сохраняются в EEPROM (энергонезависимую память данных микроконтроллера).
Проект реализован на одном из самых простых микроконтроллеров семейства AVR — Atmega8 (Атмега8). Питание схемы осуществляется от 9-вольтовой батарейки (типа «Крона») при помощи линейного регулятора 7805.
Устройство может функционировать в 3-х режимах: измерение в нижнем диапазоне, в верхнем диапазоне, и в режиме разрядки. Данные режимы определяются состоянием выводов PD5 и PD6 микроконтроллера. Во время разрядки PD6 имеет значение логического 0 и осуществляется разрядка конденсатора через резистор R7 (220 Ом). В верхнем диапазоне измерений вывод PD5 имеет логический 1, заряжая при этом конденсатор через R8 (1.8K), а PD6 находится в Z-состоянии что позволяет встроенному компаратору микроконтроллера сравнивать напряжение. В нижнем диапазоне измерений вывод PD5 также находится в Z-состоянии – в этом случае конденсатор заряжается только через резистор R6 (1.8 MОм).
В качестве индикатора можно использовать практически любой дисплей на контроллере HD44780 размером 16×2 символов. Разводка коннектора дисплея показана на следующем рисунке.
Прибор можно собрать на макетной плате и поместить в простой прямоугольный корпус из пластика. В крышке корпуса необходимо вырезать отверстия под индикатор, кнопку и светодиод, и закрепить их термоклеем.
Вместо микроконтроллера Atmega8 можно использовать микроконтроллеры семейства atmega48/88/168, но при этом в программе, доступной для скачивания по нижеприведенной ссылке, необходимо изменить строку, отвечающую за конфигурацию таймера конкретного микроконтроллера.
Внешний вид «внутренностей» устройства
Скачать файлы программы можно по следующей ссылке:
Capmeter (7,4 KiB, 118 hits)
Ремонт транзистор-тестера или ESR метра
Вот и постигла меня печальная участь.Спалил свой транзистор-тестер, он же ESR метр.
Палится очень просто — не разряженным конденсатором, т.к. входы тестера напрямую приходят в микроконтроллер.
Выглядит мой экземпляр вот так:
На плате обозначение: WEI_M8_NLG_TST_V1.10
Штука это незаменимая в работе.
Последнее время я совсем обленился и стал ей всецело доверять проверку элементов при разного рода ремонтах.
Например: надо проверить полевичок, подцепляем, если тестер показывает картинку — значит целый.
Померить ESR конденсатора — запросто.
А тут такая беда — сгорел. Надо чинить.
Тестер построен на микроконтроллере ATMega328p, точно на таком же как Arduino nano/mini.
Ну вы поняли мысль? 🙂
У меня как раз завалялась одна китайская Arduino pro-mini, которая быстренько этого контроллера лишилась.
Осталась одна платка:
Запаиваем в наш тестер, предварительно сняв экран:
Остаётся всего-то залить прошивку и можно пользоваться.
И вот тут я подзастрял надолго.
И так, структурирую свой тернистый путь долгих поисков и освоения магии прошивки этого чуда прибора.
Суть сводится к следующим действиям:
1. Скомпилировать прошивку, с нужными опциями под свою версию платы тестера.
2. Прошить ATMega328p
3. Profit!
Из статьи товарища elchupanibrei узнаём, что существует и здравствует форк проекта некого Маркуса, с нужными нам исходниками для сборки прошивки.
На портале vrtp.ru находится заметка юзера indman с подробным описанием процесса компиляции прошивки.
Приведу её здесь:
Установка программного обеспечения
1. Установить программу WinAVR-20100110-install.exe (при установке использовать параметры по умолчанию)
2. Распаковать содержимое архива «avr8-gnu-toolchain-installer-3.4.4.24-wi
(в последних релизах прошивки без этих исходников, при прошивке МК m328 возникает ошибка типа «..программа выходит за диапазон памяти МК»).
Компиляция прошивки
1. Скачать с сайта автора по ссылке https://www.mikrocontroller.net/svnbrowser/transistortester/Software/trunk/ текущий дистрибутив прошивок.
Для этого кликнуть внизу страницы на строчку «Download GNU tarball».
2. Распаковать скачанный дистрибутив «transistortester-trunk.tar.gz» в каталог, например С:\Trunk (кирилицу в обозначении имени каталога не использовать).
3. Из каталога C:\Trunk\default удалить всё,кроме каталога «dep«.
4. Скопировать в каталог C:\Trunk\default соответствующий процессору файл «makefile«.
Вот тут нужна ремарочка.
В моей плате, которая WEI_M8_NLG_TST_V1.10, используется дисплей st7565, в дистрибутиве прошивок есть каталог mega328_wei_st7565 — это как раз наш вариант.
Файлик «makefile» можно взять прямо оттуда. Ну или из каталога mega328, но тогда придётся проверять и править больше опций.
Дисплейчик st7565 (разрешением 128×64):
Дальше нужно пробежаться по большому списку опций, проверить, что всё выставлено верно.
Перечень опций можно найти в инструкции Версия 1.12k в разделе Конфигурирование Тестера (стр. 50).
В файле «makefile«, который мы взяли в каталоге mega328_wei_st7565 я поменял только 3 опции:
UI_LANGUAGE = LANG_RUSSIAN
CFLAGS += -DLCD_CYRILLIC
CFLAGS += -DNO_LONG_PINLAYOUT
Захотелось что-то меню на русском, а остальное стояло, на мой взгляд верно 🙂
В принципе можно поиграть со шрифтами, например вместо
CFLAGS += -DFONT_8X12thin
поставить помельче
CFLAGS += -DFONT_8X16thin
но меня вполне устраивает и первый вариант.
5. Запустить редактор WinAVR (C:\WinAVR-20100110\pn\pn.exe)
6. Открыть Makefile.
7. Скомпилировать Makefile, для этого выполнить команды меню: Tools-Make All.
8. Если компиляция завершилась удачно — получаем код выхода равный 0 (Process Exit Code:0).
Скомпилированные файлы прошивки «TransistorTester.eep» и «TransistorTester.hex» будут находиться в том же каталоге C:\Trunk\default.
Для корректной компиляции в среде Win10 необходимо заменить одну библиотеку по адресу: %каталог с установленным WinAVR%\utils\bin\msys-1.0.dll
Библиотека прилагается в архиве в конце этой статьи.
Скомпилировали, получили два файлика: «TransistorTester.eep» и «TransistorTester.hex«.
Теперь нужно как-то прошить нашу ATMega328p.
У кого под рукой есть программаторы типа: TL866, USBasp или даже китай типа:
дальше будет не интересно.
Но у меня ничего подобного не водится, зато водится FTDI FT232RL, который прекрасно справится с ролью прошивки нашего контроллера:
И тут опять мне помогла статья про программатор из FT232R elchupanibrei.
Я до этого и не знал, что им можно прошивать AVR микроконтроллеры.
Прошивается режиме BitBang, через програмку AVRDUDE.
Проблема в том, что официальные версии AVRDUDE не поддерживают BitBang и предлагают самим пользователям, скомпилировать программу, установив необходимые для этого библиотеки.
Но, на radiokot.ru я нашёл статейку, где добрые люди за меня уже скомпилировали и выложили нужную версию AVRDUDE.
Правда без непоняток, и в этот раз необошлось.
В конфиге avrdude.conf, в секции которая нас интерсует, записаны номера пинов miso=1, sck=0, mosi=2, reset=4
programmer
id = «ft232r»;
desc = «FT232R Synchronous BitBang»;
type = «ftdi_syncbb»;
connection_type = usb;
miso = 1; # RxD
sck = 0; # TxD
mosi = 2; # RTS
reset = 4; # DTR
;
В другом конфиге, который я нашёл на каком-то форуме, были другие цифры:
programmer
id = «ft232r»;
desc = «FT232R Synchronous BitBang»;
type = «ftdi_syncbb»;
connection_type = usb;
miso = 3; # CTS X3(1)
sck = 5; # DSR X3(2)
mosi = 6; # DCD X3(3)
reset = 7; # RI X3(4)
;
Долго не мог понять откуда эти цифры, которые совсем не соответствуют реальной распиновке FT232RL:
А разгадка такая:
Распиновочка из таблички 2.1 официальной PDF-ки FTDI:
Тут я уже отметил пины, которые использовал, красным цветом.
Оказывается, в FT232RL можно переназначать выводы произвольным образом, что как раз и указывается в конфиге avrdude.conf.
В моей платке имеются выводы CTS, TX, RX и DTR (их отметил красным в столбце Pin Number, который соответствует реальной-физический распиновке FT232RL).
Вот на них и будем назначать выводы для программирования нашего контроллера (я назначил выводы, как в столбце Signal, но их можно перетасовать как угодно).
Исходя из таблички, мой конфиг будет выглядеть следующим образом:
programmer
id = «ft232r»;
desc = «FT232R Synchronous BitBang»;
type = «ftdi_syncbb»;
connection_type = usb;
miso = 1; # RxD
sck = 0; # TxD
mosi = 3; # CTS
reset = 4; # DTR
;
Так, с FT232RL разобрались, теперь надо понять, куда подключаться на нашей плате.
Ну тут уже проще.
Впаял разъёмчик на 6 пинов начиная с самого правого:
Подключаем к этим пинам наш адаптер FT232RL и запускаем AVRDUDE.
Кстати, рекомендую использовать GUI AVRDUDESS, лично мне так гораздо нагляднее и удобнее работать:
Тут я уже выставил все необходимые настроечки и фьюзы — fuses.
Пару слов о fuses.
Есть хорошая статья про них на сайте easyelectronics.ru (сайт всячески рекомендую к просмотру, там много чего интересного имеется).
Рекомендую также пользоваться калькулятором фьюзов для AVR.
Конкретно для моей платы WEI_M8_NLG_TST_V1.10 фьюзы расчитаны так:
Extended Fuse установлены как 0xFF не просто так.
Обычно там ставится 0xFC, но на стр. 27 инструкции Версия 1.12k есть информация о том, что может происходить сброс процессора из-за короткого провала напряжения «Brown Out»,
и, чтобы убрать обнаружение этих провалов, нужно сделать небольшую доработку платы или поставить Extended Fuse на 0xFF
Всё, фьюзы поставили, можно прошивать.
После прошивки, тестер попросит сделать калибровочку, после чего можно пользоваться:
Архив с готовыми прошивками и софтом — тут.
Автоматический определитель электронных компонентов / Habr
Очень интересное и несложное устройство, которое позволит измерить сопротивление, ёмкость и индуктивность любого элемента за несколько секунд.
Для этого потребуется совсем немного деталей, которые обычно есть у каждого начинающего ардуинщика: микроконтроллер ATMEGA, двухстрочный дисплей и несколько резисторов.
Разработал это устройство Маркус Фрейек (финальная версия проекта на немецком), а затем, и по сей день дорабатывает Карл-Хайнц Куббелер (текущая страница проекта на немецком).
Несмотря на то, что этот проект позиционируется как тестер транзисторов, мне гораздо больше интересна его способность быстро измерять двухвыводные компоненты, отсюда и название статьи.
Полный список возможностей устройства:Полностью автоматическое определение следующих копмонентов:- резисторов с указанием сопротивления
- конденсаторов с указанием ёмкости
- индуктивностей с указанием сопротивления и индуктивности
- диодов с указанием анода, катода и падения напряжения
- биполярных и полевых транзисторов с указанием выводов БКЭ и СИЗ
- тиристоров и симисторов с указанием выводов КА-УЭ
Его можно купить как собранное устройство или как конструктор для сборки, но самое интересное — можно собрать самому на макетной плате за полчаса из деталей, которые часто уже есть под рукой.
Максимально упрощенная схема для быстрой сборки:
Самая свежая прошивка на текущий момент лежит здесь. Нужно только выбрать подкаталог для конкретной модели микроконтроллера.
К сожалению, если использовать ATMEGA8A, то будет или завышаться измерение сопротивлений в 1.5 раза, или занижаться измерение ёмкости в 1.5 раза, и будет нужна прошивка специально для 8A, найти её можно здесь, файл ATmega8A_Engl.zip. А лучше сразу найти и использовать ATMEGA328P.
Детальная техническая документация на русском языке доступна здесь. В каталоге нужно выбрать файл ttester.pdf. (Внизу страницы жмём «Download GNU tarball», архив распаковываем и находим нужный PDF.)
Выглядит, конечно, неопрятно, зато уже работает.
Точность измерения пока невысока, но даже в таком виде это просто замечательный прибор, который я обязательно сделаю в корпусе и поселю у себя на столе.
Для улучшения точности измерений планирую приближаться к эталонной схеме следующими шагами:
- Поменять измерительные резисторы на более точные с отклонением в 1%.
- Добавить кварц на 8 МГц.
- Поставить ИОН
- Перенести на паяную плату с минимальной длиной проводников.
- Перейти на ATMEGA328.
Эти компоненты пока в пути, по прибытию обновлю статью с результатами.
UPDATE 1
Приехали компоненты, заменил ATMEGA8A на ATMEGA328P, стали определяться индуктивности и ESR у конденсаторов. Обновил КДПВ.
После замены МК измерения стали производиться гораздо дольше, после измерения стало появляться сообщение TimeOut! и экран выключался через пару секунд. Согласно инструкции, подключил резистор 10К от питания к выводу 13, всё стало работать нормально.
Заменил резисторы на 1%, (к сожалению купить 0.1%, как рекомендуется в инструкции, мне не удалось). Определение резисторов улучшилось, но всё равно грубовато.
Нашел 1% резисторы разных номиналов и измерил их.
Вот номиналы, результаты замера мультиметром DT-838 (заявленная точность измерений 1%) и собранной схемой (после рекомендуемой калибровки):
82.5 ом — 92.3 ом — 96.8 ом
392 ом — 390 ом — 426 ом
649 ом — 640 ом — 693 ом
499 ом — 497 ом — 510 ом
1к — 1001 ом — 987 ом
4.27к — 4.27к — 4.274 ом
4.75к — 4.75к — 4707 ом
13.3к — 13.28к — 13.04к
22.6к — 22.5к — 22.1к
1.65к — 1698 ом — 1620 ом
1м — 1014к — 996 к
10м — out of range — 8783к
20м — out of range — 17.83м
Радует возможность определения таких огромных сопротивлений.