-
- действительно. Насчет 16-битной точности - при больших приращениях фазы (скажем 8 выборок на период) ошибка вычисления амплитуды превышает 15% - не очень хорошо. а если это приведет к переполнению 16-битного целого, вообще печально. хотя в целом AVF(47 знак., 20.08.2012 13:54)
- Ээээ ребяты а фильтр кто будет после цапы ставить ? Как раз фильтр должен все вычищать - и кстати практически и вычищает когда нормально по месту сделан . Бывало до цапа страшная кракозябла кирпичами а после нормальный синус .. И если уж говорить Blackbird_sunday(166 знак., 20.08.2012 18:55, )
- Фильтр не убирает побочные компоненты, которые попадают в рабочую полосу частот. А это и шум квантования ЦАП (фактически - недостаточная разрядность кода амплитуды), и спуры усечения кода фазы (недостаточная разрядность кода фазы). - Лeoнид Ивaнoвич(20.08.2012 20:05)
- Так в том и фишка, чтоб не в одно место ложились - спектр лишних сигналов размазывается. Опять же, если расчёты в 20 раз проще, стало быть ЦАП загружать можно чаще, что автоматически снижает требования к фильтру. - Крок(20.08.2012 19:37)
- Сегодня мысля в голову пришла. Пусть сигнал обрабатывается в прерывании, но времянки будут гулять. Разное время обработки. - mazur(20.08.2012 19:03)
- хм а зачем так делать - в прерывании сначала выдал прошлое значение а потом считаешь будущее но выводишь его уже в следующем прерывании .. - Blackbird_sunday(21.08.2012 07:57, )
- У AVR время входа в прерывание непостоянно, зависит от текущей выполняемой команды, поэтому будет джиттер. У меня в начале обработчика есть специальный фрагмент, компенсирующий этот джиттер. - Лeoнид Ивaнoвич(21.08.2012 11:35)
- Здоровый сон перед прерыванием должен помочь сделать время постоянным. - Юрий_СВ(22.08.2012 14:25)
- Есть еще фоновая задача, которая мониторит посылки от управляющего процессора. Делать это по прерыванием нельзя. - Лeoнид Ивaнoвич(22.08.2012 15:32)
- Если приём посылок по УАПП, то задаю время ("скорость") приёма по УАПП заведомо больше, чем период основного прерываний и проверяю флаги приёма в конце прерывания. Дальше выход в фон и засыпание. - Юрий_СВ(22.08.2012 16:42)
- Наверное, можно что-то такое придумать. Но у меня и так работает, джиттер компенсируется кодом, хотя на на это тратится лишних 5 тактов. - Лeoнид Ивaнoвич(22.08.2012 18:18)
- Если приём посылок по УАПП, то задаю время ("скорость") приёма по УАПП заведомо больше, чем период основного прерываний и проверяю флаги приёма в конце прерывания. Дальше выход в фон и засыпание. - Юрий_СВ(22.08.2012 16:42)
- Ещё в некоторых ЦАП бывает двойное буферирование и отдельный вход для перегрузки из воходного буфера в выходной. Если управлять таймером, то дрожания быть не должно. - Юрий_СВ(22.08.2012 14:32)
- Нет такого у аудио-ЦАП. - Лeoнид Ивaнoвич(22.08.2012 15:31)
- Есть еще фоновая задача, которая мониторит посылки от управляющего процессора. Делать это по прерыванием нельзя. - Лeoнид Ивaнoвич(22.08.2012 15:32)
- А не лучше ли генерить звук в основном цикле, а кнопки обслуживать по прерыванию? - Крок(21.08.2012 14:05)
- Лучше всё делать по одному прерыванию! Yft(141 знак., 24.08.2012 12:39)
- Зачем опрос кнопок в прерывании? - Лeoнид Ивaнoвич(28.08.2012 23:11)
- это ещё ужасней. при генерации в прерывании дрожение 1/2 такта. А если в фоне, то можно получить дрожание, н-р, 100 тактов :( - Юрий_СВ(22.08.2012 14:34)
- А откуда дрожание 1/2 такта? Я думаю, что дрожание примерно равно джиттеру тактового генератора, что намного меньше такта. - Лeoнид Ивaнoвич(22.08.2012 15:33)
- Так прерывание всё поломает. - Лeoнид Ивaнoвич(21.08.2012 15:38)
- Да и хрен с ним. Клиент крутит ручки изредка. В остальное время прибор генерит синус. - Крок(21.08.2012 17:23)
- Издеваетесь? Огромным недостатком своего прибора я считаю небольшой скачок фазы, который наблюдается при изменении частоты. А если такое будет на каждое нажатие кнопок, когда юзер ходит по меню, это вообще ни в одни ворота. Кстати - интересный Лeoнид Ивaнoвич(48 знак., 22.08.2012 11:43)
- В Вашем синтезаторе? Надо подумать. Для Вас страшен именно скачок фазы? Ведь не наблюдается скачка амплитуды - и это есть зер гут. - Крок(22.08.2012 11:53)
- Я вынужден на время обновления регистров частоты останавливать DDS, так как по времени не вписываюсь в один период дискретизации. Можно было бы держать вторую копию регистров и два обработчика прерывания, но регистров не хватает... - Лeoнид Ивaнoвич(22.08.2012 12:13)
- Точнее, не вписываюсь в интервал между двумя прерываниями. - Лeoнид Ивaнoвич(22.08.2012 12:15)
- В большинстве (если не во всех) интегральных DDS есть две пары регистров частоты - модифицируешь теневой сколь угодно долго, а потом одной командой делаешь теневой рабочим - MBedder(22.08.2012 12:32)
- В данном случае два набора регистров просто негде сделать - не хватает регистров. А из памяти скопировать не успеваю - там всего 5 циклов между прерываниями. - Лeoнид Ивaнoвич(22.08.2012 13:16)
- Эх, другой бы контроллер :) - Make_Pic(22.08.2012 13:32)
- Какой? Вообще нужно ставить FPGA + RAM + TxDAC. - Лeoнид Ивaнoвич(22.08.2012 13:52)
- а почему бы не применить dsPIC? последние вроде до 40МГц, паябельнные корпуса, несложный :) ассемблер, 2-канальный 12-битный цап со встроенным передескретизатором х256 интерполяцией sin(x)/x. - AVF(23.08.2012 09:49)
- Наслышан, что dsPIC - хороший контроллер. Но я его не знаю. - Лeoнид Ивaнoвич(23.08.2012 11:23)
- Леонид Иванович, поверь мне - после АВР тебе дсПИК покажется сущим раем. Прекрасные режимы адресации, мощная, логичная и негромоздкая система команд, великолепная быстрая периферия, простая и вменяемая среда разработки для АСМ и С, доступность, MBedder(122 знак., 23.08.2012 11:55)
- Два и более чудесных банка регистров которые надо переключать , втрое меньше памяти за те-же деньги... - PlainUser(28.08.2012 13:13)
- Чиво-чиво нащот банков и памяти - а ну с этого места пападробнее! - MBedder(29.08.2012 02:24)
- Атотысамнезнаешь. - PlainUser(05.09.2012 13:03)
- Т.е. dsPIC - фигня? - Лeoнид Ивaнoвич(28.08.2012 23:13)
- не знаю, может и не фигня, но если Вы отважитесь на изучение нового семейства, я бы рекомендовал потратить усилия STM32, а не dsPIC xMega и прочие тупиковые семейства - koyodza(29.08.2012 09:03)
- Присоединяюсь. Не обязательно STM32, можно и по NXP пройтись, но ядро Cortex M3. - Vladimir Ljaschko(29.08.2012 09:30)
- Зато xmega в освоении гораздо проще, и система команд та же. - Apтём(29.08.2012 09:06)
- система команд та же - это для Вас так существенно? - koyodza(29.08.2012 09:24)
- Вобщем не существенно, но это плюс (вдруг пригодится). - Apтём(29.08.2012 09:38)
- система команд та же - это для Вас так существенно? - koyodza(29.08.2012 09:24)
- не знаю, может и не фигня, но если Вы отважитесь на изучение нового семейства, я бы рекомендовал потратить усилия STM32, а не dsPIC xMega и прочие тупиковые семейства - koyodza(29.08.2012 09:03)
- Чиво-чиво нащот банков и памяти - а ну с этого места пападробнее! - MBedder(29.08.2012 02:24)
- Золотые слова. Я бы ещё добавил полторы тысячи Аппликух, разжёвывающих любую тему до полной усвояемости. - Крок(23.08.2012 16:52)
- Буду иметь в виду, спасибо. Но пока будущее так туманно, не знаю, буду ли вообще заниматься чем-то подобным. - Лeoнид Ивaнoвич(23.08.2012 12:25)
- Два и более чудесных банка регистров которые надо переключать , втрое меньше памяти за те-же деньги... - PlainUser(28.08.2012 13:13)
- Леонид Иванович, поверь мне - после АВР тебе дсПИК покажется сущим раем. Прекрасные режимы адресации, мощная, логичная и негромоздкая система команд, великолепная быстрая периферия, простая и вменяемая среда разработки для АСМ и С, доступность, MBedder(122 знак., 23.08.2012 11:55)
- у ДСПИКов только один порт сделан не через жопу. В остальных или разряды не все выведены, или ноги равномерно по периметру разбросаны. - Крок(23.08.2012 11:10)
- Наслышан, что dsPIC - хороший контроллер. Но я его не знаю. - Лeoнид Ивaнoвич(23.08.2012 11:23)
- BlackFin + Audio ЦАП. Mahagam(104 знак., 22.08.2012 14:25)
- Ну это только если исключительно для аудио генератор делать. Но большинство генераторов ЗЧ имеют диапазон хотябы до 200 кГц, что с аудио-ЦАП недостижимо. Гораздо интересней получается прибор на FPGA + TxDAC. - Лeoнид Ивaнoвич(22.08.2012 15:27)
- да можно в блекфину два ЦАПа воткнуть. аудио и инструментальный. разные диапазоны разные параметры. DMA блекфина не только аудиоскорость вытянет - Mahagam(22.08.2012 18:20)
- Как говорится, каждый хвалит своё болото. Как сделать генератор на ПЛИС - я знаю. А как на Блэкфин - нет. Поэтому пытаюсь найти оправдание :) - Лeoнид Ивaнoвич(22.08.2012 18:27)
- На заметку => USSR(65 знак., 23.08.2012 10:56, )
- Как говорится, каждый хвалит своё болото. Как сделать генератор на ПЛИС - я знаю. А как на Блэкфин - нет. Поэтому пытаюсь найти оправдание :) - Лeoнид Ивaнoвич(22.08.2012 18:27)
- да можно в блекфину два ЦАПа воткнуть. аудио и инструментальный. разные диапазоны разные параметры. DMA блекфина не только аудиоскорость вытянет - Mahagam(22.08.2012 18:20)
- Вообще то здравая мысль, хотя на первый взгляд и безумная ;) И стоит, что самое интересное, совсем недорого: 2-3$ за ADSP BF592. И вся библиотека цифровой обработки в ROM :) - Dir(22.08.2012 14:52, ссылка)
- ADSP BF592 2-3$ это @10000 piece? - saifullin(23.08.2012 06:32)
- В розницу ADSP-BF592KCPZ-2 продают за 3.74$ => USSR(49 знак., 23.08.2012 07:19, )
- При таком раскладе ATXmega явно в пролёте. - saifullin(23.08.2012 09:16)
- Так и вижу, как ТС, который делает генератор ДЛЯ СЕБЯ, побежал покупать за 150$ эмулятор и сел изучать ADSP :) - Лeoнид Ивaнoвич(23.08.2012 11:26)
- При таком раскладе ATXmega явно в пролёте. - saifullin(23.08.2012 09:16)
- В розницу ADSP-BF592KCPZ-2 продают за 3.74$ => USSR(49 знак., 23.08.2012 07:19, )
- корпус не очень. а так любой блекфин с дорогучим аудиоЦАПом будет просто эталоном по формированию сигналов любой формы в звуковой полосе. Mahagam(154 знак., 22.08.2012 15:08)
- Думаю, что с таким же успехом аудио-ЦАП можно подключить к ARM с аппаратным I2S. Зачем там производительность BF? - Лeoнид Ивaнoвич(22.08.2012 15:29)
- за тем, что стоит он копейки - Mahagam(22.08.2012 15:36)
- Не окупит себя время, потраченное на его освоение. Применений для DSP даже меньше, чем для ПЛИС. - Лeoнид Ивaнoвич(22.08.2012 16:15)
- за тем, что стоит он копейки - Mahagam(22.08.2012 15:36)
- Почему LFCSP не очень? Как по мне вполне нормально. Можно даже обычным паяльником припаять. Ламели с боков видны, не то что у QFN. Dir(227 знак., 22.08.2012 15:21)
- Soldering Considerations for Exposed-Pad Packages /EE352/: "the concepts discussed throughout this document should also apply to other DSPs with an EPAD, such as the ADSP-BF592.." => USSR(72 знак., 22.08.2012 15:25, )
- И что там такого нереального? 64-выводный корпус, малогреющийся чип. Что то не осознал... - Dir(22.08.2012 15:35)
- Кроме выводов по краям, есть ещё 65-ый вывод 6*6 мм на нижней стороне корпуса (EXPOSED PAD). Его тоже нужно припаивать. => USSR(82 знак., 22.08.2012 15:38, )
- В "бытовых" условиях там можно просто отверстие изобразить - залить припоем. - Гудвин(22.08.2012 15:52)
- А... ну это понятно :) QFN же с шагом 0,5 и PADом под чипом давно все юзают, уже приноровились... Я думал дело в каком то суровом профиле пайки. - Dir(22.08.2012 15:41)
- Кроме выводов по краям, есть ещё 65-ый вывод 6*6 мм на нижней стороне корпуса (EXPOSED PAD). Его тоже нужно припаивать. => USSR(82 знак., 22.08.2012 15:38, )
- И что там такого нереального? 64-выводный корпус, малогреющийся чип. Что то не осознал... - Dir(22.08.2012 15:35)
- Soldering Considerations for Exposed-Pad Packages /EE352/: "the concepts discussed throughout this document should also apply to other DSPs with an EPAD, such as the ADSP-BF592.." => USSR(72 знак., 22.08.2012 15:25, )
- Думаю, что с таким же успехом аудио-ЦАП можно подключить к ARM с аппаратным I2S. Зачем там производительность BF? - Лeoнид Ивaнoвич(22.08.2012 15:29)
- ADSP BF592 2-3$ это @10000 piece? - saifullin(23.08.2012 06:32)
- Ну это только если исключительно для аудио генератор делать. Но большинство генераторов ЗЧ имеют диапазон хотябы до 200 кГц, что с аудио-ЦАП недостижимо. Гораздо интересней получается прибор на FPGA + TxDAC. - Лeoнид Ивaнoвич(22.08.2012 15:27)
- а почему бы не применить dsPIC? последние вроде до 40МГц, паябельнные корпуса, несложный :) ассемблер, 2-канальный 12-битный цап со встроенным передескретизатором х256 интерполяцией sin(x)/x. - AVF(23.08.2012 09:49)
- Какой? Вообще нужно ставить FPGA + RAM + TxDAC. - Лeoнид Ивaнoвич(22.08.2012 13:52)
- Эх, другой бы контроллер :) - Make_Pic(22.08.2012 13:32)
- В данном случае два набора регистров просто негде сделать - не хватает регистров. А из памяти скопировать не успеваю - там всего 5 циклов между прерываниями. - Лeoнид Ивaнoвич(22.08.2012 13:16)
- Ну тут я плохой советчик. По части регистров я только ПИКами владею. - Крок(22.08.2012 12:28)
- В большинстве (если не во всех) интегральных DDS есть две пары регистров частоты - модифицируешь теневой сколь угодно долго, а потом одной командой делаешь теневой рабочим - MBedder(22.08.2012 12:32)
- Точнее, не вписываюсь в интервал между двумя прерываниями. - Лeoнид Ивaнoвич(22.08.2012 12:15)
- Я вынужден на время обновления регистров частоты останавливать DDS, так как по времени не вписываюсь в один период дискретизации. Можно было бы держать вторую копию регистров и два обработчика прерывания, но регистров не хватает... - Лeoнид Ивaнoвич(22.08.2012 12:13)
- В Вашем синтезаторе? Надо подумать. Для Вас страшен именно скачок фазы? Ведь не наблюдается скачка амплитуды - и это есть зер гут. - Крок(22.08.2012 11:53)
- Издеваетесь? Огромным недостатком своего прибора я считаю небольшой скачок фазы, который наблюдается при изменении частоты. А если такое будет на каждое нажатие кнопок, когда юзер ходит по меню, это вообще ни в одни ворота. Кстати - интересный Лeoнид Ивaнoвич(48 знак., 22.08.2012 11:43)
- Да и хрен с ним. Клиент крутит ручки изредка. В остальное время прибор генерит синус. - Крок(21.08.2012 17:23)
- Ой, и как получить минимальный джиттер и точность установки частоты? Или все остальные программы перенести то же в прерывание, а оставить только формирование синуса? - Make_Pic(21.08.2012 14:22)
- Вынести в отдельный контроллер :-) (кстати видел такое решение в серийном устройстве). - =AlexD=(21.08.2012 14:30 - 22.08.2012 07:24)
- использовать DMA :=) Кстати, оно и в 8-битниках бывает - koyodza(21.08.2012 14:39)
- В ATMega8 не был замечен :) Хотя на мой взгляд выбор ARM для такой задачки был бы более правильным или хотя бы DsPic или MSP430. - Make_Pic(21.08.2012 15:04)
- В 8-ми битном AVR Xmega есть ПДП. Работает не хуже АРМовского :) - Юрий_СВ(23.08.2012 01:15)
- Хуже: DMA есть не у всех xmeg, количество каналов - не больше 4, примитивней сделан как-то, и не получится например также как в АРМах с АЦП работать - сделано гораздо кривее. - Apтём(23.08.2012 01:27)
- Я знаю, но речь про Mega - Make_Pic(23.08.2012 01:26)
- MSP430 не годятся для этого, по крайней мере F1, а DMA есть в STM8 - koyodza(21.08.2012 15:13)
- Давно с ними (MSP430) не работал, но в старших есть DMA с DAC - Make_Pic(21.08.2012 15:18)
- В 8-ми битном AVR Xmega есть ПДП. Работает не хуже АРМовского :) - Юрий_СВ(23.08.2012 01:15)
- В ATMega8 не был замечен :) Хотя на мой взгляд выбор ARM для такой задачки был бы более правильным или хотя бы DsPic или MSP430. - Make_Pic(21.08.2012 15:04)
- Лучше всё делать по одному прерыванию! Yft(141 знак., 24.08.2012 12:39)
- Здоровый сон перед прерыванием должен помочь сделать время постоянным. - Юрий_СВ(22.08.2012 14:25)
- Все, молчу. :) - mazur(21.08.2012 08:24)
- У AVR время входа в прерывание непостоянно, зависит от текущей выполняемой команды, поэтому будет джиттер. У меня в начале обработчика есть специальный фрагмент, компенсирующий этот джиттер. - Лeoнид Ивaнoвич(21.08.2012 11:35)
- хм а зачем так делать - в прерывании сначала выдал прошлое значение а потом считаешь будущее но выводишь его уже в следующем прерывании .. - Blackbird_sunday(21.08.2012 07:57, )
- Ну главное в нём - погонять на ПК, посмотреть на поведение при разных параметрах. Крок(137 знак., 20.08.2012 15:18)
- Ээээ ребяты а фильтр кто будет после цапы ставить ? Как раз фильтр должен все вычищать - и кстати практически и вычищает когда нормально по месту сделан . Бывало до цапа страшная кракозябла кирпичами а после нормальный синус .. И если уж говорить Blackbird_sunday(166 знак., 20.08.2012 18:55, )
- Не могу вспомнить из курса "Вычислительные методы" к какому способу это относится... :( - Make_Pic(20.08.2012 13:29 - 13:36)
- Первая производная. Матанализ. - Крок(20.08.2012 13:36)
- точно - Make_Pic(20.08.2012 13:41)
- Первая производная. Матанализ. - Крок(20.08.2012 13:36)
- действительно. Насчет 16-битной точности - при больших приращениях фазы (скажем 8 выборок на период) ошибка вычисления амплитуды превышает 15% - не очень хорошо. а если это приведет к переполнению 16-битного целого, вообще печально. хотя в целом AVF(47 знак., 20.08.2012 13:54)