Понадобился генератор синуса 775 Гц. Не могу понять по какой системе мне написать программу, чтобы получить частоту или я не правильно выбрал таймер. Только сразу хочу сказать, комментарии только согласно вопроса, такие как сделай там транзисторах, мне не нужны. На 8мГц получаю частоту максимум 122 Гц, т.е 8 мГц/2/256/128. Уменьшать количество точек в массиве это не есть для меня хорошо, так как и так на половину массив урезан. Может я массив не правильно взял?
При 8МГц тактовой и размере семпла ровно в 128 байт, частоту более 244Гц вы не получите. 122 - это если включен режим Phase Correct PWM, там счетчик 2 раза считает, туда-сюда, поэтому и частота ниже. Используя один таймер и применив некоторые хитрости с фазой синуса при выводе очередного байта, можно получить практически любую частоту, немного пожертвовав формой синуса (он будет растянут или сжат в некоторых местах, смотря какую частоту надо получить).
Ну еще можно ФНЧ поставить, и выводить меандр с нужной частотой сразу, а это в 256 раз проще для таймера АВР-ки...
_________________ Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
2 - это обязательный преcкейлер (доку по меге читать лень, а на память не помню)? 256 - это, я так понял, 8-ми разрядный ШИМ. Если так, то
8 мГц/2/256 = 15625Гц - это и есть частота дискретизации. 15625=5^6, 725=29*5^2, т.е. если я правильно посчитал, то при таблице из 625 элементов, в которой ровно 29 периодов синуса, то на выходе такого ЦАП (фильтр, конечно, нужен) будет синус 725Гц. В этом случае, фаза (т.е. индекс в таблице) каждую итерацию надо сдвигать на единицу.
Если нет кратности периодов - фазу (индекс в таблице) придется двигать на не целое число. Тут либо пересчитывать (если таблица достаточно большая, линейная интерполяция, скорей всего даст нормальный результат), любо "плюем" и- будет фазовое дрожание, насколько это критично, зависит от задачи.
=== Опять же, можно и меандр 775Гц таймером сгенерить, и фильтром убрать высшие гармоники (оставить только основную). Если фильтр хочется попроще, можно сигма-дельту на SPI интерфейсе, например, "замутить".
Спасибо Вам за разъяснение. Ну как бы меандр на нужных частотах не проблема, но там нужен именно синус и без дрожания, который нужно ещё и модулировать частотой 8(12) Гц, иначе приёмник данной частоты с модуляцией, может плавать. Попробую к меандру ФНЧ прилепить в протеусе, посмотрю что покажет.
Да, если использовать внешний ЦАП, то можно получить 771 или 781 Гц... Только не так мудрено, надо просто поставить в OCR2 79 или 80, режим CTC, а в прерывании выводить в ЦАП по очереди каждый байт из 128. Или в OCR 40, а синус сделать из 252 семплов, тогда получится почти 774Гц.
_________________ Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Alex_ka, почему-то я взял 725, а у Вас 775Гц. Не 29, а 31 (если я опять не ошибся). Но принцип, надеюсь понятен. Если 775Гц - это фиксированная частота, я бы "не парился", завел бы таблицу на 625 элементов (31 периодов синуса), если памяти, конечно, хватает.
Alex_ka, Я начальник РТУ, признавайся, что хочешь. Приемники с частотным анализом рельсовых цепей я делал, а синусы делал для стрелочных переводов на тиньке44 три фазы с управлением по частоте и амплитуде. Чем тебе не нравится ГРЦ? Кстати, мы все ГРЦ переделали с синуса на меандр и отказы уменьшились на порядок.
Последний раз редактировалось linkov1959 Пн янв 22, 2024 21:34:55, всего редактировалось 1 раз.
Alex_ka, Я начальник РТУ, признавайся, что хочешь. Кстати, мы все ГРЦ переделали с синуса на меандр и отказы уменьшились на порядок.
Не утаишь ничего. Стенд для проверки ПРЦМ в эксплуатационном режиме, включение и выключение как-будто он стоит в рельсовой цепи. Программа с контролем отвала в режиме проверки написана и там же имеется 8 и 12 Гц в железе. Осталось синус на 4 частоты, так как 575 у нас нет. ГРЦ на меандр? Имеется в виду по принципу ГРЦ-2М где добавлена плата развязки? Там тоже на выходе меандр из-за установки данной платы. Странно, что вам дали возможность внести изменения в схемное решение. У нас без согласования с заводом изготовителем, которых уже нет даже не разрешили стаб 815Е заменить на КРЕН15, хотя при замене потребление блока падает почти в два раза. Если у вас на СИ написано для 44-ой, то было не плохо бы глянуть ваш исходник, в других языках не бум-бум.
Alex_ka, ПРЦМ еще та головная боль, пока я не сделал свой стенд для проверки и настройки. Там даже синус на вход подаю. Частоту синуса задает пила развертки с осциллографа С1-83, а на экране АЧХ. Развязка на ГРЦ , что бы частота не зависела от импеданса линии, очень нужная доработка, мы ее провели через НИИ. AVR я программировал в BASCOM-AVR, сейчас на СИ только STM, но самый перспективный проц GD407VE. Вот на нем и нужно работать. КРЕН15 я бы тоже не разрешил.
Alex_ka, ПРЦМ еще та головная боль. но самый перспективный проц GD407VE. Вот на нем и нужно работать. КРЕН15 я бы тоже не разрешил.
Да как бы с настройкой ПРЦМ проблем нет. Проблема с ними когда они кратковременно отваливаются на линии, а потом опять продолжают работать. А заводские стенды для настройки и проверки не позволяют делать имитацию работы в рельсовой цепи. Удалось пару раз выцепить этот отвал, который происходил из-за VT5 или VT6 (плавали переходы). Но для нормального прогана нужна реальная имитация. Я по программированию ничего не заканчивал, сам по немногу разбираюсь при наличии свободного времени, так, что до перспективных процов мне ещё далеко. А на крен 15 вольтовых, два опытных ГРЦ отстояли 5 лет без проблем, тем более, что есть ГРЦ-2М где крен 12 вольтовые по заводу стоят, но у них выход максимум 4,8 вольта (минимальный предел). Так, что без синуса мне не обойтись. На BASCOM-AVR стоит у меня прога. Там в принципе можно разобраться, тем более, что когда-то в технаре BASIC изучал и он чем то похож.
Alex_ka, прога на старом диске осталась, но там на 3фазы с управлением рассчитано, на одну проблем и так нет. Таблица на четверть синуса, а частота тиньки44 20Мгц. Синус тебе не нужен, у меня с таймера 555 снимается частота с примитивным RC фильтром, а в ПРЦМ фильтров достаточно. Реле отваливается, если АЧХ ПРЦМ перекошена и частота ГРЦ зависит от нагрузки в линии, это по несущей, а по модуляции отдельная тема, там свои заморочки. Вибратор на магните поможет выявить плохие контакты и треснутые ферритовые сердечники, особенно подстроечные шпильки, если наблюдать АЧХ на экране, а не строить по точкам.
Реле отваливается, если АЧХ ПРЦМ перекошена и частота ГРЦ зависит от нагрузки в линии, это по несущей, а по модуляции отдельная тема, там свои заморочки.
У вас для просмотра АЧХ заводской прибор или самодельный? Ведь там низкая частота и без биений не обойтись, если что-то делать к осциллографу. Как бы с настройкой катушек Т1 и Т2 проблем тоже нет, настраиваю отдельно в резонанс, а потом лишь небольшая регулировка, чтобы вложить входное. Ну по модуляции как бы больших заморочек у нас нет, было выяснено, что выходное напряжение ПРЦМ при пониженном напряжении на грани нижнего предела или не укладывается в норму из-за конденсатором МБГО на 20 и 30 мкф 160 в. Мы их меняем на конденсаторы CL21 10мкфх250В в параллель 2 или 3 в зависимости от модуляции.
Alex_ka, стенд самодельный не сертифицированный, от ревизоров прячу. Главное, что все ПРЦМ и генераторы настроены одинаково. Последствия настройки случайными механиками по точкам я долго устранял. Кондеры МБГО не лучший вариант, но терпимый, если дросселя с язычками на 8 и 12 Гц правильно настроены. Если и менять, то я бы начал с ГРЦ, но пока и так хорошо. Электролиты еще 20 лет назад заменили на импортные и проблем с пульсациями нет.
Интересная тема, жаль только, что она - перекличка двух профи ПРЦМ, ГРЦ .... Но насколько подсказывает логика, в вопросах безопасности на транспорте, как и в медоборудовании, несертифицированная самодеятельность не допускается. Или не? А касаемо получения синуса - если только МК ничем другим не заниается - получить его можно и для намного бо'льших частот даже без использования штатных таймеров и ШИМ - тупо закольцевав выборку - вывод, без прерываний. Но с АЦП ЦАП Сам вплотную этим не занимался, так что может это моё гудение - мимо.
_________________
Последний раз редактировалось Jack_A Пт янв 26, 2024 21:48:40, всего редактировалось 1 раз.
Jack_A, выводится таблица в порт на 8 или 16 бит, а потом весовыми резисторами собирается синус. Зачем АЦП? У нормальных процев для этого есть выход DAC.
Но насколько подсказывает логика, в вопросах безопасности на транспорте, как и в медоборудовании, несертифицированная самодеятельность не допускается. Или не?.
Такие законники и заложат меня. А если серьезно, то кому, как не мне с моим опытом знать, к чему это доводит - ни какой самодеятельности! Мне можно...
Jack_A, выводится таблица в порт на 8 или 16 бит, а потом весовыми резисторами собирается синус.
Ну так это и есть примитивный ЦАП (в своём предыдущем посте я малость промахнулся) Только уровни 0 и 1 тут не имеют "жёсткого" аналогового значения, поэтому синус будет так себе.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения