реклама на сайте
подробности

 
 
> LC-метр. Измерить малые частоты.
Didro
сообщение May 1 2009, 15:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 9-04-07
Пользователь №: 26 893



Добрый день,
Собрал LC-метр по схеме с сайта - http://www.antennex.com/Sshack/aade/specs.htm

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

В качестве МК выбрал ATmega16 на частоте 8 Мгц. Подключаю схему к 16 битному счетчику (также к пину подключено 10 кОм-ое сопротивление, которое "подтягивает" пин на землю), в течении 0,4 секунды таймер включен и считает импульсы,при переполнении счетчика происходит прибавление FFFFh к регистру организованному на 3х восьмибитных регистрах,по окончанию 0,4 секунды содержимое в регистрах TCNT1H и TCNT1L прибавляется к сумме 24х битного составного регистра, затем программа через COM-порт передает три байта данных (количество импульсов за 0,4 сек).

Проблема в том, что когда измеряется исходная частота в 750 КГц, так же при малых подсоединяемых емкостях (следовательно и малого уменьшения частоты) данные приходят верные и достаточно стабильные по значению, но когда подсоединяется относительно большая емкость в 100 нФ происходит сильное снижение частоты до 60 Кгц (проверено на осциллографе) и данные приходящие из счетчика становятся неверные их значение колеблется от 0 до 255, когда нормальным было бы значение в 20000.
Может быть проблема с частотой импульсов приходящих на пин таймера? то есть частоты ниже некоторой планки не могут быть правильно
подсчитаны таймером.

Cхема:

Прикрепленное изображение


Стоит исключить предположение, что COM на МК настроен неверно или программа на компьютере настроена неправильно, т.к. все неоднократно проверялось путем пересылки нескольких байт, как с МК->ПК, так и наоборот.

Кусок исходного кода управления таймером:

Код
CMD_FREQ:
;очищаем регистр-накопитель
clr r1
clr r2
clr r3
;делаем замер частоты
ldi r17,(1<<CS10)|(1<<CS11)|(1<<CS12)
out TCCR1B,r17
clr r17
;ждем 0,4 секунды
rcall WAIT
;выключаем счет
out TCCR1B,r17
;считываем данные счетчика
in r21,TCNT1H
in r20,TCNT1L
;прибавляем к накопителю 'хвосты'
add r1,r20
adc r2,r21
adc r3,r17
;очистка
out TCNT1H,r17
out TCNT1L,r17
;отсылаем первый байт селектор
ldi r17,NORBYTE
out UDR,r17
rcall WAIT_USART
;отсылаем три информационных байта
out UDR,r3
rcall WAIT_USART
out UDR,r2
rcall WAIT_USART
out UDR,r1
rcall WAIT_USART
;обработчик прерывания переполнения TIMER1
AddVal:  
;прибавляем значение переполнения
add r1,r23;в r23 и r24 заранее записано значение FFFFh
adc r2,r24
adc r3,r17; r17=0
reti

Программа для работы с МК по COM - Terminal v 1.9b

Сообщение отредактировал Didro - May 1 2009, 15:24
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
John851
сообщение May 5 2009, 15:45
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 2-05-09
Пользователь №: 48 549



Цитата
В смысле "Вся наша жизнь - ...". Не нравится "боретесь"? Подставьте "дружить", "работать", "мучаться" или любой более симпатичный Вам глагол в форме второго лица множественного числа.
См. выше. Если осмыслить не удастся, "ну извиняй, боярин" - повторяться я тоже не буду.

Вот зачем выпендриваться? Я русский человек и все прекрасно понимаю, но вы употребляете такие сочетания которые не встретишь в нормальном русском языке. К примеру выражение "Вы боретесь в прерывании" мне вообще не понятно, другое дело "работаете с таймером".
Во вторых что вы понимаете под выражением "фривольные упражнения с интервалом времени"? Звучит глупо, спросите любого кто прочитает этот набор слов. Это не русский язык, а ваш собственный и я его не понимаю. Говорите на нормальном русском чтоб я понимал суть ваших предложений.

НЕНАДО МНЕ СОВЕТОВАТЬ КАК ПОДСЧИТАТЬ ЧАТОТУ ИЛИ НАХОДИТЬ НЕРАЦИОНАЛЬНОСТИ В КОДЕ, ПОТОМУ ЧТО ВСЕ УЖЕ СОБРАНО И НОРМАЛЬНО РАБОТАЕТ. незная задачи которая поставлена передомной вы пытаетесь рассказать что мой код не подойдет если еще будет клавиатура, мышка или еще что то, одним словом того чего нет и не потребуется в моей задаче.

ВНИМАНИЕ ВОПРОС !!!
Если включать таймер на 0,4 секунды (как это написано в техн. описании прибора), то наблюдается что то непонятное. Тестовая частота 760 Кгц на счетчике за этот период времени насчитывается без проблем, но стоит подключить конденсатор с нанофарадной емкостью (к примеру 100 нФ), так с МК начинают приходить очень странные данные - всегда заполнен только младший байт и значения в нем колеблются от 0 до 255. я и подумал, что проблема в частоте поступающих импульсов.
С увеличением задержки до 1 секунды проблема исчезает.
Вопрос: почему так происходит?? вроде же таймеру всеравно сколько времени считать и неважно какой частоты приходят импульсы. Возможно МК с деффектом или счетчик AVR всетаки имеет какие то ограничения.


Кто знает, пожалуйста ответьте на мой конкретно поставленный вопрос, для тех кто незнает и хочет написать что-то об моем коде, о точности прибора, о правильном подсчете частоты и т.д. есть высказывание "молчание-золото".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Didro   LC-метр. Измерить малые частоты.   May 1 2009, 15:22
- - domowoj   А как же у людей работает, публикаций много вот н...   May 2 2009, 11:03
- - John851   вопрос не в том какже у людей работает, а где ошиб...   May 2 2009, 14:42
- - John851   сам себе же и отвечу... почему то при увеличении з...   May 2 2009, 16:07
|- - rx3apf   Цитата(John851 @ May 2 2009, 20:07) сам с...   May 2 2009, 21:41
|- - John851   Цитата(rx3apf @ May 3 2009, 00:41) ...   May 3 2009, 13:11
- - domowoj   Если не получается измерять частоту с достаточной ...   May 3 2009, 13:40
- - John851   да это тоже выход, но проблема в другом: Если вкл...   May 4 2009, 17:17
- - xemul   Судя по reti, с таймером Вы боретесь в прерывании ...   May 4 2009, 20:13
- - John851   ЦитатаСудя по reti, с таймером Вы боретесь в преры...   May 5 2009, 09:41
|- - xemul   Цитата(John851 @ May 5 2009, 13:41) немно...   May 5 2009, 11:58
- - xemul   Мил человек, уж, вестимо, не Вам учить меня велик...   May 5 2009, 17:32
- - John851   Знаки препинания надоело расставлять, а черными за...   May 5 2009, 18:39


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.0145 секунд с 7
ELECTRONIX ©2004-2016