Прибор для измерения CRLF

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Прибор для измерения CRLF

Сообщение codenamehawk »

Прибор для измерения емкости, сопротивления, индуктивности и частоты.
Сделал прибор на Атмеге 16, исходные коды прилагаются.

Файлы и описание на моем сайте https://sites.google.com/site/mariankmh ... el-c-r-l-f

Если возникнут вопросы, попытаюсь ответить.
Реклама
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Прибор для измерения CRLF

Сообщение otest »

Описание любого прибора начинается с его характеристик. Что он может ? Где полная схема ?
Реклама
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Прибор для измерения CRLF

Сообщение codenamehawk »

Параметры прибора:
Измерение емкости 1pF - 10000 mkF
Измерение сопротивлений 1 OM - 10 MOM
Индуктивности 1 mkH - 9.9 H (тут проверял только на обычных индуктивностях, укладываются в 5%)
Частотный диапазон 0,035 Hz - 270 KHz (при измерении у верхней границы 272727 Hz, показывает 272766.63Hz)

Схему выложил.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Прибор для измерения CRLF

Сообщение YS »

Прибор для измерения CRLF
Прочел как CR LF, 0x0D 0x0A. :) Сидел и думал, чего же там измерять, пока в тему не зашел. :)))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Эиком - электронные компоненты и радиодетали
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Прибор для измерения CRLF

Сообщение codenamehawk »

:shock: :)))
Реклама
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Прибор для измерения CRLF

Сообщение akl »

codenamehawk писал(а):Частотный диапазон 0,035 Hz - 270 KHz (при измерении у верхней границы 272727 Hz, показывает 272766.63Hz)
При тактовой 16МГц на mega16 можно измерить как минимум 6,4 МГц. Правда, нужно дополнительно подать измеряемую частоту на PB0/T0. Например, при тактовой 8 МГц измеряется 3,3 МГц.
Реклама
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Прибор для измерения CRLF

Сообщение codenamehawk »

Для повышения точности измерений, замер частоты производится для 512 импульсов, поэтому получилась столь не высокая входная частота.
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Прибор для измерения CRLF

Сообщение akl »

Здравствуйте. Посмотрел Ваши исходники и не заметил в выражении вычисления частоты числа 512 периодов. Но, даже если это действительно так, то все равно у меня получаются другие цифры.
Предположим, что на вход ICP1 поступают импульсы с частотой 272727,0 Гц.
Частота тактирования контроллера 16'000'000 Гц
Меряется 512 периодов, в течение которых счетчик тактов должен насчитать 30'037 и частота должна быть
Fx~16'000'000*512/30'037~272730,3 Гц
Если не обрекать контроллер на бездействие задержкой 300 мсек и это время посвятить измерению, то
за это время пройдет 81'819 периодов Fx и счетчик тактов должен насчитать 4'800'052
Fx~16'000'000*81'819/4'800'052~272727,0 Гц
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Прибор для измерения CRLF

Сообщение codenamehawk »

В menu.c в процедуре execute_menu_punkt присваивается czekac_impulsow = 512;
Все это справедливо при измерении малых номиналов деталей, для больших номиналов измерения при поступлении одного входного импульса.
Меряется 512 периодов, в течение которых счетчик тактов должен насчитать 30'037
Это все в теории.

Логика работы программы такая:
(sbros_przed_liczeniem)
Сбросили переменные, таймер1 начал отсчет от нуля.
(ISR(TIMER1_CAPT_vect))
Первый захват таймера сохранит в

Код: Выделить всё

Poczatek = ICR1;
  per_pocz = perepolnenije_timer1;
количество импульсов которые насчитал таймер1 (с учетом количества переполнений таймера, если таковы были)
Дальше ожидаем заданное количество входных импульсов и снова сохраняем значения таймера1 в другие переменные.

Код: Выделить всё

		if (!(--przyjmowac_impulsow)) // przyjac zadana ilosc imp
		{
			Koniec = ICR1;
			per_kon = perepolnenije_timer1;
			koniec_mierzenia = 0; //zlapali koniec impulsa, koniec mierzenia
		}

Дальше расчет частоты
(wyliczyc_dlug_jednego_imp)

Код: Выделить всё

	//одно переполнеие таймера1 = 0x10000, (0xFFFF+1)
	imp_pocz = (unsigned long) per_pocz * 0x10000 + Poczatek;	//кол. имп. таймера1, от сброса до первого захвата
	imp_kon  = (unsigned long) per_kon  * 0x10000 + Koniec; 	//кол. имп. таймера1, от сброса по принятие, заданного кол. входных имп.
	przyjeto_imp_taimera  = imp_kon - imp_pocz;						//кол. имп. таймера1, от первого захвата по принятие, заданного кол. входных имп.
	ilosc_imp_taimera = (double) przyjeto_imp_taimera / czekac_impulsow;		//кол. имп. таймера1, которые помещаются в одном входном импульсе
	czastota = (double)F_CPU / ilosc_imp_taimera;							//расчет входной частоты
Прибор позволяет замерять емкость с "дискретностью" 0.13 пф (меньше не получается из за температурного дрейфа частоты генератора)
Точность прибора не была проверенна объективно. (нет точного прибора)
Пришлось настраиваться на "заведомо известных" конденсаторах.
Из измерений получены след. результаты
22пф показания 22,2 пф
1000 пф NPO 1% точности (перемерены 30 шт) от 996 до 1003 пф
Последний раз редактировалось codenamehawk Пн фев 04, 2013 16:49:47, всего редактировалось 1 раз.
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Прибор для измерения CRLF

Сообщение codenamehawk »

0.3 сек задержка введена для удобного визуального восприятия отображаемых результатов.
(без нее младшие цифры сливаются в одно, результат становится не читаемым)
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Прибор для измерения CRLF

Сообщение akl »

codenamehawk писал(а):Это все в теории.
...без 0.3 сек задержки младшие цифры сливаются в одно, результат становится не читаемым
Логика работы программы такая:
"Похоже, но не то - подумал ёжик, слезая со щетки"
Резюмирую. Частоту, с использованием захвата, Вы, пока, мерять не научились. Удачи.
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Прибор для измерения CRLF

Сообщение codenamehawk »

akl писал(а): Резюмирую. Частоту, с использованием захвата, Вы, пока, мерять не научились. Удачи.
Не верные выводы.
Вы ссылаетесь на один из возможных методов измерения частоты.
Я его проверял в этой схеме.
Результаты оказались не хуже и не лучше, чем в алгоритме который применен у меня.
Мой алгоритм это немного измененная версия http://chipenable.ru/index.php/programm ... a-avr.html
Почему отказался от вашего алгоритма - нужны две разные функции, одна для измерения низкой частоты вторая для высокой.
У меня все это выполняет одна, плюс используется всего один таймер.
Да верхний диапазон выше, но для данного прибора в этом нет нужды (частота генератора меняется в пределах от 0 до 110000 герц),
а точность измерений обоих методов достаточная для этого прибора.
Ответить

Вернуться в «Разные вопросы по МК»