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

 
 
 
Reply to this topicStart new topic
> Измерение частоты синусоиды на Xmega
Leonmezon
сообщение Jul 31 2011, 19:33
Сообщение #1


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

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



Есть идея померить частоту синусоиды на Xmega с помощью компаратора, а именно есть синусоида частотой от 0 Гц до 1 кГЦ, амплитудой от 50 мВ до 1 В - смещаю ее на 1,25 В и подаю на ножку компаратора
и далее (в соответствии с даташитом стр. 331 таб. 27-1 режим RISING) я должен получать событие которое будет возникать только при положительном переходе сигнала через порог (т.е. фактически частота событий будет равна частоте синусоиды)
Вот код
Код
//Инициализация и включение аналогового компаратора 0 порта A для измерения частоты синусоидального сигнала с амплитудой от 50 мВ до 1В с смещением в положительную область на 1,25 В  
void init_AC(void)
{
    // Конфигурируем канал 0 на работу в несимметричном включении
    ACA.AC0CTRL |= AC_ENABLE_bm; //Разрешаем компаратор А канал 0
    ACA.AC0CTRL |= AC_INTMODE_RISING_gc; // Реагируем только по нарастающему фронту
    ACA.AC0CTRL &= ~AC_HSMODE_bm; //Установка нормального режима (не быстрого).
    ACA.AC0CTRL |= AC_HYSMODE_NO_gc; //Без гистерезиса
    ACA.AC0MUXCTRL |= AC_MUXPOS_PIN0_gc; //На неинвертирующий с 0 входа
    ACA.AC0MUXCTRL |= AC_MUXNEG_SCALER_gc; // На инвертирующий вход - от внутреннего делителя напряжения
    //ACA.CTRLA |= AC_AC0OUT_bm; // Выход на 7 ножке;
    ACA.CTRLB |= 0x16; // Коэффициент деления при напряжении питания 3,5 В при уровне среднего (смещение) 1,25 В, напряжение реагирования компаратора: b10110=0x16 - примерно 1,2578125В
    EVSYS.CH0MUX = EVSYS_CHMUX_ACA_CH0_gc;// Событие возникает при срабатывание компаратора A канал 0
    TCC1.CTRLA = TC_CLKSEL_EVCH0_gc; // перенаправляем событие на таймер/счетчик для дальнейшего подсчета
}
... и далее на таймере измеряю частоту сигнала

кто нибудь пребывал такие режимы? (и правильно ли я его понимаю).

Сообщение отредактировал Leonmezon - Jul 31 2011, 19:34
Go to the top of the page
 
+Quote Post
Zlumd
сообщение Aug 1 2011, 16:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057



Почитай еррату. С компаратором и Voltage Scalerом есть проблемы.
Амплитуда синусоиды всего 50 мВ. Не будет ли плавать порог, задаваемый Voltage Scalerом ?
У меня на Xmega128A1 не получилось Voltage Scaler запустить. Пришлось DAC использовать в качестве порога.
Может проще усилить в 100 раз внешним усилителем?
Go to the top of the page
 
+Quote Post
Leonmezon
сообщение Aug 1 2011, 18:17
Сообщение #3


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

Группа: Участник
Сообщений: 191
Регистрация: 11-02-09
Из: Краснодар
Пользователь №: 44 686



1. Прочитал, кроме нелинейности (что вобщем плохо) - можно использовать, хотя можно и ЦАП подключить (это не проблема) на вход ref подается от ref192 2.5 В стабильных.
2. А вот по режиму RISING - может кто пробывал? (Как я понимаю, при переходе синусоиды через порог (возрастает сигнал) возникает событие, а вот при обратном переходе (уменьшается сигнал) - событие не возникает - так это или нет??? Вот главный вопрос - и в чем идея измерять частоту).
3. Хотелось бы обойтись одним ОУ (тем более изначально сигнал биполярный с разной (изменяется во времени) амплитудой от 50 мВ до 1 В и разной частотой) - фактически ОУ необходим чтобы поднять сигнал 1,25 В и дальше с ним работать, с начало вычислить частоту и дальше по 3 отсчетом (через 120 гр.) вычислить амплитуду - причем точность 1% по частоте и амплитуде будет достаточно.
Go to the top of the page
 
+Quote Post
Zlumd
сообщение Aug 2 2011, 03:14
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057



Цитата(Leonmezon @ Aug 2 2011, 01:17) *
2. А вот по режиму RISING - может кто пробывал? (Как я понимаю, при переходе синусоиды через порог (возрастает сигнал) возникает событие, а вот при обратном переходе (уменьшается сигнал) - событие не возникает - так это или нет??? Вот главный вопрос - и в чем идея измерять частоту).
Да. Так. Я пробовал FALLING mode.
Go to the top of the page
 
+Quote Post
bob1
сообщение Aug 2 2011, 12:07
Сообщение #5


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

Группа: Свой
Сообщений: 82
Регистрация: 17-09-06
Пользователь №: 20 471



хмега32а4.
1. RISING и FALLING -работает. пробовал!!!
2. Voltage Scaler - тоже работает.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 18:24
Рейтинг@Mail.ru


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