умножитель частоты три канала
- Войдите на сайт для отправки комментариев
Втр, 11/05/2021 - 23:01
Добрый вечер!
Прошу помощи, чего то ковырялся в инете не чего подходящего не нашел
я когда учился уроки С++ прогуливал, больше люблю паять, но чего то подходящего не могу быстро придумать
нужен умножитель частоты т.е
есть базовая частота с генератора(стационарного), поступает на вход ардуино(у меня мега2560)
далее умножается на 3 , выводится на один пин, потом на 6 на другой пин, и на 10.
ниже код который я осилил, то есть я время восокого уровня и низкого уровня, теперь поидеи эту пременную поставить в оператор delay(Ttime) и через digitalWrite...но так не работает:((((
частота нужна от 1 герц до 1000ГЦ, с сотыми долями
int Htime; // целочисленная переменная для хранения времени высокого логического уровня
int Ltime; // целочисленная переменная для хранения времени низкого логического уровня
float Ttime; // переменная для хранения общей длительности периода
void setup()
{
pinMode(8,INPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
}
void loop()
{
Htime=pulseIn(8,HIGH); // прочитать время высокого логического уровня
Ltime=pulseIn(8,LOW); // прочитать время низкого логического уровня
Ttime = Htime+Ltime;
Не взлетит. Дико сложная задача. Вполне вероятно, невозможная. Смотря как интерпретировать невнятное описание.
Какие то генераторы с ФАПЧ возможно или один с последующим делением.
То, что вы использовали и 1Гц не даст точности при 1000Гц, не то что "с сотыми долями".
Частота то от внешнего генератора будет меняться, надеюсь ? А то вдруг мы что то не так поняли.
https://www.analog.com/ru/parametricsearch/10722#/
Не благодари, а посмотри на цену, диапазоны, и коэффициент умножения. Это то что люди могут в цифре. А вообще такие вещи делают в аналоге на одну входную частоту.
Можно конечно в Китай оглянуться http://kazus.ru/datasheets/pdf-data/5166070/ICST/ICS601-01.html и цена интереснее и коэффициент подобрать можно но, все равно процессору места нет.
Если у нас все время мира, то можно забацать частотомер, полчаса мерить, потом посчитать табличку синусов и выдать на ЦАП из резисторов... или что то на таймере замутить, где то что то близко к реализуемому, но непросто.
Если у нас все время мира, то можно забацать частотомер, полчаса мерить, потом посчитать табличку синусов и выдать на ЦАП из резисторов... или что то на таймере замутить, где то что то близко к реализуемому, но непросто.
и вообще никаких форм сигналов - ни входного, ни выходных.
Всем спасибо что откликнулись! отвечаю на вопросы:
1. Форма сигнала входная меандр, выходные тоже меандр.
2. Быстрота выхода сигнала не важна! (например 1 -3 секунды)
3. Входной меандр с генератора будет меняться, (но в ручную)
4. Хотелось выходной меандр получить с сотыми долями, если так не выйдет то можно с десятыми
Если сложно с умножением , то можно с делением.
На цифровых микросхемах если что то собирать то делитель 2 4 8 16 , либо фиксированное умножение.
на ардуино же какой захотел такой интервал(множитель или делитель) и выходных каналов тоже я так понимаю можно любое. поправьте меня если не прав
А для какой цели это все нужно?
исследовательской, можно конечно купить 3-6 генератора, но на ардуино думаю дешевле будет
Дел
Всем спасибо что откликнулись! отвечаю на вопросы:
1. Форма сигнала входная меандр, выходные тоже меандр.
Иди в "Ищу исполнителя". Моя телега - @wdrakula. Сделаю тебе то, что ты просишь. "До сотых" - реально насмешил!. На частотах 10К даже до 1Гц не будет. ;)) Это не от меня зависит, а от тактовой частоты контроллера ;)). Я правильно понял, что на разных ногах нужно х3,х6 и х10 исходной частоты?
2К рублисов. И то потому, что почти всё у меня есть готовое от другого проекта. Бонусом может быть синхронизация фронта всех сигналов, это осталось от упомянутого проекта ;)).
На ардуине не так кошерно. На блюпиле - stm32f1 можно сделать делением на таймерах любой коэффициент деления входной частоты с шагом в 1. Там как раз 4 таймера, можно не мучаться, а сразу выдавать то что надо.
На ардуине не так кошерно. На блюпиле - stm32f1 можно сделать делением на таймерах любой коэффициент деления входной частоты с шагом в 1. Там как раз 4 таймера, можно не мучаться, а сразу выдавать то что надо.
3, 6 и 10 - общеее кратное 30, генерить частоту х30 и выдавать, по достижению TOP, каждый 10, каждый 6 и каждый 5 импульс. Если выдавать тоггль, то не х30, а х60. Очень просто. Измерять частоту через ICR1, на 16 битном таймере, а генерить на тамер2 - 8ми битном.
Если денег ТС не пожалеет, то выложу потом сюда коды готовые и для кепча и для генерации на таймере2, я уже делал это. До 5-6 КГц входных - ну просто очень красиво на осциллографе, а потом АВР не успевает уже, но работает.
Согласен. На частотах до 1 кГц всё это можно и на AVR сделать. Меня интересует только один вопрос. Фаза выходных импульсов должна быть как то привязана к входным импульсам или нет? Т.е. достаточно только частоты сгенерить кратные входной или ещё заморачиваться на привязку фазы?
от 1 до 10 герц и с десятыми будет проблематично видимо?
от 1 до 10 герц и с десятыми будет проблематично видимо?
Я вот тоже не понял, что наш друг имел ввиду. Таймер измеряет период с точность до 1/16 мкс, потом пересчитывая это в частоту с хххх знаками после точки.
Всем спасибо что откликнулись! отвечаю на вопросы:
1. Форма сигнала входная меандр, выходные тоже меандр.
Иди в "Ищу исполнителя". Моя телега - @wdrakula. Сделаю тебе то, что ты просишь. "До сотых" - реально насмешил!. На частотах 10К даже до 1Гц не будет. ;)) Это не от меня зависит, а от тактовой частоты контроллера ;)). Я правильно понял, что на разных ногах нужно х3,х6 и х10 исходной частоты?
2К рублисов. И то потому, что почти всё у меня есть готовое от другого проекта. Бонусом может быть синхронизация фронта всех сигналов, это осталось от упомянутого проекта ;)).
То есть ты хочешь мне сделать за 2000р, генератор которой даже в десятые доли не укладывается. Зачем такое советовать? Если не возможно так и скажи Ардуино этого не позволяет. Я куплю ещё гинератор за 3 рубаса
"Не думай о десятых долях герца свысокаа...":
Половина периода частоты 999,9 герц - 500050 наносекунд.
Половина периода частоты 1000 герц - 500000 наносекунд.
Разница 50 наносекунд. Один такт 328 - 62,5 наносекунд.
Как-то так.
Всем спасибо что откликнулись! отвечаю на вопросы:
1. Форма сигнала входная меандр, выходные тоже меандр.
Иди в "Ищу исполнителя". Моя телега - @wdrakula. Сделаю тебе то, что ты просишь. "До сотых" - реально насмешил!. На частотах 10К даже до 1Гц не будет. ;)) Это не от меня зависит, а от тактовой частоты контроллера ;)). Я правильно понял, что на разных ногах нужно х3,х6 и х10 исходной частоты?
2К рублисов. И то потому, что почти всё у меня есть готовое от другого проекта. Бонусом может быть синхронизация фронта всех сигналов, это осталось от упомянутого проекта ;)).
это если измерять период, а если измерять частоту, то от 10герц и далее входящей в десятичную уложится вполне...
То есть ты хочешь мне сделать за 2000р, генератор которой даже в десятые доли не укладывается. Зачем такое советовать? Если не возможно так и скажи Ардуино этого не позволяет. Я куплю ещё гинератор за 3 рубаса
смешной... а ты думал кто-то тебе этот генератор за 500 рублей подгонит? Тебе 2000 предложили ТОЛЬКО ПОТОМУ, что у Исполнителя эта задача уже решена. Разработка этого с нуля под твой заказ стоила бы в несколько раз дороже. Индивидуальная работа всегда дороже серийной, поэтому если у тебя есть возможность решить свой вопрос готовым устройством всего за 3К рублей - покупай и не трахай никому мозг
;)) Найдешь гИнератор - конечно покупай! ;))))
-----------------------------
Пусть и грешно смеяться над АшиПками, но тут мы видим не ошибки, а полное невежество. Чтобы задать частоту в диапазоне 10Кгц с точностью до герца нужно задать период с точностью до 1/ 100 000 000 сек. Не до десятой герца, а до одного герца. То есть нужен таймер с тактовой 100МГц. "..ищите и обящете, толците и да отверзется вам" (Мтф. 7:7)
Чтобы задать частоту в диапазоне 10Кгц с точностью до герца нужно задать период с точностью до 1/ 100 000 000 сек.
переведи...
Как там у классика - инженерное невежество наиболее ярко проявляется в погоне за не достижимой точностью?
Тебе 2000 предложили ТОЛЬКО ПОТОМУ, что у Исполнителя эта задача уже решена.
Помнишь зимой или в начале весны был человек с "пачками импульсов" и сомнения, что это вообще можно сделать на АВР?
Вот я и сделал для прикола. После 7000 Гц входной частоты стали ощутимо (до 2-3мкс) уплывать фронты "пачки". Там была задача в положительный полупериод входного сигнала уложить пачку из неизвестного числа импульсов от 2 до 8, причем их число можно изменять на ходу. И оба фронта пачки согласовать с входящим сигналом.
По сути - примерно то же самое. Измерил входную длительность на Таймере1 - генерируешь от нее расчетную частоту пачки таймером2, запускаешь по фронту и гасишь по спаду входного сигнала.
Я тогда просто ради интереса написал. Теперь подумал, что продать нужно! ;)))) Меня очень веселят люди с идиотскими требованиями по точности и погрешности. Такие хрен себе микрометром измеряют, вероятно. ;)) Прежде, чем писать херню про "до сотых", калькулятором нельзя воспользоваться? Или "жертвы ЕГЭ" на калькуляторе считать уже тоже не умеют?
Чтобы задать частоту в диапазоне 10Кгц с точностью до герца нужно задать период с точностью до 1/ 100 000 000 сек.
переведи...
Выше уже был расчет про десятые. ;))
два сигнала 10000Гц и 10001Гц какая разница в длине периода? Сам сосчитаешь? 10 ns.
Просматривается 2 варианта:
1. STM32
2. ГУН+ФАПЧ + делители + нано/мини, которая достаточно грубо измеряет частоту входного сигнала и упомянутые делители переключает.
Просматривается 2 варианта:
1. STM32
2. ГУН+ФАПЧ + делители + нано/мини, которая достаточно грубо измеряет частоту входного сигнала и упомянутые делители переключает.
Оно, конечно, так. Но реально ли веришь, что ГУН+ФАПЧ даст "сотые" герца? ;))) То есть единицы наносекунд по длительностям. Гыыыыы! Не, такие есть, конечно! ...в сотовых телефонах.
Просматривается 2 варианта:
1. STM32
2. ГУН+ФАПЧ + делители + нано/мини, которая достаточно грубо измеряет частоту входного сигнала и упомянутые делители переключает.
Оно, конечно, так. Но реально ли веришь, что ГУН+ФАПЧ даст "сотые" герца? ;))) То есть единицы наносекунд по длительностям. Гыыыыы! Не, такие есть, конечно! ...в сотовых телефонах.
К тому же у нас всё равно нет путного частотомера для входного сигнала.
=============
Когда-то я лепил в режиме "народное творчество" на рассыпухе генератор 1 мгц для предварительной настройки кварцев частотомерных, с фапч - синхронизация была по строчной развертке телевидения. Работало достаточно прилично.