0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
1 | |
LC-meter на AVR AtMega809.06.2011, 18:49. Показов 50939. Ответов 19
Метки нет (Все метки)
Всем привет!
Делаю LC-meter на Меге8. За основу взял популярную схему на PIC+LM311, только МК поставил Мега8. Спаял генератор на компараторе LM311, взял осциллограф - мерять частоту генератора. Картинка получилась как на первом рисунке. Но наблюдаю странную картину. При такой схеме период прмерно 2.5мкс (400кГц). При увеличении кондера С5 в 10 раз - измеренный период увеличился только до 3мкс, хотя по идее должен увеличиться в 3 раза (обратная квадратическая зависимость. Увеличиваю до 50 раз - период увеличивается всего в два раза (должен в 7). Как посчитать период по приведенной схеме? Я думал, что период t = 2*Пи* sqrt(L2*C5) Или там как-то еще С3 задействован должен быть? И для чего С4 - для фильтрации от постоянки? С6 - это эталонный, он сейчас никак не подключен. Кстати, думал, что что-то с насыщение катушки, отмотал половину витков - но первоначальный период никак не изменился. И как сделать форму символов прямоугольными - без заваленных фронтов? http://**************************/download/file.php?id=5363&sid=f3b7c8539ddde32cbc34d1ba6723d2cf http://**************************/download/file.php?id=5362&sid=f3b7c8539ddde32cbc34d1ba6723d2cf
0
|
09.06.2011, 18:49 | |
Ответы с готовыми решениями:
19
LC-meter на AVR Задание в AVR studio на atmega8 ATmega8. AVR-GCC в Linux Ubuntu atmega8 fuse биты в AVR Studio Преобразование двоичного числа в десятичное. В микроконтроллере AVR Atmega8 |
0 / 0 / 0
Регистрация: 27.08.2010
Сообщений: 77
|
|
10.06.2011, 00:45 | 2 |
И как сделать форму символов прямоугольными - без заваленных фронтов?
Варистор поставь.
0
|
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 368
|
|
11.06.2011, 22:44 | 3 |
Сообщение от kytikot
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
11.06.2011, 23:37 | 4 |
Ребята, я все две схемы (на ПИКе и Тини2313) подробно проработал.
Причины, по которым я делаю свое - несколько. Во-первых, отсутствие эталонных индуктивностей для схемы на 2313 и, честно говоря, неизвестные коэффициенты в формуле генератора там. Во-вторых - для ПИКа не хочу делать программатор. В-третьих - хочется самому. Но уперся в простую проблему с генератором, которая, в-общем-то, может и не быть связана конкретно с этим прибором.
0
|
0 / 0 / 0
Регистрация: 23.05.2007
Сообщений: 792
|
|
12.06.2011, 14:08 | 5 |
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
20.06.2011, 21:26 | 6 |
В-общем, продолжил я работу. То ли осциллограф у меня был неправильный, то ли индуктивность мала... Решил поставить МК в схему и посмотреть, как будет дело в реальном режиме, уже в полной схеме. Генератор на удивление работает правильно.
Теперь пишу программу. Заткнулся на перемножении 24-х разрядных чисел... А ведь впереди еще деление...
0
|
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
|
|
20.06.2011, 23:20 | 7 |
Чё там перемножать? Сдвинул-сложил, сдвинул-сложил. В аппнотах есть 16 бит, добавить туда еще...
http://studentbank.ru/view.php?id=8479&p=2
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
21.06.2011, 01:34 | 8 |
Я перемножаю байты командой mul.
Пока пытался воткнуть inline assembler в Си. Столкнулся с ограничениями компилятора GCC - там написано, что можно мнемоничестки использовать %А как младший байт, %В - следующий и т.п. Так вот, больше чем %D - не получается, %E он воспринимает опять как младший байт. Приходится оперировать не одним 64-разрядным числом. а двумя 32-разрядными. В-общем, получается (прикидочно) точность до 2-х пикоФарад или до 2-х микроГенри. Мне хватит. P.S. Все идет нормально, но вот, как говорят, дьявол в деталях. То там закавыка непринципиальная, то в другом месте.
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
21.06.2011, 01:45 | 9 |
А в меге же есть аппаратное умножение за два такта. Может проще через восьмибитные произведения?
A = A1<<16 + A2<<8 + A3 B = B1<<16 + B2<<8 + B3 Перемножаем, раскрываем скобки, итого 9 восьмибитных умножений и 18 сумм. И примерно столько же сдвигов.
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
21.06.2011, 11:42 | 10 |
Если хитро оперировать регистровыми парами - то не нужно и сдвигов
A - r16:r15:r14 (A2:A1:A0) B - r24:r23:r22 (B2:B1:B0) res - r11:r10:r9:r8:r7:r6 Код
clr tmp mul r16, r24 ; старшие байты A2*B2 movw r10, r0 mul r14, r22 ; младшие A0*B0 movw r6, r0 ; mul r15, r22 ; A1*B0 add r7, r0 adc r8, r1 adc r9, tmp ; mul r23, r14 ; A0*B1 add r7, r0 adc r8, r1 adc r9, tmp ; mul r16, r23 ; A2*B1 add r9, r0 adc r10, r1 adc r11, tmp ; mul r15, r24 ; A1*B2 add r9, r0 adc r10, r1 adc r11, tmp ; mul r16, r22 ; A2*B0 add r8, r0 adc r9, r1 adc r10, tmp ; mul r14, r24 ; A0*B2 add r8, r0 adc r9, r1 adc r10, tmp ; mul r15, r23 ; A1*B1 add r8, r0 adc r9, r1 adc r10, tmp ; clr r1, r1
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
21.06.2011, 19:38 | 11 |
Ну да, они же восьмибитные. Чего-то переклинило, что если результат умножения - шестнадцатибитный, то его надо будет на байты побить.
0
|
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
|
|
22.06.2011, 12:44 | 12 |
Я вот тоже задумался о том чтобы собрать LC-метр. Но у меня вот какая идея: измерять не время зарядки конденсатора до опред. уровня, а сначала измерить кривую заряда с помощью АЦП, а затем анализируя ее уже вычислить значение емкости. Аналогичное можно сделать и с индуктивностью измеряя кривую тока (подключив последовательно ей резистор переходим к замеру напряжения). Как думаете, будет ли это точнее чем временной или резонансный методы?
0
|
SWK
|
|
22.06.2011, 13:10 | 13 |
Сообщение от K_I_S_T
Также трудно учесть паразитные емкости и индуктивности монтажа и проводов, а в схемах с компаратором это компенсируется при калибровке автоматически. Так что лучше LC схем с генератором на компараторе ничего не придумано. Особенно для малых емкостей и индуктивностей, где такие измерения и нужны, они обеспечивают хорошую точность. Другие же системы при малых значениях имеют погрешность намного больше. |
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
22.06.2011, 20:58 | 14 |
Все, решил насчет перемножения с результатом более 32 разряда - оно мне не нужно.
Если множители более 16-ти разрядов - я их буду "усекать" до 16ти, перемножать с результатом 32 разряда, а потом делить и прочее. а в конце опять расширю сдвигом на столько разрядов, сколько раньше усекал. Точность от этого пострадает на доли процента - этого вполне достаточно. Дело в том. что GCC-AVR (WinAVR Си) более-менее работает с умножением-делением 32-разрядных переменны, но страшно тормозит на 64-х битных в размере кода. А самому с ними возиться тоже не резон. Пробовал IAR, говорят, в нем long long (64 бита) нормально реализовано, но пока он мне "не пошел".
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
23.06.2011, 14:39 | 15 |
Что-то странно меряет мой прибор электролиты (1..2..10мкФ). Показывает период колебаний генератора (и соответсвенно емкость) гораздо меньше расчетной, раз в 10.
У кого есть подобный измеритель на PIC - он меряет электролиты? Да и керамические кондеры, свыше 2мкФ - та же фигня начинается, только в меньшей степени. Такое впечатление, что частота как-то стабилизируется и "не хочет" уменьшаться. На индуктивностях до 10мГн (милли) - вроде все в порядке, больше у меня пока нету. И конечно же, не откажусь от комментариев от уважаемого SWK ;-) ЗЫ В принципе, прибор мне нужен именно для индуктивностей, но возникает вопрос - не будет ли он врать на больших индуктивностях?
0
|
SWK
|
|
23.06.2011, 17:51 | 16 |
Сообщение от kytikot
Для индуктивностей вроде 10 - 100mH. Для некоторых было больше (например, до 2мкф и 3гн), но что-то не верится, тем более что схема практически такая же, как и у других. Верхний предел в основном определяется индуктивностью образцового дросселя, которая оптимизирована в основном для измерения малых величин, что обычно и нужно. Максимальная точность нужна на единицах и десятках, максимум - сотнях пикофарад, так как такие емкости обычно используются в различных контурах и фильтрах, но в обычных приборах (типа мультиметров) как раз при измерении емкостей менее тысячи пик погрешность очень большая, а меньше сотни пик - показания могут отличаться в разы. Естественно, колебательный контур, в котором индуктивность 50-200 мкГ, не может нормально работать при емкости в нем порядка микрофарад, особенно электролитическими и пленочными, у которых есть и собственная индуктивность. Также сложно работать генератору при образцовой емкости обычно 1000 пф, если индуктивность порядка единиц или долей генри. У таких индуктивностей собственная межвитковая емкость может оказаться гораздо больше, да и омическое сомпротивление тоже есть. Так что надо подходить к этому делу разумно. Для моих целей нужны были в основном большая точность на единицах пик и микрогенри (накопилось много конденсаторов без маркировки или с цветными точками), в диапазоне же нанофарад - меня и 10% бы устроило. Тем более что у конденсаторов более 10н обычно уже большой допуск и ТКЕ, и мерять их точно смысла нет. Достаточно такой погреть пальцами, и его емкость заметно уходит. У меня самые часто измеряемые - от единиц пик до 10-100н, а индуктивности от единиц микрогенри до сотен микрогенри, максимум - единицы милигенри. Больше иеня не интересует. Если же нужно мерять большие величины (особенно электролитов), есть другие схемы приборов. Или можно также использовать схему с LC и компаратором, но увеличив образцовые емкость и индуктивность на 2-3 порядка. Соответственно, и время измерения. Например, TOP SWITCH прекрасно работают при разности индуктивности в разы, если его не загружать на все 100% его мощности. Также и к зазору они не критичны, - на макете я у нагруженного преобразователя руками раздвигал половинки сердечника, наблюдая при этом выходное напряжение и форму импульса. Пока он способен был удержать нагрузку - просто менялась скважность. При зазоре порядка миллиметров он просто уходил в режим защиты, генерируя короткие импульсы. Так что я потом мотал трансы для TOP "от фонаря", выбирая удобные для рассчетов и намотки количества витков. Всегда можно было для нагрузки 10вт поставить TOP до 15 или 25 вт, при таком запасе ничего рассчитывать не приходилось. |
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
23.06.2011, 22:32 | 17 |
Спасибо!
Вот как раз для расчета и сборки БП на TOP Switch такой прибор мне и нужен. Возможно, и для других типов импульсных БП. Но там в некоторых расчетах я встречал размеры индуктивностей трансформатора/ дросселя порядка 700-800 милли! Генри. Или там описка и нужно читать как "микро" Генри? Кстати, сколько не гуглил - нигде не нашел подобной схемы генератора на компараторе с колебательным контуром, кроме как в этой известной схеме измерителя. Стандартно попадается схема без контура, и там времязадающим кондером является тот, что между инверсным входом и землей. Может быть, и в этой схеме этот кондер не дает снизить частоту до расчетной частоты контура? P.S. А приборчик для измерения больших кондеров (без ESR) у меня есть - <a ctoss="postlink-local" href="http://forum.iosyitistromyss.ru/viewtopys.php?p=75191#p75191">viewtopys.php?p=75191#p75191[/URL]
0
|
SWK
|
|
23.06.2011, 23:51 | 18 |
Сообщение от kytikot
http://www.mostirkit.ru/info/magshow.ph ... 4o&seorsh= http://www.mostirkit.ru/info/magshow.ph ... 4o&seorsh= http://www.mostirkit.ru/info/magshow.ph ... 4o&seorsh= |
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
25.06.2011, 03:20 | 19 |
Я ограничил измерение пределом в 100тыс. "базовых" единиц - для кондеров это 100нФ, для катушек - 100мГн.
Это при опорных элементах в 1500пФ и 56мкГн. Все вроде получается. Только поизвращаться пришлось с вычислниями при калибровке. В-общем, можно сказать, что сделал. Меряет вроде нормально.
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
28.06.2011, 23:08 | 20 |
Проект перешел в стадию готового устройства - <a ctoss="postlink-local" href="http://forum.iosyitistromyss.ru/viewtopys.php?f=16&t=6225">viewtopys.php?f=16&t=6225[/URL]
Большая благодарность товарищам SWK и okt.
0
|
28.06.2011, 23:08 | |
28.06.2011, 23:08 | |
Помогаю со студенческими работами здесь
20
Программатор JDM Based Extra PIC+AVR , ATMEGA8 и AVRDUDE Написать программу управления светодиодом на языке C в AVR Studio 4 для МК ATmega8 Разница между ATMEGA8-16AI и ATMEGA8-16AU ESR-meter Стилизация тега <meter> LCR meter DER EE DE-5000 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |