|
AVR и фазовращатель |
|
|
|
Mar 31 2006, 08:26
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(kanzler @ Mar 31 2006, 11:11)  Уважаемы, господа! Прошу вашей помощи. Есть меандр с частотным диапазоном 1-2 кГц. Нужно фращать фазу от 0 до 180 или 360 градусов с шагом 1-5 градусов. Поделитесь опытом или подскажите где есть исходники для AVR, если кто делал такую штуку. Я реализовал такую шутку но только на ПЛИС которая работает только с одной частотой. Делал для эмуляции SIN/COS вращающегося трансформатора. Код написан был еще в Algorithm Builder но он очень прост, так что разберетесь. algrom.net это программа Algorithm Builder
|
|
|
|
|
Apr 1 2006, 10:09
|
Профессионал
   
Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712

|
Цитата(kanzler @ Mar 31 2006, 14:11)  Есть меандр с частотным диапазоном 1-2 кГц. Нужно фращать фазу от 0 до 180 или 360 градусов с шагом 1-5 градусов. Не понятна постановка вопроса... "Вращать фазу" можно только относительно чего-либо (какой-то реперной фазы). Если у вас просто генератор меандра, то скорее нужно говорить о временнОй задержке фронтов, а не о фазе, как таковой. Тем более, что речь идет о дискретном изменении этого параметра. Так же стоило бы указать параметры фазо-модулирующего сигнала (или - закона, по которому "гняется" фаза). В любом случае, задача довольно тривиальна (ИМХО), и должна легко решаться программно.
--------------------
Закономерность: Чем больше узнаю, тем меньше знаю... Любые мнения, даже ошибочные, имеют право на существование. Чем лучше узнаю людей, тем больше нравятся собаки...
|
|
|
|
|
Apr 3 2006, 03:58
|

Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728

|
Цитата(Валентиныч @ Apr 1 2006, 16:09)  Не понятна постановка вопроса... "Вращать фазу" можно только относительно чего-либо (какой-то реперной фазы). Относительно самого же меандра. То есть на входе меандр на выходе тот же меандр но только со сдвигом фазы. Цитата(Валентиныч @ Apr 1 2006, 16:09)  Если у вас просто генератор меандра, то скорее нужно говорить о временнОй задержке фронтов, а не о фазе, как таковой. Тем более, что речь идет о дискретном изменении этого параметра. Так же стоило бы указать параметры фазо-модулирующего сигнала (или - закона, по которому "гняется" фаза). В любом случае, задача довольно тривиальна (ИМХО), и должна легко решаться программно. Согласен, просто ... на ПЛИС это всё работает, правда только для фиксированной частоты. Но вот на AVR пока не удалось реализовать такую штуку.
|
|
|
|
|
Apr 3 2006, 12:09
|
Профессионал
   
Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712

|
Все таки, поставьте задачу конкретнее - начиная со способа формирования (программно или аппаратно?) и частотного диапазона исходного меандра с дискретность изменения частоты, и определитесь с законом модуляции. Многое будет зависить от закона, по которому изменяется фаза. Если это просто отдельные скачки фазы на какой-то (или строго определенный?) угол - это одно, если эти скачки во времени имеют какую-то закономерность - другое. Нужно ли крутить фазу в обе стороны, или достаточно простой фазовой задержки? Кстати - сама задача реалтаймовская, или...? Кроме того, необходимо знать: нужен единственный выход с ФМ, или вам требуется два независимых канала - реперный, и канал с ФМ.
Повторюсь: если отвлечься от закона изменения фазы, то сам процесс изменения легко свести к обычной задержке фронтов меандра на t(задержка)=Т(период)/360*К(угол сдвига фазы) простым повтором команды "nop", или ее циклом. При реальных тактовых частотах процессора (8-12 МГц) вполне можно добиться точности "поворота" фазы сигнала частотой 1-2 кГц не хуже 0,01%, или ~ 0,04 град.
--------------------
Закономерность: Чем больше узнаю, тем меньше знаю... Любые мнения, даже ошибочные, имеют право на существование. Чем лучше узнаю людей, тем больше нравятся собаки...
|
|
|
|
|
Apr 4 2006, 06:44
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
to kanzlerСудя по постам проблема еще не решена ? Обнаружил дома более свежий вариант, с кнопочками  Что-то редактирование поста не работает, так что прилагаю обновленный снова. Если проблема с AlgBuilder то скажите на какой кристалл и к каким ногам кнопки прицепить тогда hex приложу и asm listing.
|
|
|
|
|
Apr 4 2006, 07:36
|

Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728

|
Цитата(&-rey @ Apr 4 2006, 12:44)  to kanzlerСудя по постам проблема еще не решена ? Обнаружил дома более свежий вариант, с кнопочками  Что-то редактирование поста не работает, так что прилагаю обновленный снова. Если проблема с AlgBuilder то скажите на какой кристалл и к каким ногам кнопки прицепить тогда hex приложу и asm listing. К Сожалению нет, нерешена ... Ну а кнопки зачем?
|
|
|
|
|
Apr 4 2006, 07:41
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(kanzler @ Apr 4 2006, 10:36)  К Сожалению нет, нерешена ... Ну а кнопки зачем? Так это фазу крутить. Кнопка на увеличение фазы, и кнопка на уменьшение фазы, в пределах 360 грд конечно. Или это не то что Вам нужно ?
|
|
|
|
|
Apr 4 2006, 10:17
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(kanzler @ Apr 4 2006, 12:12)  Цитата(&-rey @ Apr 4 2006, 13:41)  Так это фазу крутить. Кнопка на увеличение фазы, и кнопка на уменьшение фазы, в пределах 360 грд конечно. Или это не то что Вам нужно ?
Вы не правильно поняли, как управлять не стоит вопрос, вопрос в том что есть на входе меандр, а на выходе должен быть тот же меандр но сдвинутый по фазе, к тому же частота меандра может быть различна от 1 до 2 кГц. Ваш же пример - генератор двух меандров одной частоты но сдвинутых по фазе. все, теперь понял. Нужно будет подумать .
|
|
|
|
|
Apr 4 2006, 11:50
|

Местный
  
Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528

|
Цитата(kanzler @ Mar 31 2006, 12:11)  Уважаемы, господа! Прошу вашей помощи. Есть меандр с частотным диапазоном 1-2 кГц. Нужно фращать фазу от 0 до 180 или 360 градусов с шагом 1-5 градусов. Поделитесь опытом или подскажите где есть исходники для AVR, если кто делал такую штуку. Я реализовал такую шутку но только на ПЛИС которая работает только с одной частотой. Задача разбивается на 2 1. Определение частоты входного сигнала 2. Формирование задержки.
--------------------
Для связи email: info собака qbit.su
|
|
|
|
|
Apr 5 2006, 05:35
|

Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 27-02-06
Из: Екатеринбург
Пользователь №: 14 728

|
Цитата(bzx @ Apr 4 2006, 17:50)  Задача разбивается на 2 1. Определение частоты входного сигнала 2. Формирование задержки. Огромное спасибо всем кто отвечает. Есть но ... 1. Я уже писал частота изменяется в диапазоне от 1 до 2 кГц с шагом 1 Гц. Тут проблем нет, так как эти частоты генерирует сам процессор. 2. вот тут и возникает вопрос как реализовать задержку в таком диапазоне частот чтобы не пропадали полупериоды меандра. Для одно фиксированной частоты это реализовать не сложно (уже есть такое решение и прекрасно работает) на основе счётчика который и определяет задержку. Всё упирается в пункт 2.
|
|
|
|
|
Apr 5 2006, 06:12
|

Местный
  
Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528

|
Цитата(kanzler @ Apr 5 2006, 09:35)  1. Я уже писал частота изменяется в диапазоне от 1 до 2 кГц с шагом 1 Гц. Тут проблем нет, так как эти частоты генерирует сам процессор. Вот чудак-человек! А сразу нельзя было сказать, что твоя частота формируется самим контроллером. Я же в пункте 1. предполагал, что частота подаётся извне. Это всё значительно упрощает. Цитата 2. вот тут и возникает вопрос как реализовать задержку в таком диапазоне частот чтобы не пропадали полупериоды меандра. Для одно фиксированной частоты это реализовать не сложно (уже есть такое решение и прекрасно работает) на основе счётчика который и определяет задержку. Всё упирается в пункт 2. Насколько я понимаю, то что предложил &-rey тебе должно подойти. Если же ты говоришь, что это тебе не подходит, то значит, что то ты чего то не договариваешь в задаче. Я подозреваю, что есть желание, что бы задержка (сдвиг фаз, в прочем это одно и тоже) была не фиксированная, а изменялась во времени. Тогда требуется ещё и скорость изменения фазы и направление изменения. Поясни.
--------------------
Для связи email: info собака qbit.su
|
|
|
|
|
Apr 5 2006, 06:43
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
 а мне показалось, что имеллось ввиду что частоты малы и их легко можно контролировать .... А вариант когда приходит частота а мы потом из неё делаем такую-же (с какой-то задержкой) и еще одну которая уже будет крутиться относительно этой опорной подойдет ? Если да, тогда мене нужно будет вспомнить чего я там рисовал, и попытаться делать измерение входной частоты и выдачу корректированного параметра. Но следует оговорить скорость изменения входной частоты (фаза за период) что вообщем уже было сказано.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|