-
- В продолжение темы. Предложенная Аргусом98 формула генерится дспиком за 6 тактов (включая 2 такта возврата в начало цикла). Как обычно, запоминается 32 разряда. Вернусь с ранчо (пишется раздельно) напишу. Так что любителям звукового диапазона Крок(14 знак., 28.08.2012 14:48)
- Бурное обсуждение вышло. На пол страницы. Мозговой штурм, где каждый высказал своё решение ТЗ. - saifullin(22.08.2012 21:38)
- Редкий случай, когда длинная тема и не стыдно в ней участвовать. - Крок(22.08.2012 22:43)
- А в других участвуешь, но с румянцем на щеках? :)) - POV(23.08.2012 09:18)
- Да просто кушать не могу, как стыдно! - Крок(23.08.2012 11:08)
- Пока с интересом читаешь тему можно съесть то, что при нормальном приёме пищи есть бы не захотелось. Таким образом проталкиваю порцию творога с утреца. - saifullin(23.08.2012 12:24)
- ну это ты зря. Кушать надо! Можно давиться.. в общем есть без удовольствия, но надо! А то пальцы по клаве топтать не смогут. - POV(23.08.2012 11:10)
- Да просто кушать не могу, как стыдно! - Крок(23.08.2012 11:08)
- А в других участвуешь, но с румянцем на щеках? :)) - POV(23.08.2012 09:18)
- Редкий случай, когда длинная тема и не стыдно в ней участвовать. - Крок(22.08.2012 22:43)
- Эпиграф: "Си-говно". Скажем дспик на ассемблере генерит 16-разрядный синус за 5 тактов. И тюнинг 16-разрядный. Атмега послабей, конечно, но я слышал и у неё есть умножитель, стало быть можно генерить чаще, чем 200к. - Крок(19.08.2012 15:03)
- А откуда эти отсчеты берутся? Для 16-разрядного кода амплитуды код фазы должен быть 18-разрядным. Это же такая огромная таблица... - Лeoнид Ивaнoвич(20.08.2012 12:39)
- Я привёл там формулу чуть ниже. Отсчёты высчитываются рекурсивно на базе дифф. уравнения. ДСПИК вообще генерит 32-разрядный код, но использовать 32 просто негде. Выбрасываю в порт 16 разрядов на параллельный цап. А клочится цап таймером. - Крок(20.08.2012 13:27)
- Если есть умножитель, то вместо одной огромной, можно три маленьких.. - USSR(20.08.2012 12:48, )
- за 5 тактов это как? у меня получалось за то ли 23 то ли 43 такта, точно уже не помню - AVF(20.08.2012 08:27)
- Берём, бутылку коньяка... далее по ссылке :-) - Крок(20.08.2012 10:43, ссылка)
- Хм а если я возьму бэкфин ... тогда ..:) И когда это в атмеге рос умножитель ?- никогда там такого не лежало за 12 лет не помню такого случая ..И вообще не надо тут стэками мерятся .. у кого больше .. - Blackbird_sunday(19.08.2012 15:32, )
- Да я вроде и не мерялся. - Крок(19.08.2012 17:10)
- Умножитель, не умножитель, а команда MUL Rd,Rr есть. - Apтём(19.08.2012 16:48)
- При чём, всего 2 такта. Хотя в ПЦС умножитель не очень нужен. - Юрий_СВ(19.08.2012 17:53)
- Кому как. Чисто для развлекухи попробуйте , что выдаст такой бесконечный цикл: Крок(125 знак., 19.08.2012 18:48)
- Для бОльшего развлечения можно попробовать S[n+2] = f*S[n+1] - S[n], гдеf = 2*cos(dx)dx = 2*pi/N (N - период в тактах дискретизации)начальные значения:S[0] = 0S[1] = sin(dx)ps это точная формула, в отличие от вышеприведенных - argus98(23.08.2012 16:42, )
- Надо признать, здесь спектр почище. В выходные поколдую, посмотрю за сколько тактов ДСПИК сгенерит эту последовательность - Крок(24.08.2012 16:42)
- Вышеприведённые тоже точные. Эта, если оценивать на глаз, будет считаться чуть дольше, но я слышал у неё хотя бы рациональный период, если в клоках. - Крок(24.08.2012 10:42)
- ниже писал - специально смотрел - при больших приращениях фазы (8 точек на перид) ошибка >15%. ключевое слово: "малые dx". у меня в реальном проекте 4 точки на период, - AVF(24.08.2012 12:57)
- На счет точные, это вряд ли.. Если x==sin(Ф), a y==cos(Ф), то должно выполняться тождество: x^2+y^2==1. Меж тем, возводя "Вышеприведённые" x=x-y*f; y=y+x*f; в квадрат и складывая почленно получим => x^2=x^2-2*x*y*f+y^2*f^2; USSR(315 знак., 24.08.2012 11:41, )
- Всё гораздо проще... Формулы Крока получены из тригонометрических тождеств sin(x+dx) = sin(x)*cos(dx) + cos(x)*sin(dx), cos(x+dx) = cos(x)*cos(dx) - sin(x)*sin(dx), в предположении, что cos(dx) = 1 при малых dx. Как-то так.. (с) - argus98(24.08.2012 12:38, )
- "гораздо проще", это если наплевать на математическую строгость. Формально, то, каким способом получены "разностные уравнения Крока", еще отнюдь не доказывает, что их решением не могут быть функции: x[n]=a*sin(w*n+c) и USSR(452 знак., 24.08.2012 15:10, )
- у Крока сd. Это я и считаю неточностью. - argus98(24.08.2012 18:01, )
- с не равно d. (я фигею от этого редактора) - argus98(24.08.2012 18:04, )
- А вот это уже ошибочное утверждение. На самом деле, c==d. Дело в том, система "разностных уравнений Крока", имеет точное аналитическое решение: x[n]=Re[A*(1+i*f)^n] и y[n]=Im[A*(1+i*f)^n], которое можно представить в виде: USSR(291 знак., 25.08.2012 06:58, )
- И.. кстати, слона то я и не заметил => USSR(444 знак., 25.08.2012 11:05, )
- ну пока это треть слона :)) Ещё осталось неосвоенным y[0]... - argus98(26.08.2012 21:15)
- Не понял, а в чем юмор? y[0] "освоено" своим начальным нулевым значением, и это именно то начальное значение, которое и было с самого начала предложено Кроком. Для произвольных начальных значений x[0] и y[0], амплитуду "A" и фазу USSR(343 знак., 27.08.2012 06:50, )
- осталось добавить, что f = 2*sin(w/2) и соответственно y[n] = A*sin(w*n+w/2+ф), т.е. амплитуды равны, фазы нет - argus98(27.08.2012 12:12)
- Аха, точно! Это я не доглядел!.. :) Ну что ж, совместными усилиями мы ту задачку раскололи!.. :) - USSR(27.08.2012 12:24, )
- осталось добавить, что f = 2*sin(w/2) и соответственно y[n] = A*sin(w*n+w/2+ф), т.е. амплитуды равны, фазы нет - argus98(27.08.2012 12:12)
- Не понял, а в чем юмор? y[0] "освоено" своим начальным нулевым значением, и это именно то начальное значение, которое и было с самого начала предложено Кроком. Для произвольных начальных значений x[0] и y[0], амплитуду "A" и фазу USSR(343 знак., 27.08.2012 06:50, )
- ну пока это треть слона :)) Ещё осталось неосвоенным y[0]... - argus98(26.08.2012 21:15)
- И.. кстати, слона то я и не заметил => USSR(444 знак., 25.08.2012 11:05, )
- Ты зарегистрируйся, и все будет пучком - и редактор, и пробелы, и ссылки. Это General таким садистским (но действенным) способом "понуждает к миру" незарегистрированных :)) - MBedder(24.08.2012 18:52)
- пытался... уже давно. General прислал пароль, в котором есть запрещенные символы (вроде подчеркивание, насколько помню). А под другим именем регится не хочется... - argus98(24.08.2012 20:10, )
- нихрена -ко мне не обращался, обращался к роботу - пароль сейчас на почту придёт - General(24.08.2012 20:14)
- заработало? - argus98(24.08.2012 20:52)
- заработало! Спасибо! - argus98(24.08.2012 20:53)
- а то - General(24.08.2012 20:53)
- заработало? - argus98(24.08.2012 20:52)
- нихрена -ко мне не обращался, обращался к роботу - пароль сейчас на почту придёт - General(24.08.2012 20:14)
- пытался... уже давно. General прислал пароль, в котором есть запрещенные символы (вроде подчеркивание, насколько помню). А под другим именем регится не хочется... - argus98(24.08.2012 20:10, )
- А вот это уже ошибочное утверждение. На самом деле, c==d. Дело в том, система "разностных уравнений Крока", имеет точное аналитическое решение: x[n]=Re[A*(1+i*f)^n] и y[n]=Im[A*(1+i*f)^n], которое можно представить в виде: USSR(291 знак., 25.08.2012 06:58, )
- с не равно d. (я фигею от этого редактора) - argus98(24.08.2012 18:04, )
- у Крока сd. Это я и считаю неточностью. - argus98(24.08.2012 18:01, )
- "гораздо проще", это если наплевать на математическую строгость. Формально, то, каким способом получены "разностные уравнения Крока", еще отнюдь не доказывает, что их решением не могут быть функции: x[n]=a*sin(w*n+c) и USSR(452 знак., 24.08.2012 15:10, )
- Всё гораздо проще... Формулы Крока получены из тригонометрических тождеств sin(x+dx) = sin(x)*cos(dx) + cos(x)*sin(dx), cos(x+dx) = cos(x)*cos(dx) - sin(x)*sin(dx), в предположении, что cos(dx) = 1 при малых dx. Как-то так.. (с) - argus98(24.08.2012 12:38, )
- хм... "Тема выделяется по переводу строки или автоматом" (с).. В общем 0Dh+0Ah по смыслу - argus98(23.08.2012 17:25, )
- Если цикл бесконечный - то он ничего не выдаст :) - Юрий_СВ(19.08.2012 19:42)
- Брррр. Выходная величина цикла - Х или У. - Крок(19.08.2012 21:08)
- получается расширяющийся синус. прикольно. в принципе параметром f получается приращение фазы, можно делать часототную модуляцию. как сделать чтобы синус не расширялся? - AVF(20.08.2012 11:22 - 11:24)
- Не должен расширяться. Крок(89 знак., 20.08.2012 11:38)
- действительно. Насчет 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)
- Не должен расширяться. Крок(89 знак., 20.08.2012 11:38)
- получается расширяющийся синус. прикольно. в принципе параметром f получается приращение фазы, можно делать часототную модуляцию. как сделать чтобы синус не расширялся? - AVF(20.08.2012 11:22 - 11:24)
- Брррр. Выходная величина цикла - Х или У. - Крок(19.08.2012 21:08)
- Что то я вообще не пойму причем тут в прямом цифровом синтезе умножитель каким местом он тут упал вообще . Когда частота задана умножение в процессе выдачи ВООБЩЕ не используется . И кстати все на меге работает - то бишь синус выдает отличный - я Blackbird_sunday(211 знак., 19.08.2012 19:14, )
- У меня в программном DDS умножитель используется при интерполяции отсчетов синуса с 16-разрядной точностью. Лeoнид Ивaнoвич(491 знак., 19.08.2012 21:50)
- Я пробовал этот Ваш кусочек асма переписать на AVR-GCC - 99% листинга получилось буква в букву. - Vit(21.08.2012 07:07)
- Так ведь там регистров резервируется много. Это же не пройдет на Си. - Лeoнид Ивaнoвич(21.08.2012 15:40)
- Регистровые переменные и использовал - Vit(21.08.2012 20:10)
- Интересно какая оптимизация была и что именно и как в 1% вошло? - Make_Pic(21.08.2012 23:00)
- главное было залочить регистры под структуры. IAR такого не позволил. а не вошло то, что я не понял по сути из исходного асма - там какое-то жонглирование парой регистров и под конец "портирования" функции оно меня окончательно запутало. сейчас Vit(90 знак., 22.08.2012 12:34, ссылка)
- Может примеры в студию? Слишком уж оптимистично - 99%, не верится... - Make_Pic(22.08.2012 10:50)
- Интересно какая оптимизация была и что именно и как в 1% вошло? - Make_Pic(21.08.2012 23:00)
- Регистровые переменные и использовал - Vit(21.08.2012 20:10)
- Так ведь там регистров резервируется много. Это же не пройдет на Си. - Лeoнид Ивaнoвич(21.08.2012 15:40)
- ЦАП аудио? или инструментальный? - Mahagam(21.08.2012 00:35)
- У меня используется аудио. Но можно подключить и с шиной SPI. - Лeoнид Ивaнoвич(21.08.2012 01:09)
- не стоит. аудио ещё и сам интерполирует красиво - Mahagam(21.08.2012 01:17)
- У меня применяется ЦАП без передискретизации, поэтому ничего он не интерполирует. Иначе нужна внешняя тактовая частота. Редкие модели ЦАП имеют PLL на борту. - Лeoнид Ивaнoвич(21.08.2012 02:12)
- наверное зря - Mahagam(21.08.2012 11:52)
- Что зря? - Лeoнид Ивaнoвич(21.08.2012 11:54)
- без передискретизации. Mahagam(284 знак., 21.08.2012 11:59)
- ЦАП с передискретизацией так просто подключить к ATmega8 не получится. Ему требуется Fclk = 128...768*Fs. - Лeoнид Ивaнoвич(21.08.2012 12:37)
- без передискретизации. Mahagam(284 знак., 21.08.2012 11:59)
- Что зря? - Лeoнид Ивaнoвич(21.08.2012 11:54)
- наверное зря - Mahagam(21.08.2012 11:52)
- У меня применяется ЦАП без передискретизации, поэтому ничего он не интерполирует. Иначе нужна внешняя тактовая частота. Редкие модели ЦАП имеют PLL на борту. - Лeoнид Ивaнoвич(21.08.2012 02:12)
- не стоит. аудио ещё и сам интерполирует красиво - Mahagam(21.08.2012 01:17)
- У меня используется аудио. Но можно подключить и с шиной SPI. - Лeoнид Ивaнoвич(21.08.2012 01:09)
- А где такие точности требуются? К чему такая жесть (это я про ассемблер и прочие 24 регистра из 32). Это в ваших курятниках требуется? - Apтём(20.08.2012 20:12)
- А что за спектр на выходе генератора синуса, скажем, с 8-разрядным ЦАП? Кому такой генератор нужен? - Лeoнид Ивaнoвич(20.08.2012 23:10)
- Да мне бы может и сошел - мне больше сервис нужен чем кристальная частота спектра . В частности генерация разночастотных пачек и плавный линейный и логарифмический свип в плавно задаваемых границах . Вот это было бы неплохо .. - Blackbird_sunday(21.08.2012 07:55, )
- Вот такой прикупил. saifullin(131 знак., 22.08.2012 13:36, ссылка)
- Звуковуха должна быть хорошая. А это далеко не халява. Лeoнид Ивaнoвич(55 знак., 22.08.2012 13:54)
- Нет, синтезатор на AD saifullin(337 знак., 22.08.2012 16:41)
- Какой синтезатор на AD? ATmega тянет 200 кsps, 16 бит, ЦАП внешний. Лeoнид Ивaнoвич(136 знак., 22.08.2012 18:14)
- 1.AD9851 saifullin(84 знак., 22.08.2012 19:24)
- Издеваетесь? AD9851 имеет всего 10-разрядный ЦАП. Лeoнид Ивaнoвич(136 знак., 22.08.2012 22:15)
- 1.Зато 50 МHz берёт. Если Хочется и плюшек и качества, то цена вопроса повышается. saifullin(107 знак., 23.08.2012 09:15)
- Издеваетесь? AD9851 имеет всего 10-разрядный ЦАП. Лeoнид Ивaнoвич(136 знак., 22.08.2012 22:15)
- 1.AD9851 saifullin(84 знак., 22.08.2012 19:24)
- Какой синтезатор на AD? ATmega тянет 200 кsps, 16 бит, ЦАП внешний. Лeoнид Ивaнoвич(136 знак., 22.08.2012 18:14)
- Нет, синтезатор на AD saifullin(337 знак., 22.08.2012 16:41)
- Звуковуха должна быть хорошая. А это далеко не халява. Лeoнид Ивaнoвич(55 знак., 22.08.2012 13:54)
- У меня подобный сервис реализуется с компьютера. Какой смысл иметь свип, если он делается сам по себе? Разве что на аналоговом осциллографе АЧХ смотреть. Лучше снимать АЧХ по точкам в цифровом виде, когда свип согласован с работой АЦП. - Лeoнид Ивaнoвич(21.08.2012 11:38)
- Мне нужен отдеьный "железный" генератор который никак с компутером не завязан - чтоб стоял и работал отдельно . И в моем случае ачх мне удобней на осциллографе в реальном времени глядеть в частности .. - Blackbird_sunday(21.08.2012 13:20, )
- Кто его знает. В своё время много работал с аудио, так первым делом сделал себе компьютерный измеритель АЧХ, еще на базе "Специалиста". Осциллографом попробуйте снять, скажем, семейство АЧХ компрессора Dolby-C... - Лeoнид Ивaнoвич(21.08.2012 15:30)
- Долби это от лукавого :)) А вообще мне например АЧХ сквозняка магнитофона надо смотреть - пробовал лепить чисто аналоговые генераторы - кошмар . Как только пытаешься им сделать сервис так чтоб свип был нормальный и стабильный и частотные пачки - Blackbird_sunday(350 знак., 22.08.2012 06:22, )
- Что, что? А вы слышали работу Долби B и C на нормальных импортных кассетных деках? Боюсь, что нет, поэтому не надо так заявлять. - Make_Pic(22.08.2012 11:48)
- Ну айва у меня есть с долбей hx pro так себе .. А вообще есть катушечные магнитофоны там долбей не надо и слава те оспади .. Когда через сковзняк слушаешь то и не понятно бывает то ли оно напрямую а то ли с ленты идет :) - Blackbird_sunday(22.08.2012 19:10, )
- Dolby HX Pro - это система динамического подмагничивания. К шумопонижению отношение имеет весьма отдаленное. Лeoнид Ивaнoвич(158 знак., 22.08.2012 22:19)
- У меня Technics CH750 - добрая "лошадка" до сих пор стоит в стойке и приносит мне и окружающим удовольствие, лаская слух :) В ее деке применено динамическое подмагничивание с автонастройкой под тип ленты (выравнивание частотной характеристики - Make_Pic(273 знак., 23.08.2012 01:36)
- У меня был Technics с DBX - вот это было шумоподавление: -20dB - на уровне CD. - General(23.08.2012 08:47)
- DBX - хорошая система шумопонижения. Но распространена меньше, чем Dolby-C. На закате кассетных дек была еще продвинутая Dolby-SR. - Лeoнид Ивaнoвич(23.08.2012 11:33)
- Причем две лентопротяжки с электронным управлением. - Make_Pic(23.08.2012 01:37)
- У меня был Technics с DBX - вот это было шумоподавление: -20dB - на уровне CD. - General(23.08.2012 08:47)
- У меня Technics CH750 - добрая "лошадка" до сих пор стоит в стойке и приносит мне и окружающим удовольствие, лаская слух :) В ее деке применено динамическое подмагничивание с автонастройкой под тип ленты (выравнивание частотной характеристики - Make_Pic(273 знак., 23.08.2012 01:36)
- Dolby HX Pro - это система динамического подмагничивания. К шумопонижению отношение имеет весьма отдаленное. Лeoнид Ивaнoвич(158 знак., 22.08.2012 22:19)
- Ну айва у меня есть с долбей hx pro так себе .. А вообще есть катушечные магнитофоны там долбей не надо и слава те оспади .. Когда через сковзняк слушаешь то и не понятно бывает то ли оно напрямую а то ли с ленты идет :) - Blackbird_sunday(22.08.2012 19:10, )
- Зря Вы так, Dolby-C значительно повышает субъективное качество звучания кассетной деки. А совсем без систем шумопонижения даже катушечник на высокой скорости не может тягаться с CD. В своё время конструировал деки, поэтому АЧХ сквозного канала Лeoнид Ивaнoвич(1057 знак., 22.08.2012 11:38)
- Что, что? А вы слышали работу Долби B и C на нормальных импортных кассетных деках? Боюсь, что нет, поэтому не надо так заявлять. - Make_Pic(22.08.2012 11:48)
- Долби это от лукавого :)) А вообще мне например АЧХ сквозняка магнитофона надо смотреть - пробовал лепить чисто аналоговые генераторы - кошмар . Как только пытаешься им сделать сервис так чтоб свип был нормальный и стабильный и частотные пачки - Blackbird_sunday(350 знак., 22.08.2012 06:22, )
- Кто его знает. В своё время много работал с аудио, так первым делом сделал себе компьютерный измеритель АЧХ, еще на базе "Специалиста". Осциллографом попробуйте снять, скажем, семейство АЧХ компрессора Dolby-C... - Лeoнид Ивaнoвич(21.08.2012 15:30)
- Мне нужен отдеьный "железный" генератор который никак с компутером не завязан - чтоб стоял и работал отдельно . И в моем случае ачх мне удобней на осциллографе в реальном времени глядеть в частности .. - Blackbird_sunday(21.08.2012 13:20, )
- Вот такой прикупил. saifullin(131 знак., 22.08.2012 13:36, ссылка)
- Наверное спектр там ... широкий. Кому нужен? Кому-то и сгодится: писал лет 10 назад программы для охранных передатчиков с FSK и использовали 4-битный ЦАП на at89c52. Ничего, всех устаивало. Вот я спрашиваю зачем такой как у вас нужен? Где его Apтём(19 знак., 20.08.2012 23:32)
- Если бы спектр был бы просто широким, то выходной ФНЧ решал бы проблему. Но спектр там грязный, в рабочей полосе есть побочные компоненты. А мой генератор может служить заменой лабораторных звуковых генераторов. - Лeoнид Ивaнoвич(21.08.2012 00:21)
- А использование 12-бит ЦАП даст параметры хуже или лучше, чем у вашего генератора? 12р. ЦАПы всё чаще входят в состав периферии дешёвых МК. И геморою с ними нет. - Apтём(21.08.2012 00:29)
- Хуже. - Лeoнид Ивaнoвич(21.08.2012 01:08)
- Спасибо. Раз ваш генератор замена звуковым, то ему 12р цапа мало конечно. - Apтём(21.08.2012 17:38)
- Хуже. - Лeoнид Ивaнoвич(21.08.2012 01:08)
- А использование 12-бит ЦАП даст параметры хуже или лучше, чем у вашего генератора? 12р. ЦАПы всё чаще входят в состав периферии дешёвых МК. И геморою с ними нет. - Apтём(21.08.2012 00:29)
- Если бы спектр был бы просто широким, то выходной ФНЧ решал бы проблему. Но спектр там грязный, в рабочей полосе есть побочные компоненты. А мой генератор может служить заменой лабораторных звуковых генераторов. - Лeoнид Ивaнoвич(21.08.2012 00:21)
- Да мне бы может и сошел - мне больше сервис нужен чем кристальная частота спектра . В частности генерация разночастотных пачек и плавный линейный и логарифмический свип в плавно задаваемых границах . Вот это было бы неплохо .. - Blackbird_sunday(21.08.2012 07:55, )
- Да-да, именно в них самых... - Гудвин(20.08.2012 20:26, ссылка)
- И в гусятниках... - Гудвин(20.08.2012 20:29, ссылка)
- А что за спектр на выходе генератора синуса, скажем, с 8-разрядным ЦАП? Кому такой генератор нужен? - Лeoнид Ивaнoвич(20.08.2012 23:10)
- Хы ну и что на трубе вот пара роликов висит в одной атмега с внешней АЦПой осциллографом работает с выдачей на телевизор осциллограммы в реальном времени а в другом кажет трехмерную графику на телевизор причем в цвете и сама PAL делает да еще и Blackbird_sunday(54 знак., 20.08.2012 05:30, )
- Я пробовал этот Ваш кусочек асма переписать на AVR-GCC - 99% листинга получилось буква в букву. - Vit(21.08.2012 07:07)
- Вот не судьба предыдущий текст прочесть? - Крок(19.08.2012 21:08)
- У меня в программном DDS умножитель используется при интерполяции отсчетов синуса с 16-разрядной точностью. Лeoнид Ивaнoвич(491 знак., 19.08.2012 21:50)
- Для бОльшего развлечения можно попробовать S[n+2] = f*S[n+1] - S[n], гдеf = 2*cos(dx)dx = 2*pi/N (N - период в тактах дискретизации)начальные значения:S[0] = 0S[1] = sin(dx)ps это точная формула, в отличие от вышеприведенных - argus98(23.08.2012 16:42, )
- Кому как. Чисто для развлекухи попробуйте , что выдаст такой бесконечный цикл: Крок(125 знак., 19.08.2012 18:48)
- При чём, всего 2 такта. Хотя в ПЦС умножитель не очень нужен. - Юрий_СВ(19.08.2012 17:53)
- А откуда эти отсчеты берутся? Для 16-разрядного кода амплитуды код фазы должен быть 18-разрядным. Это же такая огромная таблица... - Лeoнид Ивaнoвич(20.08.2012 12:39)
- Так что ли? 20 мгц, 5 мкс - 100 тактов. mazur(433 знак., 17.08.2012 19:44 - 19:57)
- может и так - не забыть еще и фазу прибавить 24 к 24 битам .. И передачу этой фазы из Си .. а также как сослаться из ассемблера на таблицу синуса .. И тогда будет щастье .. - Blackbird_sunday(17.08.2012 20:01, )
- Стоп. Что-то у тебя в алгоритме программы неправильно. Я никогда не занимался синтезом. Но, ты подумал о том, что все эти действия будут в прерывании? И на основной цикл у тебя практически не остается времени. Давай состыкуемся. Ты вроде тоже с mazur(53 знак., 17.08.2012 20:18)
- Пусть мне сишники скажут в каких регистрах что будет. Вроде впаковываемся в твои 5 мкс при 20 мгц... - mazur(17.08.2012 20:12)
- А если сумма перевалит? - mazur(17.08.2012 20:10)
- может и так - не забыть еще и фазу прибавить 24 к 24 битам .. И передачу этой фазы из Си .. а также как сослаться из ассемблера на таблицу синуса .. И тогда будет щастье .. - Blackbird_sunday(17.08.2012 20:01, )
- В чё сразу асм? На Си не пробовали сначала сделать, может потянет? - GDI(17.08.2012 17:44)
- а как вы думаете в чем я писал на кодевижн ? Вот в сях и писал -дык МЕДЛЕННО прерывание работает . На этой тактовой в 12 микросекунд укладываеться а надо меньше 5 ..Лазил в ассемблерный листинг - ух и накручено там . Я на котроллерах только в Си и Blackbird_sunday(233 знак., 17.08.2012 17:50, )
- :) Поэтому порядочные люди и не используют "кодвижн". На нормальном компиляторе на 20 МГц ПЦС 200 кГц получить можно. И между прерываниями конечно же надо спать. А если отнять у компилятора несколько регистров (я не умею) - то и под 14, думаю, Юрий_СВ(12 знак., 19.08.2012 18:00)
- Хм ну завтра попробую в ИАРе компильнуть :)) Один фиг - просто тут на меге 4ой чего то надо было сделать - я в иаре обычно сидет . Тык-тык а на ногах порта тишина - хотя вроде поддерживаеться этот кристалл .. Бился неделю - а потом пришел к другу Blackbird_sunday(299 знак., 19.08.2012 19:31, )
- Они считают что АСМ-прошлый век. - saifullin(21.08.2012 20:29)
- Вы что к портам по адресам обращаетесь и прерывания объявляете через номера? Или через имена? - Apтём(19.08.2012 19:40)
- Да все через имена было - а не работало .. Хотя на практически родственной ей меге все нормально было потому и бился и уж не знал чо и думать кто дурак :) Любят меня такие ситуации - надоело блин .. - Blackbird_sunday(19.08.2012 19:45, )
- Я тоже вполне мог сказать что плохие ситуации меня просто стерегут, однако больше склонен к версии что проверяю этот мир на гнилось и гнилостей много.Все мы не совершенны. +Человеческий фактор.+результат дикой формы капитализма. - saifullin(21.08.2012 20:33)
- Переходите на xmeg-и - там всё более-менее стандартизовано - Apтём(19.08.2012 19:48)
- Да все через имена было - а не работало .. Хотя на практически родственной ей меге все нормально было потому и бился и уж не знал чо и думать кто дурак :) Любят меня такие ситуации - надоело блин .. - Blackbird_sunday(19.08.2012 19:45, )
- Хм ну завтра попробую в ИАРе компильнуть :)) Один фиг - просто тут на меге 4ой чего то надо было сделать - я в иаре обычно сидет . Тык-тык а на ногах порта тишина - хотя вроде поддерживаеться этот кристалл .. Бился неделю - а потом пришел к другу Blackbird_sunday(299 знак., 19.08.2012 19:31, )
- Лучше не вставкой, а отдельным модулем. Для этой цели можно взять сгенерированный компилятором код и выбросить Bill(29 знак., 17.08.2012 18:46 - 18:55)
- я хоть и не спец в ассемблере простые команды кинуть в регистр и оттуда и сдвиг разбираю .. Дак вот насчет выкинуть лучше написать новое . Ибо смотрел ассемблерный листинг - с начала прерывания идет переход на подпрограмму перепихивания всех Blackbird_sunday(271 знак., 17.08.2012 19:22, )
- Да элементарно все делается. Покажите листинг, Bill(38 знак., 18.08.2012 15:10)
- Дык на работе у меня все это валяется -в понедельник покажу не жалко :) - Blackbird_sunday(19.08.2012 06:44, )
- вот оно мое бессмертное творение:)/*Chip type : ATmega8Program type : ApplicationAVR Core Clock frequency: 14,218180 MHzMemory model : SmallExternal RAM size : 0Data Stack size : Blackbird_sunday(7382 знак., 20.08.2012 05:34, )
- тфу ты оспади как его ...вот так наверно лучше /*Chip type : ATmega8Program type : ApplicationAVR Core Clock frequency: 14,218180 MHzMemory model : SmallExternal RAM size : 0Data Stack size : Blackbird_sunday(7382 знак., 20.08.2012 05:36, )
- мда а форматирование все похерилось увы извиняйте - а вот как прерывание он компильнул асме ;// Timer2 output compare interrupt service routine;interrupt [TIM2_COMP] void timer2_comp_isr(void); 0000 0019 {.CSEG_timer2_comp_isr:ST -Y,R0ST Blackbird_sunday(1048 знак., 20.08.2012 05:39, )
- мда что то не получаеться исходник с нормальным форматированием выложить ... - Blackbird_sunday(20.08.2012 05:42, )
- Посмотрел на кодевижн-асм. Там сильно можно сэкономить на ap=pzu[(cod.sumadd&0xffc000)>>14];. И он не совсем асм, ибо макросы не раскрыты. maik-vs(3343 знак., 21.08.2012 09:39)
- Нужно зарегистрироваться. Тогда будут доступны возможности редактирования и тюдю - mazur(20.08.2012 08:09)
- мда что то не получаеться исходник с нормальным форматированием выложить ... - Blackbird_sunday(20.08.2012 05:42, )
- мда а форматирование все похерилось увы извиняйте - а вот как прерывание он компильнул асме ;// Timer2 output compare interrupt service routine;interrupt [TIM2_COMP] void timer2_comp_isr(void); 0000 0019 {.CSEG_timer2_comp_isr:ST -Y,R0ST Blackbird_sunday(1048 знак., 20.08.2012 05:39, )
- тфу ты оспади как его ...вот так наверно лучше /*Chip type : ATmega8Program type : ApplicationAVR Core Clock frequency: 14,218180 MHzMemory model : SmallExternal RAM size : 0Data Stack size : Blackbird_sunday(7382 знак., 20.08.2012 05:36, )
- вот оно мое бессмертное творение:)/*Chip type : ATmega8Program type : ApplicationAVR Core Clock frequency: 14,218180 MHzMemory model : SmallExternal RAM size : 0Data Stack size : Blackbird_sunday(7382 знак., 20.08.2012 05:34, )
- Дык на работе у меня все это валяется -в понедельник покажу не жалко :) - Blackbird_sunday(19.08.2012 06:44, )
- Да элементарно все делается. Покажите листинг, Bill(38 знак., 18.08.2012 15:10)
- я хоть и не спец в ассемблере простые команды кинуть в регистр и оттуда и сдвиг разбираю .. Дак вот насчет выкинуть лучше написать новое . Ибо смотрел ассемблерный листинг - с начала прерывания идет переход на подпрограмму перепихивания всех Blackbird_sunday(271 знак., 17.08.2012 19:22, )
- там - koyodza(17.08.2012 17:52, ссылка)
- Да спасибо я знаю об этой микрухе и о принципах DDS .. Я хочу чисто на микроконтроллере Эх..Если бы конкретно не хватало а то самую малость ..Так и генерит и свип дает тока так - но вот чуть чуть не хватат .. - Blackbird_sunday(17.08.2012 17:56, )
- В общем за прошлый вечер меня посетила идея как слепить внешний полностью аппаратный DDS на 155 серии простой с подгружаемой формой сигнала (есть микрухи озу с кэша 486) . Но днем после обеда уже заказал stm32 отладочную плату и пару контроллеров Blackbird_sunday(216 знак., 22.08.2012 19:16, )
- 74НС595 - koyodza(22.08.2012 20:15)
- В общем за прошлый вечер меня посетила идея как слепить внешний полностью аппаратный DDS на 155 серии простой с подгружаемой формой сигнала (есть микрухи озу с кэша 486) . Но днем после обеда уже заказал stm32 отладочную плату и пару контроллеров Blackbird_sunday(216 знак., 22.08.2012 19:16, )
- Да спасибо я знаю об этой микрухе и о принципах DDS .. Я хочу чисто на микроконтроллере Эх..Если бы конкретно не хватало а то самую малость ..Так и генерит и свип дает тока так - но вот чуть чуть не хватат .. - Blackbird_sunday(17.08.2012 17:56, )
- :) Поэтому порядочные люди и не используют "кодвижн". На нормальном компиляторе на 20 МГц ПЦС 200 кГц получить можно. И между прерываниями конечно же надо спать. А если отнять у компилятора несколько регистров (я не умею) - то и под 14, думаю, Юрий_СВ(12 знак., 19.08.2012 18:00)
- а как вы думаете в чем я писал на кодевижн ? Вот в сях и писал -дык МЕДЛЕННО прерывание работает . На этой тактовой в 12 микросекунд укладываеться а надо меньше 5 ..Лазил в ассемблерный листинг - ух и накручено там . Я на котроллерах только в Си и Blackbird_sunday(233 знак., 17.08.2012 17:50, )
- На STM32 синусоида рисуется с помощью таймера (с вкусным прескалером) и 1-го канала DMA безо всяких прерываний... - Vit(17.08.2012 17:25)
- Угу -> - SciFi(17.08.2012 17:31, ссылка)
- там с ЦАП + таймер + DMA можно и ещё веселее сделать - koyodza(17.08.2012 17:31)
- Ребяты я знаю что есть МНОГО чего более мощного чем атмега8 . Но блин меня в работе достало что сначал рисуешь схему а потом полгода ждешь всяких козявок которые в ней стоят . Я делаю из того что есть под рукой чесслово . А хлама Blackbird_sunday(156 знак., 17.08.2012 17:41, )
- а почему не хотите генератор на 50МГц? Или почему не решили сделать DDS на триггерах собранных на МТХ-90? У каждого компонента есть разумное применение, хотя конечно есть извращенцы-любители usb ногодрыгом и spi видео - koyodza(17.08.2012 17:49 - 17:54)
- Хм ну ребяты ничего я не хочу приобретать - ну с тем "поставь чтонить получше" не надо ко мне . Нет интереса - главное быстродейтсвия то чуть чуть не хватат - поднять и будет щастье .. - Blackbird_sunday(17.08.2012 17:52, )
- если "ДЛЯ СЕБЯ" и "быстродейтсвия то чуть чуть не хватат" то что мешает просто немного поднять тактовую? - koyodza(17.08.2012 17:54)
- Ну 20 мгц ставил вместо 14 но маловато оказалось а дальше мега может и не разогнаться .. Я же говорю на ассемблере бы часть переписать и оптимизировать и все будет Ок - Blackbird_sunday(17.08.2012 17:57, )
- смотрели? - koyodza(17.08.2012 18:00, ссылка)
- Хыы поглядел интересно - только вместо букв кракозяблы .. А так схему и ассемблер видно .. и шо 50 кгц есть разобрал :) - Blackbird_sunday(17.08.2012 19:25, )
- поставьте кодировку Кириллица Win 1251, в FireFox автоматом отображается нормально. А вообще "классиков нужно знать
в лицонаизусть" - koyodza(18.08.2012 16:09)- у мну не фирефокс а айсвезел и вообще дебиан :)) - Blackbird_sunday(19.08.2012 06:45, )
- И кодировка там стоит по умолчанию win 1251 и все равно кракозяблы .. Давненько их не видел ... - Blackbird_sunday(19.08.2012 06:48, )
- всегда думал, что в линуксоиды идут те, кто способен хотя бы кодировку самостоятельно переключить - koyodza(19.08.2012 10:51)
- Ну что вы 99.999 % нормально открывается и вот за 6 лет попался :) К тому же линукс щас уже не тот :)) При установке практически сам детектит любую козявку в аппаратуре и ставит ей поддержку - а вот если он чего не найдет сам при установке тогда Blackbird_sunday(21 знак., 19.08.2012 15:29, )
- а те кто вирусы лечат голыми рукам куда должны идти? - saifullin(19.08.2012 10:59)
- всегда думал, что в линуксоиды идут те, кто способен хотя бы кодировку самостоятельно переключить - koyodza(19.08.2012 10:51)
- И кодировка там стоит по умолчанию win 1251 и все равно кракозяблы .. Давненько их не видел ... - Blackbird_sunday(19.08.2012 06:48, )
- у мну не фирефокс а айсвезел и вообще дебиан :)) - Blackbird_sunday(19.08.2012 06:45, )
- поставьте кодировку Кириллица Win 1251, в FireFox автоматом отображается нормально. А вообще "классиков нужно знать
- Хыы поглядел интересно - только вместо букв кракозяблы .. А так схему и ассемблер видно .. и шо 50 кгц есть разобрал :) - Blackbird_sunday(17.08.2012 19:25, )
- смотрели? - koyodza(17.08.2012 18:00, ссылка)
- Ну 20 мгц ставил вместо 14 но маловато оказалось а дальше мега может и не разогнаться .. Я же говорю на ассемблере бы часть переписать и оптимизировать и все будет Ок - Blackbird_sunday(17.08.2012 17:57, )
- если "ДЛЯ СЕБЯ" и "быстродейтсвия то чуть чуть не хватат" то что мешает просто немного поднять тактовую? - koyodza(17.08.2012 17:54)
- Хм ну ребяты ничего я не хочу приобретать - ну с тем "поставь чтонить получше" не надо ко мне . Нет интереса - главное быстродейтсвия то чуть чуть не хватат - поднять и будет щастье .. - Blackbird_sunday(17.08.2012 17:52, )
- а почему не хотите генератор на 50МГц? Или почему не решили сделать DDS на триггерах собранных на МТХ-90? У каждого компонента есть разумное применение, хотя конечно есть извращенцы-любители usb ногодрыгом и spi видео - koyodza(17.08.2012 17:49 - 17:54)
- Ребяты я знаю что есть МНОГО чего более мощного чем атмега8 . Но блин меня в работе достало что сначал рисуешь схему а потом полгода ждешь всяких козявок которые в ней стоят . Я делаю из того что есть под рукой чесслово . А хлама Blackbird_sunday(156 знак., 17.08.2012 17:41, )