-
- Расчеты у Вас неправильные. Для того, чтобы полностью использовать разрешающую способность ЦАП, количество точек таблицы должно быть в 2*pi раз больше количества квантов ЦАП (для синуса), иначе ухудшается отношение сигнал/шум. Лeoнид Ивaнoвич(740 знак., 16.10.2012 12:39)
- всё верно, кроме выводов о загруженности процессора koyodza(1109 знак., 16.10.2012 12:55)
- Пожалуй, соглашусь. Выигрыш получится. Но всё равно задача DDS сильно загружает процессор, даже при наличии DMA. - Лeoнид Ивaнoвич(16.10.2012 13:03)
- ну так никто не спорит, что загружает. Но с DMA загрузка намного меньше - koyodza(16.10.2012 13:05)
- Что "намного", это не совсем так. Уменьшаются только расходы на вход-выход в прерывание. А сколько это по сравнению с подготовкой одной точки? В реальном DDS с ЦАП высокой разрядности это же не просто выборка из таблицы, а расчет. - Лeoнид Ивaнoвич(16.10.2012 13:11)
- в ARM расчет быстрее, а вот вход-выход в прерывание медленнее, чем в AVR, если считать в тактах koyodza(445 знак., 16.10.2012 13:18)
- Кто ж спорит, конечно на ARM выйдет лучше, чем на AVR. Весь смысл этой дискуссии в том, что DMA для DDS - не панацея, не получится сделать таблицу в ОЗУ и дальше заставить все работать автоматически. - Лeoнид Ивaнoвич(16.10.2012 13:33)
- смотря что для чего. у меня FSK-модулятор именно через таблицу сделан:) Один канал DMA выводит от таймера
в DACв порт с весовыми резисторами синусоиду, другой подкачивает значения прескалера (соответственно битам) - Vit(16.10.2012 13:34 - 13:47)- Да, в некоторых частных случаях можно сделать. Выходную частоту можно довольно гибко менять подбором частоты дискретизации и размера таблицы. - Лeoнид Ивaнoвич(16.10.2012 13:43)
- конечно не получится, если отношение частот нельзя сделать отношением (небольших) целых чисел. Но тем не менее оно позволяет решить задачу более эффективно - koyodza(16.10.2012 13:36)
- смотря что для чего. у меня FSK-модулятор именно через таблицу сделан:) Один канал DMA выводит от таймера
- Кто ж спорит, конечно на ARM выйдет лучше, чем на AVR. Весь смысл этой дискуссии в том, что DMA для DDS - не панацея, не получится сделать таблицу в ОЗУ и дальше заставить все работать автоматически. - Лeoнид Ивaнoвич(16.10.2012 13:33)
- в ARM расчет быстрее, а вот вход-выход в прерывание медленнее, чем в AVR, если считать в тактах koyodza(445 знак., 16.10.2012 13:18)
- Что "намного", это не совсем так. Уменьшаются только расходы на вход-выход в прерывание. А сколько это по сравнению с подготовкой одной точки? В реальном DDS с ЦАП высокой разрядности это же не просто выборка из таблицы, а расчет. - Лeoнид Ивaнoвич(16.10.2012 13:11)
- ну так никто не спорит, что загружает. Но с DMA загрузка намного меньше - koyodza(16.10.2012 13:05)
- ещё это даёт дополнительное преимущество, если время вычисления отдельных отсчетов может сильно превышать период дискретизации koyodza(204 знак., 16.10.2012 12:59)
- Пожалуй, соглашусь. Выигрыш получится. Но всё равно задача DDS сильно загружает процессор, даже при наличии DMA. - Лeoнид Ивaнoвич(16.10.2012 13:03)
- Если частота постоянна, то пересчитывать буфер не нужно. А варьируя размер таблицы в буфере можно увеличить разрешение по частоте без всяких DDS. Или это и есть DDS? :) - Vladimir Ljaschko(16.10.2012 12:47 - 12:51)
- это только при отношении периодов в виде отношения целых чисел годится. Произвольную частоту так не получишь - koyodza(16.10.2012 13:03)
- всё верно, кроме выводов о загруженности процессора koyodza(1109 знак., 16.10.2012 12:55)
- Расчеты у Вас неправильные. Для того, чтобы полностью использовать разрешающую способность ЦАП, количество точек таблицы должно быть в 2*pi раз больше количества квантов ЦАП (для синуса), иначе ухудшается отношение сигнал/шум. Лeoнид Ивaнoвич(740 знак., 16.10.2012 12:39)