реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Atmega128 и таймер
Lmx2315
сообщение Nov 1 2009, 16:36
Сообщение #31


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(singlskv @ Oct 31 2009, 18:10) *
А Вы так и не озвучили какая частота смены фазовых сдвигов,
те откалибровали и крутим до "посинения"(след. калибровки) или сдвиги фаз могут измениться в любой момент ?



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

Цитата(Огурцов @ Oct 31 2009, 21:07) *
Так может все должно быть гораздо проще ? И сдается мне, что не нужно формаировать 15 сигналов с настраиваемым фазовым сдвигом, а потом этот сдвиг подбирать. Нужно просто перемножить каждый канал на стабильный синус и косинус, и посмотреть на результат - в результате как раз и будет искомый сдвиг фаз.


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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 1 2009, 18:59
Сообщение #32


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Аха, комплексный перемножитель. Либо мультиплекисрованием по времени. Либо в цифре.
Но как я догадываюсь, у вас полезный сигнал слаб по отношению к несущей ? Которую вы хотите задавить перед усилением. Но похоже, тут есть одна проблема - на выходе таймера у вас будет не синус, а меандр, и даже если точно подобрать уровень компенсирующего сигнала, все равно останется третья (и т.д.) гармоника, которая забьет усилитель. Может вместо усиления увеличить разрешение АЦП ?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 1 2009, 19:23
Сообщение #33


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(Огурцов @ Nov 1 2009, 21:59) *
...
Но как я догадываюсь, у вас полезный сигнал слаб по отношению к несущей ? Которую вы хотите задавить перед усилением. Но похоже, тут есть одна проблема - на выходе таймера у вас будет не синус, а меандр, и даже если точно подобрать уровень компенсирующего сигнала, все равно останется третья (и т.д.) гармоника, которая забьет усилитель. Может вместо усиления увеличить разрешение АЦП ?



я после меандра фильтр ставлю на первую гармонику - там косинус у меня будет , без гармоник ,насколько можно -фильтр будет n-ного порядка от MAX.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 1 2009, 19:30
Сообщение #34


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Вы бы побольше данных привели. Типа уровень несущей, уровень сигнала, какое разрешение на выхрде АЦП должно быть. И вообще, как оно потом будет использоваться. В АДСЛ-модемах, например, задачка по-круче, кажется, но решают.


Цитата(Lmx2315 @ Nov 1 2009, 19:23) *
я после меандра фильтр ставлю на первую гармонику - там косинус у меня будет , без гармоник ,насколько можно -фильтр будет n-ного порядка от MAX.

Т.е. все равно +15 фильтров ? Неэстетично.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2009, 19:45
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Кстати , а модулирующий сигнал периодический или как бог на душу положит


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 1 2009, 19:57
Сообщение #36


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(Огурцов @ Nov 1 2009, 22:30) *
Вы бы побольше данных привели. Типа уровень несущей, уровень сигнала, какое разрешение на выхрде АЦП должно быть. И вообще, как оно потом будет использоваться. В АДСЛ-модемах, например, задачка по-круче, кажется, но решают.

...

Т.е. все равно +15 фильтров ? Неэстетично.



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

Данные такие: вредная палка - порядка 1-5 Вольт , полезный сигнал - порядка сотен микровольт - единиц милливольт
Полезное разрешение по сигналу хотелось бы разрядов 8 , прям сейчас поставил 12 разрядный АЦП .

Из этого можно прикинуть с какой точностью давить нужно , было б здорово если б знающие люди ткнули бы меня где у меня узкие места smile.gif, с какой точностью фазу подстраивать.

Так получается что АЦП с большим разрешением не поставить , за ним будет идти блекфин 533 . Конструкция такая - 12 бит АЦП , 4 бита - номер канала - это всё идёт к блекфину на PPI. А он у него всего -16 бит . Если увеличить разрядность - надо мудрить как блекфину сообщать какой канал сейчас оцифровывается , у меня временное мультиплексирование . Т.е. несколько каналов идут на мультиплексор и с него на АЦП , потом на DSP. Мультиплексор перебирает каналы и те по очереди оцифровываются , ну само собой быстро-быстро .

Сам блекфин будет стоять далеко , туда информация через лвдс-ную пару после сериалайзера уйдёт с АЦП. каналы + адресс канала .

Применяться будет просто - нужно распознать сигнал он будет стандартный - есть ,выдать ОК! Если не похож - выдать - нет . Форма сигнала после цифровой обработки должна выделится.Ну это не моя задача.


Цитата(ILYAUL @ Nov 1 2009, 22:45) *
Кстати , а модулирующий сигнал периодический или как бог на душу положит



..случайный , если пропустил -повторов не будет .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 1 2009, 21:26
Сообщение #37


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Lmx2315 @ Nov 1 2009, 19:57) *
Данные такие: вредная палка - порядка 1-5 Вольт , полезный сигнал - порядка сотен микровольт - единиц милливольт
Полезное разрешение по сигналу хотелось бы разрядов 8 , прям сейчас поставил 12 разрядный АЦП

Тогда в худшем случае потребуется 24 бита, в лучшем - 18. Вполне такое сегодня продается. И блекфин должен справиться с вашей частотой.
Из решений на avr - посмотрите pwm3 - там вроде бы шесть подходящих каналов. XMega скорее всего не подойдет.
Еще элементарный вариант - (двухпортовое) озу 256x16. При условии, что смена фазы в каждом канале не очень частая.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 1 2009, 22:33
Сообщение #38


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Lmx2315 @ Nov 1 2009, 19:36) *
правильно - откалибравали и крутим до следующей калибровки , в любой момент фазы менятся не должны .
Ну вроде как 15 каналов все равно не уместить в 1 МК,
но если 2 МК по 8 каналов то наверное почти можно....

Смысл в том что на сомом деле менять выход нам нужно очень не часто
т.к. частота на всех каналах одинакова.
Если мы имеем возможность сначала готовить данные а потом "крутить каналы",
то вывод на 8 каналах должен выглядеть примерно так:
Код
  movw r31:r30, r1:r0
  out  PORTx, r14
r_14:
  dec  r30
  brne r14

  out  PORTx, r15
r_15:
  dec r31
  brne r_15

  movw r31:r30, r3:r2
  out  PORTx, r16
r_16:
  dec  r30
  brne r16

  out  PORTx, r17
r_17:
  dec r31
  brne r_17

..........................

регистры r0-r??? заранее подготовлены и содержат в себе длительности неизменного вывода в порт
регистры r14-r??? заранее подготовлены и содержат выводимое значение
длительности перегружаются в текущие счетчики попарно movw(для экономии)
нужно конечно это все уравнять по тактам

да, и еще, для 8 сигналов нужно брать выводимые значения с запасом(для уравнивания всего цикла),
те какое-то состояние порта будет два раза забито в регистрах с разными длительностями
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 1 2009, 22:54
Сообщение #39


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Даже если подготовить данные заранее, то максимум чего можно достичь, это 14.8 кгц на 8 каналов. Т.е. как я и говорил, осетра нужно урезать. Если взять разрешение в 1.5 градуса, то 8 каналов уже вполне можно тянуть. Либо 15, но на XMega. Либо еще более другой камень. Но это только по генерации, а не по решению задачи.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2009, 23:25
Сообщение #40


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата
'Lmx2315' ]
Данные такие: вредная палка - порядка 1-5 Вольт , полезный сигнал - порядка сотен микровольт - единиц милливольт

Ну во вредной палке сигнал всё равно потерян навсегда , почему бы не "резануть " её компаратором.
Сотношение частот несущей и модуляции? Если большое, не проще аналоговый фильтр 2-3 порядка и отсечь несушую. Или сначала умножить , что бы разнести их подальше , если соотношение маленькое, фильтрануть, и оцифровать
Ацп многих MEGA имеют встроенный усилитель т.ч. можно поднять полезный сигнал с мировольт до вольт.

Сообщение отредактировал ILYAUL - Nov 1 2009, 23:33


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 2 2009, 06:37
Сообщение #41


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(ILYAUL @ Nov 2 2009, 02:25) *
Ну во вредной палке сигнал всё равно потерян навсегда , почему бы не "резануть " её компаратором.
Сотношение частот несущей и модуляции? Если большое, не проще аналоговый фильтр 2-3 порядка и отсечь несушую. Или сначала умножить , что бы разнести их подальше , если соотношение маленькое, фильтрануть, и оцифровать
Ацп многих MEGA имеют встроенный усилитель т.ч. можно поднять полезный сигнал с мировольт до вольт.



..резануть компаратором ? ..это идея вообщем-то . Я одно время даже думал наплевать на палку - у меня полезный сигнал проявляется скажем так у нулей синусоиды (когда через ноль идёт) .Но побоялся что если всё так просто оставить - каскады АЦП будут в насыщении и отсюда частотные или ещё какие проблемы полезут . Я думал просто диодами уровень ограничить и сказать математикам что когда Ацп забит - не обрабатывать и выгрести что есть около нулей. Но что-то уж мне всё это коряво как-то показалось.

Спасибо за идею smile.gif . Только придётся порог компаратора очень низко ставить - порядка ну порядка 1 мВольта , как бы там чего не лпавало уж очень сильно ...даже если честно не знаю как себя будет вести компаратор . Потом ведь после него ещё усиливать всё .

....модуляций там несколько , так как типов полезных сигналов тоже несколько у кого-то полоса примерно килогерцы , у кого-то сотни - десятки герц . Аналоговым фильтром всем не угодишь - в цифре можно всё лишнее отрезать , но до не ещё довести надо.

Умножать в аналоге - такие дебри даже лезть не хочется .



АЦП в мегах имеет уж очень дискретный усилитель - если бы я использовал АЦП меги - всё равно поставил бы внешний регулируемый операционничек . Но АЦП меги мне для обработки не пригодится - в рабочем режиме каналы очень быстро переключаются 1 мкс на канал . Никакая Атмега не успеет обмерить .



Цитата(Огурцов @ Nov 2 2009, 01:54) *
Даже если подготовить данные заранее, то максимум чего можно достичь, это 14.8 кгц на 8 каналов. Т.е. как я и говорил, осетра нужно урезать. Если взять разрешение в 1.5 градуса, то 8 каналов уже вполне можно тянуть. Либо 15, но на XMega. Либо еще более другой камень. Но это только по генерации, а не по решению задачи.



прошу прощения а не помните случайно - погрешность в пусть 1.5 градуса это сколько Дб подавления у синфазных каналов ?

Цитата(singlskv @ Nov 2 2009, 01:33) *
Ну вроде как 15 каналов все равно не уместить в 1 МК,
но если 2 МК по 8 каналов то наверное почти можно....

Смысл в том что на сомом деле менять выход нам нужно очень не часто
т.к. частота на всех каналах одинакова.
Если мы имеем возможность сначала готовить данные а потом "крутить каналы",
то вывод на 8 каналах должен выглядеть примерно так:
Код
  movw r31:r30, r1:r0
  out  PORTx, r14
r_14:
  dec  r30
  brne r14

  out  PORTx, r15
r_15:
  dec r31
  brne r_15

  movw r31:r30, r3:r2
  out  PORTx, r16
r_16:
  dec  r30
  brne r16

  out  PORTx, r17
r_17:
  dec r31
  brne r_17

..........................



...боюсь выглядеть смешным клоуном smile.gif - а в codevision теоретически сильно тормознее код сделает на Си ?
Я в асемблере не очень , вовсе не очень . Нет выглядит понятно 0 но знаете так бывает - не знаешь даже как подступится , потому кодевиженом и пользовался - мастер всё за тебя делает .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 2 2009, 08:59
Сообщение #42


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Lmx2315 @ Nov 2 2009, 09:37) *
- а в codevision теоретически сильно тормознее код сделает на Си ?
На С так не сделать, не получится зарезервировать так много регистров,
и убедить его компилить в похожий код.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 2 2009, 09:56
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



А вот такая идейка:
По прикидкам ( поверхостным) понадобятся два ЦАП+ компаратор( возможно два)+таблица синуса( косинуса)+ MEGA
Вы формируете свою несущую на первом ЦАП по табличным данным , на одну полуволну ,например , 256 отсчётов. Весь период 512. Но собственно Вам нужна в таблице только полуволна. Вы получаете очень стабильную несущую и точку отсчёта 0 по Х и 0 по Y/. На втором ЦАП Вы формируете полуволну , которую можно сдвигать относительно первой аж 256 раз т.е стартовать ее с координат 0,0 или 1 по X 0-Y ....234 по X - 0 по Y и т.д. На 180 градусов шаг 0,7 градуса. Но Вам это и не понадобится. Здесь можно применить ( по прикидкам ) маленькую хитрость, но не зная сигнала сужу так , что сигнал не имеет постоянной составляющей и имет соответсвенно положительную и отрицательную полуволну. Например, Вы инвертируете отрицательную полуволну, что бы относительно нуля у Вас шли одна за другой положительные полуволны. И на втором ЦАП для каждой из этих полувол Вы формируете полуволну со сдвигом ( но здеть ещё надо продумать). Компаратор отработает на резонансе. Ну дальше понятно , инверсия на втором и несущей нет, но я бы сохранил сигал с перевёрнутой отрицательной полуволной полезного сигнала. Зная все точки отсчёта Вы можете потом восстановить исходный сигнал и оцифровать положительную и отрицательную полуволны всеми 10 разрядами АЦП не заморачиваясь на знак тем самым повысить точность оцифровки.
Наверно Вы помните советские приемники с настройкой ручкой. Настраивались примерно так быстро крутилась ручка , по проскочившему звуку определялось наличие станции и медленно вовращаясь назад подстраивались под эту станцию. Здесь можно применить тот же принцип . Идти с шагом 2-3 градуса и по отработке 1-го компаратора засечь точку и уже точно зная , что нужная Вам фаза осталась "позади" потихоньку вернутся к данной точке , что бы отработали сразу два компаратора. Считаем , что попали в фазу.
Попробуйте посчитать , по временам , я смогу это проделать , только вечером дома . Да и писать я думаю придётся асмом - затрат меньше.

Вот такая идейка. laughing.gif

Да и я не понял , зачем порог для отсечки выставлять в миливольтах , если столб , как вы писали от 1-5 вольт и самое простое выставить 0, 5-0, 2 вольта порог и сажать сигнал в этот момент на землю. Конечно не зная схемы судить трудновато.

Сообщение отредактировал ILYAUL - Nov 2 2009, 10:00


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 2 2009, 10:51
Сообщение #44


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(ILYAUL @ Nov 2 2009, 12:56) *
А вот такая идейка:
.......

Вот такая идейка. laughing.gif

Да и я не понял , зачем порог для отсечки выставлять в миливольтах , если столб , как вы писали от 1-5 вольт и самое простое выставить 0, 5-0, 2 вольта порог и сажать сигнал в этот момент на землю. Конечно не зная схемы судить трудновато.



тут мне надо подумать сильно над идеей, так всё сразу и не переварю. Спасибо заранее smile.gif .

-----------------------------------------------------------------------------------

А касательно порога утрирую - полезный сигнал 1 мВ , палка - 1 Вольт , чтобы её компаратором на землю посадить - порог нужно ставить сравнимый с входным полезным сигналом и с запасом больше его примерно ну пусть - 100 мВольт. Ведь потом ещё полученный сигнал нужно раскачивать усилителем до уровня хотя бы 8-бит АЦП ( у АЦП 12 бит шкала - 2 Вольта) . С компаратором по моему идея хорошая .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 2 2009, 17:22
Сообщение #45


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Lmx2315 @ Nov 2 2009, 07:37) *
прошу прощения а не помните случайно - погрешность в пусть 1.5 градуса это сколько Дб подавления у синфазных каналов ?

Не помню и не знаю. Вероятно, в полтора раза хуже. Скажите, а у вас палка на осциллографе или на спектроанализаторе ? Я уже начал сомневаться, что палка в спектре. Тогда сигнал можно просто прологарифмировать.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01559 секунд с 7
ELECTRONIX ©2004-2016