-
- Я с полгода назад реализовывал DDS для управления асинхронником. Понадобился режим, когда вместо синуса на выход подается меандр. Оказалось, что как синус не искажай, он все равно будет трапецией. Поэтому я в программе сделал такой финт: когда задание rezident(540 знак., 18.04.2010 09:33)
- Формировать прямоугольник самим DDS нельзя, так как DDS способен формировать лишь периодические сигналы с ограниченным частотой среза фильтра спектром. - Лeoнид Ивaнoвич(18.04.2010 14:20)
- Я это к тому, что может вам тоже предусмотреть программную коррекцию формы сигнала? Установил флаг и все отсчеты заменяются макс. значениями. Все что меньше нуля MIN_VAL, все что больше или равно нулю MAX_VAL. - rezident(18.04.2010 09:35)
- а кому он нужен, меандр-то? Мне, например, намного чаще нужен прямоугольник с регулируемой скважностью от 0 до 100%, притом обычно однополярный - koyodza(17.04.2010 21:50)
- Прямоугольник с регулируемой скважностью уже реализован. Хотелось бы в генераторе синуса иметь меандр с тем частотным разрешением, которое дает DDS. Если он Вам не нужен, это не повод выбрасывать эту функцию из генератора. Хотя я уверен, что Вы от такого Лeoнид Ивaнoвич(59 знак., 18.04.2010 02:33)
- нет, пожалуй, повторять не стану - koyodza(18.04.2010 20:34)
- Прямоугольник с регулируемой скважностью уже реализован. Хотелось бы в генераторе синуса иметь меандр с тем частотным разрешением, которое дает DDS. Если он Вам не нужен, это не повод выбрасывать эту функцию из генератора. Хотя я уверен, что Вы от такого Лeoнид Ивaнoвич(59 знак., 18.04.2010 02:33)
- усилитель-ограничитель имхо - Shura(17.04.2010 16:57)
- Это было бы идеально, если бы простым движением руки усилитель переключался в режим ограничителя. Но ограничитель не меньше чем на 3-х быстрых ОУ сделать удалось :( - Лeoнид Ивaнoвич(17.04.2010 17:07)
- Он таки и переключается :-) См. схему ниже, а V clamp ШИМом сформируете - Shura(17.04.2010 17:09)
- Это было бы идеально. И ШИМ не нужен, там просто два уровня нужно. Но... Лeoнид Ивaнoвич(17.04.2010 17:38)
- Он таки и переключается :-) См. схему ниже, а V clamp ШИМом сформируете - Shura(17.04.2010 17:09)
- Это было бы идеально, если бы простым движением руки усилитель переключался в режим ограничителя. Но ограничитель не меньше чем на 3-х быстрых ОУ сделать удалось :( - Лeoнид Ивaнoвич(17.04.2010 17:07)
- тупо поставить повторитель (с резистором в ОС) после фильтра и подключать инвертирующий вход на землю релейным способом - Vit(17.04.2010 16:31)
- Примерно так и рассуждаю, только ОУ Rail-to-rail и включить ему на это время питание, равное амплитуде синуса, чтобы выходная амплитуда не менялась. Громоздко получается. - Лeoнид Ивaнoвич(17.04.2010 17:06)
- Может, поставить после фильтра DataSlicer+дифференцирующая цепочка+триггер Шмитта, ну и переключать на до и после этой марахайки - Vit(17.04.2010 17:15, ссылка)
- Грозным словом Data-Slicer назван компаратор с порогом, равном интегралу сигнала? Вспомнился термин "Dynamic spectrum slicing" :) Т.е. компаратор, а затем переключать, ключи в цепи сигнала. С постоянкой только надо как-то разобраться. - Лeoнид Ивaнoвич(17.04.2010 17:26)
- оно именно чтобы с постоянкой не разбираться. применялась часто в автосингналках по выходу сверхрегенератора. ставили LM358. подключалось без разделительных конденсаторов - Vit(17.04.2010 17:31)
- Я имею в виду дальше с постоянкой разобраться, ведь у компаратора однополярный сигнал. - Лeoнид Ивaнoвич(17.04.2010 17:38)
- почему однополярный? плюс/минус - Vit(17.04.2010 17:43)
- Типа ОУ, а не компаратор? - Лeoнид Ивaнoвич(17.04.2010 19:08)
- да - Vit(17.04.2010 19:58)
- Типа ОУ, а не компаратор? - Лeoнид Ивaнoвич(17.04.2010 19:08)
- почему однополярный? плюс/минус - Vit(17.04.2010 17:43)
- Я имею в виду дальше с постоянкой разобраться, ведь у компаратора однополярный сигнал. - Лeoнид Ивaнoвич(17.04.2010 17:38)
- оно именно чтобы с постоянкой не разбираться. применялась часто в автосингналках по выходу сверхрегенератора. ставили LM358. подключалось без разделительных конденсаторов - Vit(17.04.2010 17:31)
- Грозным словом Data-Slicer назван компаратор с порогом, равном интегралу сигнала? Вспомнился термин "Dynamic spectrum slicing" :) Т.е. компаратор, а затем переключать, ключи в цепи сигнала. С постоянкой только надо как-то разобраться. - Лeoнид Ивaнoвич(17.04.2010 17:26)
- Может, поставить после фильтра DataSlicer+дифференцирующая цепочка+триггер Шмитта, ну и переключать на до и после этой марахайки - Vit(17.04.2010 17:15, ссылка)
- Примерно так и рассуждаю, только ОУ Rail-to-rail и включить ему на это время питание, равное амплитуде синуса, чтобы выходная амплитуда не менялась. Громоздко получается. - Лeoнид Ивaнoвич(17.04.2010 17:06)
- Давайте в новую ветку это снесём - Shura(17.04.2010 16:31)
- Давайте. Вот мой вариант на основе Rail-to-rail ОУ: Лeoнид Ивaнoвич(53 знак., 17.04.2010 17:03, картинка)
- Я б его модернизировал, чтоб не загонять ОУ в насыщение - Shura(17.04.2010 17:06, картинка)
- К великому сожалению, не прокатывает. Такой ограничитель очень "мягкий", форма вершины очень кривая. А ОУ я взял заведомо быстрый, в симуляторе очень красивая картинка при ограничении. Да и в даташитах часто для R-to-R ограничение рисуют. Единственное Лeoнид Ивaнoвич(147 знак., 17.04.2010 17:19)
- Ну есть и другие схемы усилителей-ограничителей, в т.ч. есть готовые интегральные усилители-ограничители. Но на Жданах, опять же, врядли будут. - Shura(19.04.2010 09:40)
- Другие схемы усилителей-ограничителей - это три быстрых ОУ. Проще прецизионных ограничителей не бывает. - Лeoнид Ивaнoвич(19.04.2010 11:47)
- P.S. А можно просто пропустить полученный недомеандр через любой цифровой буфер. - Shura(19.04.2010 09:52)
- Можно. В самом первом своем генераторе я так и делал. Тут же хотелось сразу получить меандр нужной амплитуды и с нулевой постоянной составляющей. Практически созрел на R-to-R ОУ AD8051 (есть на Жданах), Лeoнид Ивaнoвич(160 знак., 19.04.2010 11:50)
- да на отдельную ножку МК вывести, и уже потом коммутировать с синусом - koyodza(19.04.2010 11:14)
- Что именно вывести на отдельную ножку МК? Меандр можно получить только после аналогового фильтра. В цифровой части DDS его не существует. - Лeoнид Ивaнoвич(19.04.2010 11:45)
- как это? А знак? Это и есть меандр. Хотя я бы всё-таки расширил возможности, и выводил результат сравнения аккумулятора фазы с задаваемым числом, тогда можно будет скважность регулировать - koyodza(19.04.2010 11:50)
- Ну Вы даёте. А джиттер? - Лeoнид Ивaнoвич(19.04.2010 11:51)
- а типа в синусе его вообще нет? Конечно, после ФНЧ он будет не такой страшный, но на безрыбье, как говорится... - koyodza(19.04.2010 11:52)
- Джиттер вызван наличием в выходном спектре DDS побочных компонентов. После фильтра их нет. По крайней мере, их несоизмеримо меньше. Такой прямоугольник, который можно получить на DDS цифровым способом, с джиттером до четверти периода, никому не нужен. - Лeoнид Ивaнoвич(19.04.2010 11:57)
- частота DDS слишком низкая ;=) - koyodza(19.04.2010 12:00)
- При любой частоте DDS качество сигнала будет несопоставимым. Никто так не делает. Посмотрите, например, схему генератора Agilent: - Лeoнид Ивaнoвич(19.04.2010 12:19, ссылка)
- Кстати, раз у вас есть связь с ПК, то нет смысла ограничиваться формой сигнала, надо сделать генератор произвольной формы с загрузкой таблицы с ПК - Shura(19.04.2010 12:58)
- Не получится. У меня крохотная таблица и интерполяция, использующая особенности функции sin. Ну т.е. можно сделать, но цифровая часть прибора будет другой (дороже). - Лeoнид Ивaнoвич(19.04.2010 15:11)
- дороже она будет на 30 центов - цену 24C01 ;-) - Shura(19.04.2010 15:15)
- Для того, чтобы использовать разрешение ЦАП, объем таблицы должен быть в отношение скорости нарастания сигнала к его амплитуде больше, чем количество квантов ЦАП. Для синуса это в два пи раз больше. Т.е. для 16 бит ЦАПа нужно полмега слов. - Лeoнид Ивaнoвич(19.04.2010 15:23)
- Даже если так, 24С1024 стоит $3 - немного, с учётом того, насколько расширяется функциональность. - Shura(19.04.2010 15:30)
- Дело не в ней, а в ОЗУ. - Лeoнид Ивaнoвич(19.04.2010 15:43)
- Нафиг ОЗУ? Прям из EEPROM сувать в ЦАП. Только надо 25xx, koyodza правильно заметил. - Shura(19.04.2010 15:46)
- Так принцип действия DDS не предполагает выборку из памяти подряд :) - Лeoнид Ивaнoвич(19.04.2010 15:47)
- И не надо, 20 МГц SPI должно успеть - Shura(19.04.2010 16:02)
- Так принцип действия DDS не предполагает выборку из памяти подряд :) - Лeoнид Ивaнoвич(19.04.2010 15:47)
- Нафиг ОЗУ? Прям из EEPROM сувать в ЦАП. Только надо 25xx, koyodza правильно заметил. - Shura(19.04.2010 15:46)
- 24Сххх не пойдёт по времени доступа. Тут ОЗУ лучше. А оно тогда просится перебраться на ARM, имхо, там можно было бы прямо из ОЗУ через DMA в интерфейс кидать - koyodza(19.04.2010 15:31)
- Вы по-прежнему считаете, что DMA может чем-то помочь в реализации DDS? - Лeoнид Ивaнoвич(19.04.2010 15:46)
- да. Не в "реализации DDS", она останется программной. DMA поможет выдавать в нужный интерфейс с постоянной скоростью данные из ОЗУ - koyodza(19.04.2010 16:30)
- Т.е. в ОЗУ придется организовывать промежуточный буфер? - Лeoнид Ивaнoвич(19.04.2010 16:38)
- да. Не в "реализации DDS", она останется программной. DMA поможет выдавать в нужный интерфейс с постоянной скоростью данные из ОЗУ - koyodza(19.04.2010 16:30)
- ОК, 25LC1024. ОЗУ не просится, перезашивать каждый раз при выключении питания будет ужасно нервировать :-) - Shura(19.04.2010 15:34)
- Скорости не хватит. Выборка из памяти должна производится не подряд, а согласно мгновенной фазе DDS. - Лeoнид Ивaнoвич(19.04.2010 15:45)
- 20 МГц клок, 40 клоков на чтение произвольного байта. Должно хватить с большим запасом. - Shura(19.04.2010 15:48)
- Проц не умеет так быстро работать по SPI, максимум - 10 МГц. К тому же, SPI один, он занят эмуляцией I2S. И большая часть периода дискретизации тратится на загрузку ЦАП. - Лeoнид Ивaнoвич(19.04.2010 16:22)
- Ну хорошо, пускай будет 9 МГц (макс. для ЦАП). 32 клока для I2S это 3,5 мкс всего при периоде дискретизации 20 мкс. Откуда большая часть-то? - Shura(19.04.2010 16:27)
- У меня период дискретизации 5 мкс. - Лeoнид Ивaнoвич(19.04.2010 16:39)
- Тады хуже. А 74HC595 разве не на SPI сидит? - Shura(19.04.2010 16:59)
- Нет. Для HC595 программный SPI сделан. - Лeoнид Ивaнoвич(19.04.2010 17:35)
- А что тогда Atmel имеет в виду под USART? - Shura(19.04.2010 17:44)
- В новых мегах можно USART в режиме SPI использовать. Но я хоть и рисую мегу88, реально владею только мегой8. - Лeoнид Ивaнoвич(19.04.2010 17:49)
- А в старых нельзя? Чего тогда буква S означает? :-) - Shura(19.04.2010 17:52)
- В новых мегах можно USART в режиме SPI использовать. Но я хоть и рисую мегу88, реально владею только мегой8. - Лeoнид Ивaнoвич(19.04.2010 17:49)
- А что тогда Atmel имеет в виду под USART? - Shura(19.04.2010 17:44)
- Нет. Для HC595 программный SPI сделан. - Лeoнид Ивaнoвич(19.04.2010 17:35)
- Тады хуже. А 74HC595 разве не на SPI сидит? - Shura(19.04.2010 16:59)
- У меня период дискретизации 5 мкс. - Лeoнид Ивaнoвич(19.04.2010 16:39)
- Ну хорошо, пускай будет 9 МГц (макс. для ЦАП). 32 клока для I2S это 3,5 мкс всего при периоде дискретизации 20 мкс. Откуда большая часть-то? - Shura(19.04.2010 16:27)
- Проц не умеет так быстро работать по SPI, максимум - 10 МГц. К тому же, SPI один, он занят эмуляцией I2S. И большая часть периода дискретизации тратится на загрузку ЦАП. - Лeoнид Ивaнoвич(19.04.2010 16:22)
- 20 МГц клок, 40 клоков на чтение произвольного байта. Должно хватить с большим запасом. - Shura(19.04.2010 15:48)
- Скорости не хватит. Выборка из памяти должна производится не подряд, а согласно мгновенной фазе DDS. - Лeoнид Ивaнoвич(19.04.2010 15:45)
- Вы по-прежнему считаете, что DMA может чем-то помочь в реализации DDS? - Лeoнид Ивaнoвич(19.04.2010 15:46)
- Дело не в ней, а в ОЗУ. - Лeoнид Ивaнoвич(19.04.2010 15:43)
- Даже если так, 24С1024 стоит $3 - немного, с учётом того, насколько расширяется функциональность. - Shura(19.04.2010 15:30)
- Для того, чтобы использовать разрешение ЦАП, объем таблицы должен быть в отношение скорости нарастания сигнала к его амплитуде больше, чем количество квантов ЦАП. Для синуса это в два пи раз больше. Т.е. для 16 бит ЦАПа нужно полмега слов. - Лeoнид Ивaнoвич(19.04.2010 15:23)
- дороже она будет на 30 центов - цену 24C01 ;-) - Shura(19.04.2010 15:15)
- Не получится. У меня крохотная таблица и интерполяция, использующая особенности функции sin. Ну т.е. можно сделать, но цифровая часть прибора будет другой (дороже). - Лeoнид Ивaнoвич(19.04.2010 15:11)
- Кстати, раз у вас есть связь с ПК, то нет смысла ограничиваться формой сигнала, надо сделать генератор произвольной формы с загрузкой таблицы с ПК - Shura(19.04.2010 12:58)
- При любой частоте DDS качество сигнала будет несопоставимым. Никто так не делает. Посмотрите, например, схему генератора Agilent: - Лeoнид Ивaнoвич(19.04.2010 12:19, ссылка)
- частота DDS слишком низкая ;=) - koyodza(19.04.2010 12:00)
- Джиттер вызван наличием в выходном спектре DDS побочных компонентов. После фильтра их нет. По крайней мере, их несоизмеримо меньше. Такой прямоугольник, который можно получить на DDS цифровым способом, с джиттером до четверти периода, никому не нужен. - Лeoнид Ивaнoвич(19.04.2010 11:57)
- а типа в синусе его вообще нет? Конечно, после ФНЧ он будет не такой страшный, но на безрыбье, как говорится... - koyodza(19.04.2010 11:52)
- Ну Вы даёте. А джиттер? - Лeoнид Ивaнoвич(19.04.2010 11:51)
- как это? А знак? Это и есть меандр. Хотя я бы всё-таки расширил возможности, и выводил результат сравнения аккумулятора фазы с задаваемым числом, тогда можно будет скважность регулировать - koyodza(19.04.2010 11:50)
- Что именно вывести на отдельную ножку МК? Меандр можно получить только после аналогового фильтра. В цифровой части DDS его не существует. - Лeoнид Ивaнoвич(19.04.2010 11:45)
- Ну есть и другие схемы усилителей-ограничителей, в т.ч. есть готовые интегральные усилители-ограничители. Но на Жданах, опять же, врядли будут. - Shura(19.04.2010 09:40)
- К великому сожалению, не прокатывает. Такой ограничитель очень "мягкий", форма вершины очень кривая. А ОУ я взял заведомо быстрый, в симуляторе очень красивая картинка при ограничении. Да и в даташитах часто для R-to-R ограничение рисуют. Единственное Лeoнид Ивaнoвич(147 знак., 17.04.2010 17:19)
- Я б его модернизировал, чтоб не загонять ОУ в насыщение - Shura(17.04.2010 17:06, картинка)
- Давайте. Вот мой вариант на основе Rail-to-rail ОУ: Лeoнид Ивaнoвич(53 знак., 17.04.2010 17:03, картинка)
- Я с полгода назад реализовывал DDS для управления асинхронником. Понадобился режим, когда вместо синуса на выход подается меандр. Оказалось, что как синус не искажай, он все равно будет трапецией. Поэтому я в программе сделал такой финт: когда задание rezident(540 знак., 18.04.2010 09:33)