ВЧ генератор

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Здравствуйте! Столкнулся с необходимостью сделать генератор с регулируемой частотой от 1 до 2 МГц и возможностью изменения формы сигнала (меандр, пила/обратная пила, синус, треугольник). Пока вожусь с AD9833 и ОУ NE5532, но сигнал после усилителя сильно зашумлён. На днях наткнулся на код:

#define myOutputPin 13
int toggle = 0;
void setup()
{
  pinMode(myOutputPin, OUTPUT);
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1  = 0;
  OCR1A = 8;
  TCCR1B |= (1 << WGM12);
  TCCR1B |= (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  sei();
}

ISR(TIMER1_COMPA_vect)
{
  digitalWrite(myOutputPin, toggle == 0 ? HIGH : LOW);
  toggle = ~toggle;
}

void loop(){}

Который с лёгкостью генерирует Прямоугольный сигнал частотой 1МГц

На фото сигнал без нагрузки. Так что не обращайте внимания на круглый фронт.

Так как я не очень силён в программировании и насколько хватает моего скромного разумения это не совсем wiring c++ прошу помощи советом или готовым кодом или просто где можно почитать - можно ли получить сигнал другой формы и большей частоты.

Заранее спасибо!

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, ардуина способна генерировать только меандр. Из самых верхних частот это 8.0,  4.0, 2.6, 2.0,  1.6, 1.3, 1.1 , 1.0, 0.8 MHz итд (делите 16Mhz на 2 и ещё раз на целочисленные делители, начиная от  1 )

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Дружище! Ознакомься, пожалуйста с фото по ссылке во втором сообщении. Это генерирует arduino mega 2650. Это прямоугольник. За частоты спасибо, но как это реализовать практически? Можете ли посоветовать - какие, может, переменные или команды в вышеопубликованном коде овечают за частоту сигнала?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, я его сразу посмотрел. Что там такого, на то нужно обратить внимание? "Прямоугольник" это разговорное названия меандра. Код тот, что вы привели - классический "быдлокод". Рулить выходом на таких частотах из прерывания -уже моветон, а использовать digitalWrite это уже клинический случай.  Вот то-же самое, но правильно:

void setup() {
pinMode (9,OUTPUT); //9 нога для Уно/нано/мини. Для Меги будет 11 нога
TCCR1A=1<<COM1A0;  //oc1a enable
TCCR1B=(1<<WGM12)|(1<<CS10); // Mode4(CTC), divider=1
OCR1A=2; //значение задаёт частоту  0 -8mHz 1 -4mHz, 2 -2,6mhz и так далее..
}
void loop() {
}

 

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Мовитон так мовитон. Будь по Вашему. По мне - главное, чтобы работало. Спасибо. Сейчас попробую.

P.S. ццц-) "быдлокод"-)

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Увы. Ваш код выдаёт шум-( Но за комментарии спасибо. Теперь понятно куда копать. Если что выйдет - выложу.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, он не может выдавать шум. Вы с 11 пина сигнал снимали?, указали его как output?

Kolchugin
Offline
Зарегистрирован: 15.12.2013

С кодом всё в порядке.
Шума нет и не совсем меандр,  но похоже. 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, сейчас пересматривал тему. Вы  не заметили, и я тоже не обратил внимания, что ваш осциллограф в посте #1 показывает вовсе не 1 МГц, а 50 кГц ! У вас клетка 5мкс , а период около 4х клеток. Вот о чём я и говорил, быдлокод в принципе не может работать с высокими частотами.

Kolchugin, у вас аппарат немножко искажает реальную картинку. Вот как сигнал скетча из #4 на моём выглядит:

trembo
trembo аватар
Онлайн
Зарегистрирован: 08.04.2011

На таких частотах ( а лучше всегда) для наблюдения за фронтами
нужно использовать только скомпенсированный делитель 1:10.
Это азы......

http://www.rlocman.ru/shem/schematics.html?di=53244

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

trembo, на моём щупе написано до 6МГц можно 1:1. Вот картинка  с делителем 1:10

trembo
trembo аватар
Онлайн
Зарегистрирован: 08.04.2011

Звенит ваш делитель. Но немножко. Перекомпенсирован слегка.
На щупе есть подстроечный конденсатор.
Нужно подать с осциллографа (с его выхода калибровки) импульсы
и подстроить немножко высокочастотную компенсацию.

Растянув по максимуму входной фронт и сделать или минимальный выброс или более резкий перегиб.
Обычно и то и то присутствует. Кому как нравится.....

Смысл этого чтобы делитель активного сопротивления (его резисторы)
и делитель реактивного вопротивления ( ёмкость параллельная входному резистору
и суммарная ёмкость кабеля, входа осциллографа и второго резистора )
имели одинаковый коэффициент 1:10

Подстройка существует только на делителе,  без делителя ( 1:1 ) её не может быть принципиально.
Там всё очень плохо- гигантская ёмкость кабеля.....

Ну а главное достоинство делителя в том, что он уменьшает входную ёмкость кабеля и увеличивает входное сопротивление.
При снижении чувствительности, но обычно это не важно когда Вольты измеряются.
 

 

 

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Хмм.. Очень странно.. Да с 11 пина.. У меня на Вашем режиме Вот такое показывает.

https://onedrive.live.com/embed?cid=543B82515E3378FA&resid=543B82515E3378FA%21221749&authkey=ABx7VLLCc4gNKA4

На щупах 100МГц нарисовано и с делителем и без ничего.. Да и как-то не очень хочется, trembo, щупами мериться. Dimax, Вы нагрузку какую-то даёте или на открытом выходе снимаете?

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Шик! Заработало-) Ошибка была очень смешная. Даже говорить стыдно-) Спасибо! Буду подрубать драйверы ключей-)

https://onedrive.live.com/embed?cid=543B82515E3378FA&resid=543B82515E3378FA%21221750&authkey=AHzJMhFFFD5JMdE

Kolchugin
Offline
Зарегистрирован: 15.12.2013

dimax, искажение - это видимо проблема моей осциллографической приставки (hantek6022). Если увеличить время горизонтальной развёртки до 1 микросекунды, то форма сигнала уже очень похожа на вашу со щупом 1:10.  С вашим скетчем, на низких частотах (до 1 МГц), всё красиво!

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Уменя, если позволите, есть ещё один вопрос: Можно ли получить два противофазных синхронизированных сигнала со сдвигом по фазе?

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Если конкретно: Задача - управлять двумя драйверами силовых ключей для их попеременного попарного включения.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, 2 противофазных сигнала можно сделать, и довольно просто.  Но со сдвигом нет, можно только скважность менять, да и то не на таких высоких частотах. Оставьте вы это затею, лучше использовать специализированные решения.

renoshnik
Offline
Зарегистрирован: 11.04.2013
MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Понял. Я сначала попробую сделать каскад из трёх драйверов. Это мне кажется более простой и логичной затеей. Если не выйдет - попробую то, что Вы советуете. Ещё раз спасибо.

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Если я правильно понял - там используется внешний генератор по типу ad9833. Это я уже пробовал. На нужной частоте амплитуда сигнала составляет всего 20mV, чего, к сожалению, не достаточно не только для управления транзисторами, но даже для запуска оптронной развязки. При применении операционного усилителя наводки мне победить не удалось. Так что пока каскад-) Возлагаю большие надежды на ir2104..

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Перерыл справочники, поговорил с знающими людьми и так и не нашёл элементной базы для раскачки транзисторов на такой частоте. Драйверы полумоста работают с Dead time'ом не менее 300nS и на такой частоте очень сложно сделать из них полный мост, имея один сигнал-( Хотел спросить вот что: Возможно ли создать код, который последовательно "дёргал" два канала? Ведь такое возможно, например в сетевых картах..

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, что вы делаете то? Какие транзисторы, чего и для чего раскачиваете? И что за "два канала" ?  Высокие частоты можно генерить таймером, или  кодом на ассемблере дёргать ногу любого порта. Таймером как я уже писал сдвиг фазы не сделать, ассемблером  можно такта на 4 (240ns) задержать второй сигнал относительно первого. Получится 2 сигнала со сдвигом фазы. Правда больше ничего ардуина не сможет делать, загрузка будет 100%.

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Не судите строго - я врач, а не инженер, но тем не менее занимаюсь разработками в области импортозамещения. Мы с коллегами поставили цель исследовать воздействия тока УВЧ на различные слои кожи при различных дерматозах. Изучить влияние на регенерацию и течение аллергических и воспалительных процессов, дистрофию тканей кожных покровов.

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

Собственно перед нами стоит задача создания экспериментальной установки, которая бы была способна передавать на манипулу (рабочая головка с двумя пластинчатыми электродами) переменный электрический ток напряжением 12-24В (возможно потребуется и больше, но пока такое ориентировочно) и током 0,1-2А (опять же цифра ориентировочная) и частотой от 40КГц до 6МГц.

К сожалению скудная эрудиция в области элементной базы пока делает для нас невозможным разработку "силовой" части. Мы пробовали организовать полный мост из двух драйверов полумоста на ir2104, но упёрлись в её dead time = 500ns С тех пор мы в некотором тупике-( Задумка сейчас такова: если удастся получить синхронизированный сигнал по двум различным каналам - можно на каждый канал подключить по паре оптронов, каждая из которых будет запускать, в свою очередь также пару пнп и нпн транзисторов. Мы рассчитываем, что работая последовательно, при верном подборе транзисторов эти пары обеспечат нам необходимую работу узла.

Перечитав сообщение понял, что требуется пояснение: задумка с "двумя сигналами" родилась в следствие невозможности (в нашем представлении) управления двумя драйверами полумоста при помощи одного управляющего сигнала. Были некоторые мысли на счёт конструкции с "полосовым фильтром" на компараторах. Но мы видим такую затею неосуществимой нашими скромными электронными способностями-)

Ах да! Ещё в нашем распоряжении имеется Raspberry Pi. На ней у нас организован графический интерфейс. Если на ней будет проще собрать. То она есть. Вот-)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

MuckS, для плавной регулировки частоты  вам нужно DDS синтезатор.  Для получения разных форм сигнала вам тоже нужен DDS синтезатор. ВЧ-токи обычно усиливают простыми кремнивыми транзисторами, зачем вы пытаетесь городить на драйверах мосфетов, да и ещё на оптронах умом не понять. 

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Мы преобрели DSS синтезатор. Даже два. На базе микроконтроллера и на базе ad9833. Но первый при попытке добиться от него частот выше 200КГц отказывался корректно работать. Кроме того постоянно сбрасывался. В целом - работал не стабильно. Второй (на базе ad9833) на нужной частоте выдавал сигнал амплитудой всего 50мВ. И ни один из них не был способен генерировать два сигнала со сдвигом.

Что касается драйверов: Планировалось собрать каскад: Первый драйвер, переключаясь от уровня сигнала запускал бы последовательно переключение двух последующих. Каждый из которых переключал бы условно: "плюс и минус на первый и второй контакт рабочей головки, а затем менял бы их местами: Соответственно плюс и минус на второй и первый контакт". Вернее конечно сказать землю и плюс, но это детали. Оптроны же задумывались как некое подобие предусилителя. Т.к. Для успешного переключения драйверов по даташиту требуется от 3В..

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Сильно в тему вкуриваться не стал, вернее не совсем понял, что нужно, два сигнала сдинутых по фазе? На сколько? Сигнал с одного вывода можно аппаратно инвртировать и если нужно, и не один раз. Есть аппаратные драйверы двигателей, но там скорее всего не хватит быстродействия.

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

А как инвертировать? И можно ли аппаратно сделать сдвиг? На сколько именно пока сказать трудно это будет зависеть от необходимого времени на открытие-закрытие первой пары ключей.

a5021
Offline
Зарегистрирован: 07.07.2013

Посмотрите в сторону stm8/stm32. У них таймеры имеют комплементарные выходы с возможностью вставки программируемого по длительности дедтайма.

Клапауций 001
Offline
Зарегистрирован: 05.09.2015

.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

MuckS, Ваша тема, в отличие от большинства тем этого форума, имеет не приусадебно-хозяйственную, а народно-хозяйственную ориентацию. Жалко будет ее угробить. Задачи Ваши решаемы, причем несколькими способами, но они требуют привлечения прямого специалиста. "Специально обученного человека". Ему, исходя из его опыта и предпочтений, здесь смогут подсказать что-либо стоящее. Привлеките в свою команду специалиста. У Вас задачка не только, как частоту поделить, а и других пучок откроется. Просто Вы до них еще не дошли, или не ощущаете, что дошли. Чтобы потом не возвращаться к самому началу, выбросив все ранее созданное, сделайте коррекцию сейчас. Начните со специалиста, написания ТЗ. По форуму электронику не выучишь. Мне известны случаи, когда очень хорошие прикладники мучались с самодельной автоматизацией сложного эксперимента. И смотреть больно, и помочь, по большому счету нечем. Привлеките специалиста.

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Спасибо за откровенность!

Мы как раз пришли к тому, что нам необходим такой человек и через форум Радио Лоцман вышли на инженера из Таганрога, который согласился нам помочь. Всем большое спасибо. Думаю тему можно закрыть.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

MuckS, извините за назойливость. Вам не помощь специалиста нужна, а специалист в команде. Лучше, чтобы рядом. Он не подсказывать должен, а делать. Вместе с Вами. Вам, судя по всему, еще придется осознать сугубую необходимость Технического задания, как основополагающего документа проекта, и, по началу мучительно (с непривычки), его создавать. Я за десятилетия стажа по специальности и насмотрелся, и научавствовался. Без этого - никак. Искренне желаю Вам и вашей комаде успеха!

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Да-да. Я неточно выразился. Этот человек согласен сопровождать проект. Он как раз требует составить ТЗ. В наши медицинские ряды хлынула струя инженерного подхода. Реструктурируемся. На сколько это возможно-) Спасибо за участие!

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

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

"Голубой воришка понял, что сейчас его будут бить. Может быть даже ногами".

http://www.rlocman.ru/forum/showthread.php?t=21192

Нашёл статью на счёт DSS синтезатора на AD9833. Спаял платку с осциллятором. Подключил к mege 2650. Генерирует нужную частоту. Пытаюсь получить второй синхронизированный инвертированный сигнал со сдвигом. Не сдаюсь-) Сообщу что выйдет.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

MuckS, я пробежался по Вашей ссылке на радиолоцмане. Многие форумчане "оттянулись" по полной. Ну так Вы дали очевидный повод своими исходными данными. Я здесь не стал их обсуждать ввиду их очевидной несостоятельности. Я похожие на Вашу ситуации проходил многократно. Сколь интенсивно Вас сейчас не пинай, электронщиком со стажем Вы к концу недели не станете. А тут еще и не любой электронщик сгодится. Я вопросов задавать не стал, поскольку когда загнул все пальцы на руках, то бросил. Вы не платкой занимайтесь, а со специалистом работайте. А что не сдаетесь... Эт хорошо! :)

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Ирония ситуации в том, что чтобы понять абсурдность своих действий мне необходимы знания эквивалентные необходимым для решения задачи. Спасибо на добром слове. Завтра переведу деньги специалисту. Посмотрим на его схему. Есть некоторая проблема в финансировании. Наврядли опытный радиоинженер захочет работать на условиях близких к голому энтузиазму. Но ничего. "Ищущий до обрящет", а не нашедший - не искал-)

EugenyNE
Offline
Зарегистрирован: 13.07.2016

Объясните мне не русскому, пожалуйсто. Можно ли получить на выходе ардуины 2.5 мгц и подать их на пьезоэлемент? 

 

a5021
Offline
Зарегистрирован: 07.07.2013

Можно.

Buldakov
Offline
Зарегистрирован: 17.01.2016

По поводу генератора.

Поскольку вы в электротехнике разбираетесь не очень хорошо. Хочу предложить еще один вариант. Он может для вас быть даже проще. Заказываете и покупаете что то типа такого: И проводите эксперименты на этом.

http://www.prist.ru/info.php/articles/review_akip-3402

Приемущества:

1. Для больницы гораздо проще провести покупку прибора с товарными чеками. Чем вы будите расплачиваться наличкой по серым схемам с кем то. Он даже может быть проведен не как основные фонды, а как малооценка.

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

 

 

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Большое спасибо за совет! В понедельник ознакомлюсь с темой-) На сегодня конструкция генератора и усилителя состоялась как раз благодаря этому форуму. Мне пришлось освоить программирование на си и яве и сейчас я заканчиваю корпусирование устройства. Удалось даже создать управление режимами работы с помощью графического интерфейса и тачскрина. На базе Raspberry Pi2 и 7' дисплея.

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Вряд ли можно ровно 2,5МГц дело в том, что частота регулируется делением 16 (частота осциллятора на плате), но его можно заменить на 25МГцовый и тогда установив значение делителя "10" Вы получите нужную частоту. Правда нужно учитывать, что больше ничего сам контроллер делать не сможет и амплитуда выходного сигнала составит 8В.

Ivan_Kornege
Offline
Зарегистрирован: 23.06.2016

MuckS пишет:

Большое спасибо за совет! В понедельник ознакомлюсь с темой-) На сегодня конструкция генератора и усилителя состоялась как раз благодаря этому форуму. Мне пришлось освоить программирование на си и яве и сейчас я заканчиваю корпусирование устройства. Удалось даже создать управление режимами работы с помощью графического интерфейса и тачскрина. На базе Raspberry Pi2 и 7' дисплея.

на чем все таки собрали , AD9833? Вам синус нужено генрить или прямоугольник?

MuckS
MuckS аватар
Offline
Зарегистрирован: 13.04.2015

Прямоугольник. В итоге два устройства получилось. Одно на меге 168р, с усилителем на базе irfz44n второе - экспериментальная установка на ad9833, предусилителем на кп904 и усилителем на 901 серии.