Прибор для измерения CRLF
-
codenamehawk
- Вымогатель припоя
- Сообщения: 528
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Прибор для измерения CRLF
Прибор для измерения емкости, сопротивления, индуктивности и частоты.
Сделал прибор на Атмеге 16, исходные коды прилагаются.
Файлы и описание на моем сайте https://sites.google.com/site/mariankmh ... el-c-r-l-f
Если возникнут вопросы, попытаюсь ответить.
Сделал прибор на Атмеге 16, исходные коды прилагаются.
Файлы и описание на моем сайте https://sites.google.com/site/mariankmh ... el-c-r-l-f
Если возникнут вопросы, попытаюсь ответить.
- Реклама
Re: Прибор для измерения CRLF
Описание любого прибора начинается с его характеристик. Что он может ? Где полная схема ?
-
codenamehawk
- Вымогатель припоя
- Сообщения: 528
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Re: Прибор для измерения CRLF
Параметры прибора:
Измерение емкости 1pF - 10000 mkF
Измерение сопротивлений 1 OM - 10 MOM
Индуктивности 1 mkH - 9.9 H (тут проверял только на обычных индуктивностях, укладываются в 5%)
Частотный диапазон 0,035 Hz - 270 KHz (при измерении у верхней границы 272727 Hz, показывает 272766.63Hz)
Схему выложил.
Измерение емкости 1pF - 10000 mkF
Измерение сопротивлений 1 OM - 10 MOM
Индуктивности 1 mkH - 9.9 H (тут проверял только на обычных индуктивностях, укладываются в 5%)
Частотный диапазон 0,035 Hz - 270 KHz (при измерении у верхней границы 272727 Hz, показывает 272766.63Hz)
Схему выложил.
Re: Прибор для измерения CRLF
Прочел как CR LF, 0x0D 0x0A.Прибор для измерения CRLF
Разница между теорией и практикой на практике гораздо больше, чем в теории.
-
codenamehawk
- Вымогатель припоя
- Сообщения: 528
- Зарегистрирован: Вт фев 09, 2010 17:52:26
- Реклама
Re: Прибор для измерения CRLF
При тактовой 16МГц на mega16 можно измерить как минимум 6,4 МГц. Правда, нужно дополнительно подать измеряемую частоту на PB0/T0. Например, при тактовой 8 МГц измеряется 3,3 МГц.codenamehawk писал(а):Частотный диапазон 0,035 Hz - 270 KHz (при измерении у верхней границы 272727 Hz, показывает 272766.63Hz)
-
codenamehawk
- Вымогатель припоя
- Сообщения: 528
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Re: Прибор для измерения CRLF
Для повышения точности измерений, замер частоты производится для 512 импульсов, поэтому получилась столь не высокая входная частота.
Re: Прибор для измерения CRLF
Здравствуйте. Посмотрел Ваши исходники и не заметил в выражении вычисления частоты числа 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 Гц
Предположим, что на вход 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
В menu.c в процедуре execute_menu_punkt присваивается czekac_impulsow = 512;
Все это справедливо при измерении малых номиналов деталей, для больших номиналов измерения при поступлении одного входного импульса.
Логика работы программы такая:
(sbros_przed_liczeniem)
Сбросили переменные, таймер1 начал отсчет от нуля.
(ISR(TIMER1_CAPT_vect))
Первый захват таймера сохранит в
количество импульсов которые насчитал таймер1 (с учетом количества переполнений таймера, если таковы были)
Дальше ожидаем заданное количество входных импульсов и снова сохраняем значения таймера1 в другие переменные.
Дальше расчет частоты
(wyliczyc_dlug_jednego_imp)
Прибор позволяет замерять емкость с "дискретностью" 0.13 пф (меньше не получается из за температурного дрейфа частоты генератора)
Точность прибора не была проверенна объективно. (нет точного прибора)
Пришлось настраиваться на "заведомо известных" конденсаторах.
Из измерений получены след. результаты
22пф показания 22,2 пф
1000 пф NPO 1% точности (перемерены 30 шт) от 996 до 1003 пф
Все это справедливо при измерении малых номиналов деталей, для больших номиналов измерения при поступлении одного входного импульса.
Это все в теории.Меряется 512 периодов, в течение которых счетчик тактов должен насчитать 30'037
Логика работы программы такая:
(sbros_przed_liczeniem)
Сбросили переменные, таймер1 начал отсчет от нуля.
(ISR(TIMER1_CAPT_vect))
Первый захват таймера сохранит в
Код: Выделить всё
Poczatek = ICR1;
per_pocz = perepolnenije_timer1;Дальше ожидаем заданное количество входных импульсов и снова сохраняем значения таймера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; //расчет входной частоты
Точность прибора не была проверенна объективно. (нет точного прибора)
Пришлось настраиваться на "заведомо известных" конденсаторах.
Из измерений получены след. результаты
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
0.3 сек задержка введена для удобного визуального восприятия отображаемых результатов.
(без нее младшие цифры сливаются в одно, результат становится не читаемым)
(без нее младшие цифры сливаются в одно, результат становится не читаемым)
Re: Прибор для измерения CRLF
codenamehawk писал(а):Это все в теории.
...без 0.3 сек задержки младшие цифры сливаются в одно, результат становится не читаемым
"Похоже, но не то - подумал ёжик, слезая со щетки"Логика работы программы такая:
Резюмирую. Частоту, с использованием захвата, Вы, пока, мерять не научились. Удачи.
-
codenamehawk
- Вымогатель припоя
- Сообщения: 528
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Re: Прибор для измерения CRLF
Не верные выводы.akl писал(а): Резюмирую. Частоту, с использованием захвата, Вы, пока, мерять не научились. Удачи.
Вы ссылаетесь на один из возможных методов измерения частоты.
Я его проверял в этой схеме.
Результаты оказались не хуже и не лучше, чем в алгоритме который применен у меня.
Мой алгоритм это немного измененная версия http://chipenable.ru/index.php/programm ... a-avr.html
Почему отказался от вашего алгоритма - нужны две разные функции, одна для измерения низкой частоты вторая для высокой.
У меня все это выполняет одна, плюс используется всего один таймер.
Да верхний диапазон выше, но для данного прибора в этом нет нужды (частота генератора меняется в пределах от 0 до 110000 герц),
а точность измерений обоих методов достаточная для этого прибора.


