Перейти к содержанию

Разработка Нч Генератора


svip

Рекомендуемые сообщения

разрабатываю нч генератор. частоты 0,2 0,4 0,6 0,8 Гц. 4 фиксированные частоты. синусоида

от микроконтроллера отказался, так так не могу в нем добиться точной частоты.

думаю можно использовать генератор на логике на 384Гц и потом с помощью счетчиков делить частоту до нужной. но тут на выходе получается меандр.

Может есть какие варианты?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов 50
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

так и не могу понять как из меандра сделать синусоиду.

Обычно из треугольного импульса делают.

Посмотрите схемы функциональных генераторов, например эту:

http://www.radio-portal.ru/modules.php?op=...mp;page_id=1057

Если хотите, чтобы жизнь улыбалась вам, подарите ей своё хорошее настроение

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

разрабатываю нч генератор... синусоида

от микроконтроллера отказался...

От варианта формирования огибающей с помощью ЦАП Вы тоже отказались?

Ссылка на комментарий
Поделиться на другие сайты

а что если поставить фильтр и оставлять только основную гармонику?

правда фильтр на такие низкие частоты трудновато будет сделать, хотя попробывать моно

Изменено пользователем Hammer

Да возвеличится Россия! Да сгинут наши имена!

Ссылка на комментарий
Поделиться на другие сайты

разрабатываю нч генератор... синусоида

от микроконтроллера отказался...

От варианта формирования огибающей с помощью ЦАП Вы тоже отказались?

каким образом Вы предлгаете использовать цап без контроллера?

Ссылка на комментарий
Поделиться на другие сайты

да, но сам принцып не пойму. как транзистор работает полевик?

Подробное объснение приведено в журнале "В помощь радиолюбителю" №59, стр.38.

Если хотите, чтобы жизнь улыбалась вам, подарите ей своё хорошее настроение

Ссылка на комментарий
Поделиться на другие сайты

правда фильтр на такие низкие частоты трудновато будет сделать

Фильтры на гираторах можно попробовать.

Но это только идея не подкреплённая практикой.

Например вот LC фильтр.

post-11238-1189666725_thumb.jpg

Изменено пользователем aen
Ссылка на комментарий
Поделиться на другие сайты

правда фильтр на такие низкие частоты трудновато будет сделать

Фильтры на гираторах можно попробовать.

Но это только идея не подкреплённая практикой.

Например вот LC фильтр.

post-11238-1189666725_thumb.jpg

с таким фильтром не получится правильная синусоида, особенно на такой частоте. проверяли при 10 гц - совершенно неправильный вид синуса. А на счет выделения первой гармоники - это я думаю самое правильное решение. только как ее выделить чтобы точность соответствовала? и может не только первую но и 2,4,6 для деления частоты? может есть какието уже готовые решения в виде микросхем или фильтров? В теории то все просто через ряд Фурье, но на практике мне к сожалению пока никто не предложил ничего реального

возможно нужно использовать п-образные фильтры, но в них я к сожалению пока не силен

Ссылка на комментарий
Поделиться на другие сайты

А на счет выделения первой гармоники - это я думаю самое правильное решение.

По моему вот так будет лучше,

формирования огибающей с помощью ЦАП

а потом и такой фильтр.

проверяли при 10 гц - совершенно неправильный вид синуса.

А может не один, а несколько. Или более сложный. Это же я для примера простейший привёл.

Изменено пользователем aen
Ссылка на комментарий
Поделиться на другие сайты

формирования огибающей с помощью ЦАП

а можно поподробнее? а то я не понимаю как это реалиовать.

На счет фильтров - пробовал и т и п образные и LC - все равно на такой низкой частоте не могу добиться правильного отображения. В наилучшем случае на "верхушке" присутствует скачок пилообразный

Ссылка на комментарий
Поделиться на другие сайты

формирования огибающей с помощью ЦАП

а можно поподробнее? а то я не понимаю как это реалиовать.

Сейчас уже некогда, но только вчера, позавчера кто то на форуме выкладывал. И раньше тоже упоминали.

Там тогда и фильтр крутой и на такую маленькую частоту не нужен будет. Просто скруглить частоту дискретизации.

Изменено пользователем aen
Ссылка на комментарий
Поделиться на другие сайты

Сейчас уже некогда, но только вчера, позавчера кто то на форуме выкладывал. И раньше тоже упоминали.

Там тогда и фильтр крутой и на такую маленькую частоту не нужен будет. Просто скруглить частоту дискретизации.

Уважаемые модераторы подскажите ссылку на эту тему. никак не могу найти

Ссылка на комментарий
Поделиться на другие сайты

Что-то вроде этого...

Или этого. Имеется в виду это только принцип.

http://irls.narod.ru/izm/gen/fss01.htm

Изменено пользователем aen
Ссылка на комментарий
Поделиться на другие сайты

Или этого. Имеется в виду это только принцип.

http://irls.narod.ru/izm/gen/fss01.htm

Спасибо принцип понял, буду разбираться. вот только бы точность повысить и было бы отлично

Ссылка на комментарий
Поделиться на другие сайты

собрал схему - отлично то что нужно, правда никак не могу разобраться как увеличить разрядность. ставлю еще один регистр с тактовым импульсом с выхода 8 предыдущего регистра. получается со второго буду снимать синусоду, а с первого хотел снять возрастание или убывание синусоиды между значениями второго, но вот проблема как заставить первый регистр в первый полупериод второго увеличивать значения, а во второй ериод - уменьшать?

Ссылка на комментарий
Поделиться на другие сайты

Опять вернулся к микроконтроллеру. решение делать массив для синусоиды и потом перебирать его. задержку делать delayем. Вот только мучает сомнение насчет точности частоты до 1 герца. да и как правильно расчитать задержку.

Пока набросал такую прошивку (atmega16):

#include <mega16.h>
#include <delay.h>


char i;
char flag; 
unsigned char data[]=				 
{
139.6788439,
152.231005,
164.5310662,
176.4561295,
187.8870434,
198.7095941,
208.8156463,
218.1042235,
226.4825175,
233.8668151,
240.1833347,
245.3689639,
249.3718895,
252.1521157,
253.6818633,
253.9458476,
252.9414309,
250.6786491,
247.1801111,
242.4807732,
236.6275896,
229.6790433,
221.7045619,
212.7838239,
203.0059623,
192.4686742,
181.2772448,
169.5434951,
157.3846648,
144.922241,
132.2807441,
119.5864838,
106.9662968,
94.54628004,
82.45053008,
70.7999037,
59.7108101,
49.29404785,
39.65369778,
30.8860831,
23.07880689,
16.3098769,
10.64692603,
6.146536616,
2.853675057,
0.801242539,
0.009746289,
0.487094678,
2.228518197,
5.216617118,
9.421535344,
14.80125872,
21.30203484,
28.85891008,
37.39637865,
46.82913699,
57.06293609,
67.99552321,
79.51766357,
91.51423173,
103.865362,
116.4476458
};

unsigned char len_data = sizeof(data) / sizeof(data[0]);

void main(void)
{

PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0xFF;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;

ACSR=0x80;
SFIOR=0x00;
i=0;
flag=0;

while (1)
  {
  for (i=0;i<len_data;i++)
	{
	 PORTD=data[i];
	 delay_ms(20); // задержка
	}	  

  };
}

и вот схема:

gen_avr.gif

И к ней можно фильтр такой поставить чтобы сгладить синусоиду:

gen_filter.gif

Жду Ваше мнение уважаемые специалисты.

Ссылка на комментарий
Поделиться на другие сайты

Жду Ваше мнение уважаемые специалисты.

Нафига тебе внешний ЦАП? :blink: В Mege16 есть встроенный ШИМ, и если мне не изменяет память, два из них аж 16-разрядные!! И вообще, зачем Mega16 ??? - просто под столом завалялась? В копеечном ATtiny2313 есть те же два 16-разрядных ШИМа (там есть еще два 8-разрядных). А 2к флеши хватит вполне для твоей задачки вместе с таблицей синуса. Тем более, что достаточно прописать только 1/4 периода.

Ссылка на комментарий
Поделиться на другие сайты

Жду Ваше мнение уважаемые специалисты.

Нафига тебе внешний ЦАП? :blink: В Mege16 есть встроенный ШИМ, и если мне не изменяет память, два из них аж 16-разрядные!! И вообще, зачем Mega16 ??? - просто под столом завалялась? В копеечном ATtiny2313 есть те же два 16-разрядных ШИМа (там есть еще два 8-разрядных). А 2к флеши хватит вполне для твоей задачки вместе с таблицей синуса. Тем более, что достаточно прописать только 1/4 периода.

По поваду меги 16 - именно завалялась. Хотя можно и на другой - особой разници нет.

По поводу шима - как его преобразовать в синусоиду??? не пойму. шим делал, но это же импульсы. Подскажите по этому поводу.

И как юзать только 1/4 периода? перебирать массив "вниз-вверх"?

Ссылка на комментарий
Поделиться на другие сайты

По поводу 1/4 я кажется погорячился - это если есть возможность менять полярность. Но 1/2 периода точно хватит. Прописываешь синус от 1/2 Пи до 3/4 Пи и перебираешь как ты и сказал "вверх-вниз". Да можно и весь период прописать, тем более в М16!!

ШИМ - широтно импульсная модуляция. Когда импульсы повторяются с одинаковой частотой, а ширина импульса разная. Если эти импульсы пропустить через фильтр (пожалуй, в твоем случае достаточно простенького RC 1к 10мкф), то напряжение на выходе будет прямо пропорционально отношению tимпульса/Tпериода.

Я к сожалению в Си не силён, хватает асма пока.. Но твоя задача примерно такая:

Один из таймеров настраиваешь на работу в режиме ШИМ

Второй таймер настраиваешь так, что бы он вызывал прерывание n раз в течении периода твоей синусоиды.

В обработчике прерывания второго таймера программа должна брать следуещее значение из таблицы синуса и заряжать его в регистр сравнения первого таймера, т.е. менять ширину импульса.

Для простоты (а может этого будет достаточно) используй ШИМ в 8-ми битном режиме. Тогда твоя таблица будет содержать значения от 0 до 255. Удобно тем, что укладывается в 1 байт. Хотя в Си, пожалуй на это плевать...

И всё!... собственно...

Да, на выходе ты получишь синус от 0 до +5. Если тебе нужен двуполярный сигнал, поставь после фильтра (или совмести вместе с фильтром) ОУ для сдвига уровня, ну и для усиления/ослабления.

Ссылка на комментарий
Поделиться на другие сайты

а как настроить таймер на частоту прерывание 51 герц??? в визарде минимальная - 7 кГц.

Если частота синуса должна быть 0,2 герца то при 255 значениях частота прерывания должна быть 51 герц

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...