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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Atmega128 и таймер
Lmx2315
сообщение Oct 30 2009, 07:01
Сообщение #1


отэц
*****

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



Такой вопрос , уважаемый All!

Можно ли с атмеги128-16 МГц получить с 15 ног , 15 меандров 20 кгц , с возможностью задерживать один относительно другого на фазу с точностью хотя бы 1 градус ?


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 30 2009, 07:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Вы сами то прикиньте - лучше Вас задачу тут, вряд ли, кто знает. Сигналы прийдётся генерить программно. Если, сдвиги фаз заданы раз и навсегда, то, наверное, можно. Но, наверное, сдвиги фаз (а, может быть, и частоту) необходимо менять внешними командами - вот, в этом случае, наверное, это если и реализуемо (это ещё большой вопрос), то с массой ограничений и задача - не тривиальная.
Наверное, всё же, на МК возложены и другие задачи кроме генерации частоты - иначе зачем выбран mega128?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 07:43
Сообщение #3


отэц
*****

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



Цитата(Палыч @ Oct 30 2009, 10:27) *
Вы сами то прикиньте - лучше Вас задачу тут, вряд ли, кто знает. Сигналы прийдётся генерить программно. Если, сдвиги фаз заданы раз и навсегда, то, наверное, можно. Но, наверное, сдвиги фаз (а, может быть, и частоту) необходимо менять внешними командами - вот, в этом случае, наверное, это если и реализуемо (это ещё большой вопрос), то с массой ограничений и задача - не тривиальная.
Наверное, всё же, на МК возложены и другие задачи кроме генерации частоты - иначе зачем выбран mega128?



..я так мыслю - запускаю один таймер и внутрь помещаю 15 переменных .
Каждая переменная инкрементируется каждое срабатывание таймера. После обнуления соответствующей переменной - соответствующая её ножка МК меняет состояние .
Если все растут одновременно - фазы одинаковы на ножках , если какая либо переменная пропускает счёт - соответствующий сигнал запаздывает во времени . Разрешение по фазе - зависит от потолка счёта . Соответственно чем больше разрешение тем ниже максимально достижимая частота.


Вот у меня и вопрос к знающим людям - можно ли при такой методе достичь 20 кгц на каждом канале (числом 15 штук) чтоб точность перестройки фазы была 1 градус . При этом чтоб микруха потянула уарт и обработку несложных команд - типа получил команду - дёрнул ножкой , ответил что всё ОК!

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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 30 2009, 07:59
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Lmx2315 @ Oct 30 2009, 10:43) *
..я так мыслю - запускаю один таймер и внутрь помещаю 15 переменных...
Прикидываем (грубо, конечно): на каждый период у Вас 16 000 000 / 20 000 = 800 тактов; всего - 15 каналов: 800 / 15 = 53 такта; взять переменную+нарастить её+сохранить+сравнить+изменить выход = не менее 10 тактов... При таком подходе - за период Вы сможете поменять выходы не более пяти раз (реально ещё меньше: отъест UART, сохранение/востановление контекста при прерываниях от таймера и т.д.). Итого 360 /5 = 72 градуса. Очень далеко от точности в 1 градус... Всё это - могли бы и Вы сомастоятельно прикинуть.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Oct 30 2009, 08:01
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



20кГц ~ 50мкс - это период.
Что такое 1 градус? Ещё на 360 поделить?
0,138 мкс получается.
Железно на выходах таймера такую точность ещё реально получить, программно - сомневаюсь.
Советую для этих целей поставить простенькую плисину, забить в неё 15 программируемых счётчиков (или один с 15-ю защёлками) и спать спокойно.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 08:22
Сообщение #6


отэц
*****

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



Цитата(Палыч @ Oct 30 2009, 10:59) *
Прикидываем (грубо, конечно): на каждый период у Вас 16 000 000 / 20 000 = 800 тактов; всего - 15 каналов: 800 / 15 = 53 такта; взять переменную+нарастить её+сохранить+сравнить+изменить выход = не менее 10 тактов... При таком подходе - за период Вы сможете поменять выходы не более пяти раз (реально ещё меньше: отъест UART, сохранение/востановление контекста при прерываниях от таймера и т.д.). Итого 360 /5 = 72 градуса. Очень далеко от точности в 1 градус... Всё это - могли бы и Вы сомастоятельно прикинуть.


спасибо , да я и сам прикидывал ...просто надеялся может кто подскажет чего. Хочется именно на атмеге128 заделать , может пере раскидать часть сигналов на аппаратные таймеры , только боюсь на её (атмеги) ШИМах мне меандры со сдвигом не получить . На нужной частоте .



Цитата(MrYuran @ Oct 30 2009, 11:01) *
20кГц ~ 50мкс - это период.
Что такое 1 градус? Ещё на 360 поделить?
0,138 мкс получается.
Железно на выходах таймера такую точность ещё реально получить, программно - сомневаюсь.
Советую для этих целей поставить простенькую плисину, забить в неё 15 программируемых счётчиков (или один с 15-ю защёлками) и спать спокойно.



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


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


Гуру
******

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



Цитата(Палыч @ Oct 30 2009, 08:59) *
16 000 000 / 20 000 = 800 тактов

Плюс 360 градусов с разрешением 1 градус, делим еще на 360, т.е. 2+ такта. Что можно сделать за 2 такта, можно легко догадаться, посмотреть таблицу с ассемблерными инструкциями.


Цитата(Lmx2315 @ Oct 30 2009, 08:01) *
Можно ли с атмеги128-16 МГц получить с 15 ног , 15 меандров 20 кгц , с возможностью задерживать один относительно другого на фазу с точностью хотя бы 1 градус ?

Что-то нужно урезать, либо число каналов, либо разрешение фаз, либо частоту сигнала.
Go to the top of the page
 
+Quote Post
Ronin
сообщение Oct 30 2009, 09:29
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 10-02-05
Из: Краснодар
Пользователь №: 2 558



Конечно 0.138мкс точно не получить, но можно так по кругу:

ld r0,z+
out porta,r0
ld r0,z+
out portb,r0
... ; повтор 133 раза
...

Итого - при 16мгц частота 20кгц (изменяется количеством повторов указанной конструкции).
разрешение - 360/133=2.7 градуса, фазировка каналов задаётся таблицей в озу (266 байт).
Для синхронного вывода в каналы портов А/В можно использовать 16й бит канала В и внешний регистр-защёлку.
Если взять 20мгц аврку точность до 2.15 градуса можно улучшить.
Go to the top of the page
 
+Quote Post
МП41
сообщение Oct 30 2009, 09:42
Сообщение #9


4 синих кубика
****

Группа: Участник
Сообщений: 526
Регистрация: 19-09-08
Из: полупроводника, металла и стекла
Пользователь №: 40 326



А как насчет ATXmega...?


--------------------
p-n-p-p-n-p-n-n-p-n-p структура однако очень эффективна
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 30 2009, 09:48
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Ronin @ Oct 30 2009, 12:29) *
...но можно так по кругу...
Так можно было бы, если бы МК ничем другим занят не был. МК ещё, например, обменивается по UART, а, значит, приведённый Вами участок программы будет прерываться на некое время процедурой обработки прерываний...

Цитата(Ronin @ Oct 30 2009, 12:29) *
...фазировка каналов задаётся таблицей в озу (266 байт)...
Только таких таблиц на все возможные сдвиги потребуется 16384 штуки. Весь этот массив займёт 16384 * 266 = 4358144 байт = 4.4Мбайт.
P.S. Ой! На число шагов сдвига фазы забыл ещё умножить: 4.4*360= 1.58 Гбайт

AVR такую задачу - не потянет, как не мудри...
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 09:50
Сообщение #11


отэц
*****

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



Цитата(МП41 @ Oct 30 2009, 12:42) *
А как насчет ATXmega...?

боязно как-то , новая и сырая .
Кто-нибудь её использовал ?


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Oct 30 2009, 10:02
Сообщение #12


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Lmx2315 @ Oct 30 2009, 13:50) *
боязно как-то , новая и сырая .

Состарьте, подсушите... biggrin.gif

А поконкретнее можете задачу описать?
Может, есть какие-то нюансы, которые упрощают реализацию?

Или всё-таки 15 абсолютно независимых сигналов с произвольным (любым) сдвигом фазы (кстати, относительно чего?) с точностью 1 градус?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Ronin
сообщение Oct 30 2009, 10:11
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 10-02-05
Из: Краснодар
Пользователь №: 2 558



Цитата(Палыч @ Oct 30 2009, 12:48) *
Так можно было бы, если бы МК ничем другим занят не был. МК ещё, например, обменивается по UART...

Только таких таблиц на все возможные сдвиги потребуется 16384 штуки. Весь этот массив займёт 16384 * 266 = 4358144 байт = 4.4Мбайт.
P.S. Ой! На число шагов сдвига фазы забыл ещё умножить: 4.4*360= 1.58 Гбайт

AVR такую задачу - не потянет, как не мудри...


да, насчёт других действий прийдется забыть smile.gif так можно под задачу отдельно тини-20мгц сбоку прикрутить wink.gif я ж логику работы не знаю.
таблиц столько не надо - ибо в #3 сообщении указано что в реальном времени фазы меняться не будут. просто каждый раз новую засылать при калибровке.
то что АВР не тянет - не спорю, просто привёл самый экстремальный вариант, который и то не обеспечит 1 градуса.

с плис тоже разные вариации есть. в общем случае, например 9-битный счётчик и 15ть 9-итных регистров хранящих каждый фазу соотв. канала потребуют 144 триггера, т.е. минимум 7256 или пара 7128, если не влезать во всякие фпга.

Сообщение отредактировал Ronin - Oct 30 2009, 10:13
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Oct 30 2009, 10:21
Сообщение #14


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Есть ещё один вариант - ПСоК-и (PSoC), нарпимер, от Cypress
То есть процессорное ядро плюс конфигурируемая периферия на одном кристалле.
Конкретно сказать не могу, т.к. сам не пробовал, только рекламные листовки читал


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 30 2009, 10:28
Сообщение #15


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Lmx2315 @ Oct 30 2009, 08:22) *
Хочется именно на атмеге128 заделать , может пере раскидать часть сигналов на аппаратные таймеры , только боюсь на её (атмеги) ШИМах мне меандры со сдвигом не получить . На нужной частоте .

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

Мысль одна мелькнула, раз вы готовы даже на плис перейти.. Что если взять несколько мелких МК, типа 8-ногих ATtiny25, и сделать меандры на них. В каждой есть по два таймера, так что два аппаратных меандра уже есть. Далее, можно добавить туда 2 программных. Итого, каждая микрушка может дать до 4 меандров с точностью установки фазы примерно в ПОЛГРАДУСА. Для получения 15 меандров потребуется 4 крошечных МК. Вполне возможно, что для вашего случая предложенная реализация будет проще, чем одна плис.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 10:41
Сообщение #16


отэц
*****

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



Цитата(MrYuran @ Oct 30 2009, 13:02) *
Состарьте, подсушите... biggrin.gif

А поконкретнее можете задачу описать?
Может, есть какие-то нюансы, которые упрощают реализацию?

Или всё-таки 15 абсолютно независимых сигналов с произвольным (любым) сдвигом фазы (кстати, относительно чего?) с точностью 1 градус?


Можно описать поконкретней - 15 каналов меандра приходят на 15 фильтров после которых получаем 15 cos-нысных сигналов (гармоники на 20 кгц) .

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

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

т.е. по крайней мере один канал подстраивать не нужно .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Ronin
сообщение Oct 30 2009, 10:43
Сообщение #17


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 10-02-05
Из: Краснодар
Пользователь №: 2 558



Цитата(=GM= @ Oct 30 2009, 13:28) *
Мысль одна мелькнула, раз вы готовы даже на плис перейти.. Что если взять несколько мелких МК, типа 8-ногих ATtiny25, и сделать меандры на них. В каждой есть по два таймера, так что два аппаратных меандра уже есть. Далее, можно добавить туда 2 программных. Итого, каждая микрушка может дать до 4 меандров с точностью установки фазы примерно в ПОЛГРАДУСА. Для получения 15 меандров потребуется 4 крошечных МК. Вполне возможно, что для вашего случая предложенная реализация будет проще, чем одна плис.


останется только вопрос - как их вместе синхронизировать с требуемой точностью ?

Сообщение отредактировал Ronin - Oct 30 2009, 10:48
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 10:45
Сообщение #18


отэц
*****

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



Цитата(=GM= @ Oct 30 2009, 13:28) *
Мысль одна мелькнула, раз вы готовы даже на плис перейти.. Что если взять несколько мелких МК, типа 8-ногих ATtiny25, и сделать меандры на них. В каждой есть по два таймера, так что два аппаратных меандра уже есть. Далее, можно добавить туда 2 программных. Итого, каждая микрушка может дать до 4 меандров с точностью установки фазы примерно в ПОЛГРАДУСА. Для получения 15 меандров потребуется 4 крошечных МК. Вполне возможно, что для вашего случая предложенная реализация будет проще, чем одна плис.

biggrin.gif

спасибо , интересно . Надо посмотреть .МК для меня попроще плисок будут.



Цитата(Ronin @ Oct 30 2009, 13:43) *
останется только вопрос - как их вместе синхронизировать с требуемой точностью ?


у них у всех общий эталон , значит частота и фаза будут у всех синхронны .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 30 2009, 11:41
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Lmx2315 @ Oct 30 2009, 13:41) *
... что бы его подавить используется фазовый метод пришедший сигнал складывается с таким же , происходит подбор фазы и амплитуды и так мешающая гармоника давится ...
Может быть - Вам структуру всего устройства пересмотреть? Сгенерить на m128 два сигнала сдвинутые на определенный угол с большой точностью - "как два пальца..." Может достаточно будет для фильтрации один сдвинутый относительно основного сигнал, но управляемый от схемы подавления несущей?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 11:44
Сообщение #20


отэц
*****

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



Цитата(Палыч @ Oct 30 2009, 14:41) *
Может быть - Вам структуру всего устройства пересмотреть? Сгенерить на m128 два сигнала сдвинутые на определенный угол с большой точностью - "как два пальца..." Может достаточно будет для фильтрации один сдвинутый относительно основного сигнал, но управляемый от схемы подавления несущей?



а что за схема подавления несущей ?

..я не против поменять структурную схему - только пока ничего в голову не приходит. Палку давить на входе надо - фильтром нельзя , нужно видеть весь спектр с низу и до ограничения антиальязинговым фильтром. Только фазовый способ в голову приходит. Конечно если атмега не подойдёт - использоваться не будет , просто хотелось бы . Вот слушаю что уважаемый ALL подскажет.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 30 2009, 12:07
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Lmx2315 @ Oct 30 2009, 14:44) *
а что за схема подавления несущей ?

Вы же сами писали:
Цитата(Lmx2315 @ Oct 30 2009, 13:41) *
...что бы его подавить используется фазовый метод пришедший сигнал складывается с таким же ...

Часть Вашего устройства, которая складывает сигналы (неправильно мной названная "схема подавления несущей"), наверное, последовательно складывает сигнал с набором сигналов, сдвинутых на разные углы фаз. Можно, наверное, складывать сигнал с одним сигналом, но управляемым по фазе, вместо множества сигналов?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 12:21
Сообщение #22


отэц
*****

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



Цитата(Палыч @ Oct 30 2009, 15:07) *
.....Можно, наверное, складывать сигнал с одним сигналом, но управляемым по фазе, вместо множества сигналов?



..я не достаточно точно объяснил , на самом деле так и есть .

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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 30 2009, 14:34
Сообщение #23


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



У вас повторяющийся процесс или разовый? У меня тут ещё одна дикая мысль мелькнула...даже две...


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 16:55
Сообщение #24


отэц
*****

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



Цитата(=GM= @ Oct 30 2009, 17:34) *
У вас повторяющийся процесс или разовый? У меня тут ещё одна дикая мысль мелькнула...даже две...



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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 30 2009, 17:22
Сообщение #25


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Если повторяющийся, то можно последовательно подключать два сигнала (опорный и сдвинутый по фазе) ко всем вашим устройствам.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 30 2009, 17:29
Сообщение #26


Гуру
******

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



Цитата(Lmx2315 @ Oct 30 2009, 12:21) *
Просто у меня каналов несколько , потому и нужно много разных гармоник по одной для каждого канала . В каналах совсем разная информация идёт на несущей когерентной с отосланной.

Значит тем более нужно разделять на 15 отдельных мелкосхем.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 17:49
Сообщение #27


отэц
*****

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



Цитата(Огурцов @ Oct 30 2009, 20:29) *
Значит тем более нужно разделять на 15 отдельных мелкосхем.



места мало , два МК - ещё ничего , но 15 - перебор.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 30 2009, 19:01
Сообщение #28


отэц
*****

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



Спасибо мужики , наверное придётся ПЛИС ставить + мелкий контроллер .
А иначе придётся снижать частоту до наверное сотен Герц , а я не уверен что это гуд .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
singlskv
сообщение Oct 31 2009, 15:10
Сообщение #29


дятел
*****

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



Цитата(Lmx2315 @ Oct 30 2009, 22:01) *
Спасибо мужики , наверное придётся ПЛИС ставить + мелкий контроллер .
А Вы так и не озвучили какая частота смены фазовых сдвигов,
те откалибровали и крутим до "посинения"(след. калибровки) или сдвиги фаз могут измениться в любой момент ?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 31 2009, 18:07
Сообщение #30


Гуру
******

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



Так может все должно быть гораздо проще ? И сдается мне, что не нужно формаировать 15 сигналов с настраиваемым фазовым сдвигом, а потом этот сдвиг подбирать. Нужно просто перемножить каждый канал на стабильный синус и косинус, и посмотреть на результат - в результате как раз и будет искомый сдвиг фаз.
Go to the top of the page
 
+Quote Post
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
Lmx2315
сообщение Nov 2 2009, 19:46
Сообщение #46


отэц
*****

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



Цитата(Огурцов @ Nov 2 2009, 20:22) *
Не помню и не знаю. Вероятно, в полтора раза хуже. Скажите, а у вас палка на осциллографе или на спектроанализаторе ? Я уже начал сомневаться, что палка в спектре. Тогда сигнал можно просто прологарифмировать.


..палка в спектре .

я одно время думал - может поставить встречно параллельные диоды шотки - ограничение 0.2 вольта - усилить в 10 раз а потом снова . Но что-то мне кажется что я глуплю . Так полезный сигнал не достать .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 3 2009, 00:59
Сообщение #47


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Ronin @ Oct 30 2009, 12:11) *
то что АВР не тянет - не спорю, просто привёл самый экстремальный вариант, который и то не обеспечит 1 градуса.

Самый экстремальный вариант будет когда таблица зашита непосредственно в команды:

LDI rd, A0
OUT PORTx, rd
LDI rd, A1
OUT PORTx, rd
...
LDI rd, Ai
OUT PORTx, rd
...

и нативно зациклена (тобиш вся память программ забита этими парами команд). С таким подходом тиня2313 даст 8-ми канальный 10Mhz ШИМ при Fosc 20Mhz, что для сигнала в 20kHz даст точность выше одного градуса ---> 360 / (10 000 / 20) = 0.72 градуса. Ну а дальше дело техники, две tiny2313 - 16каналов, а мега128 пусть их программирует по ISP smile.gif

Только, а нафига там контроллер? smile.gif
Почему бы просто не взять параллельный OTPROM или FLASH, зашить таблицу, да и инкрементировать адрес с требуемой частотой (как раньше музыкальные звонки делали), все синхронно и никакой контроллер не нужен.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 3 2009, 04:44
Сообщение #48


Гуру
******

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



Не подходит, т.к. фаза каждого канала должна подстраиваться в процессе. Так что тоже самое, но только из озу - см. выше.
Go to the top of the page
 
+Quote Post
fmdost
сообщение Nov 4 2009, 00:56
Сообщение #49


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Цитата
defunct Почему бы просто не взять параллельный OTPROM или FLASH,

Цитата
Огурцов Не подходит, т.к. фаза каждого канала должна подстраиваться в процессе.


Фазу крутить смещением адреса.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 4 2009, 10:25
Сообщение #50


Гуру
******

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



Так вы ж фазу сразу у восьми каналов крутить будете, а нужно отдельно для каждого ; Можно бы, конечно, это обойти, но размер флеша будет исчисляться как 256^8. Т.е. максимум, на что можно рассчитывать при таком подходе - это пара каналов, т.е. 256^2.

Сообщение отредактировал Огурцов - Nov 4 2009, 10:26
Go to the top of the page
 
+Quote Post

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

 


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


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