skyvmicro 0 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба но лучше, ИМХО, простую плисину прикрутить, благо написать CIC-дециматор не составляет особых проблем Реализация на ПЛИС сомнений не вызывает, но хотелось бы оценить требования к МК для этой задачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба Реализация на ПЛИС сомнений не вызывает, но хотелось бы оценить требования к МК для этой задачи. В принципе, в той статье, на которую я ссылку дал, есть описание расчета ресурсов. Но во-первых, как здесь уже говорили, есть проблема с вводом данных в МК на такой частоте (в статье используется последовательный порт блэкфина, но у него частота тактовая может быть довольно высокая, не уверен что в ARMе есть что-то подобное). Во-вторых, делать CIC, который напрямую будет, децимировать в 16000 раз, нежелательно. а) Разрядность на выходе будет большой: ceil(K*log2(M)). K -порядок фильтра, M - коэффициент децимации. Например, для CIC третьего порядка, арифметика должна быть для чисел с разрядностью больше 32 бит (3*15). б) у Вас все равно останется много внеполосного шума, который по любому надо будет отфильтровать, например halfband фильтром. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyvmicro 0 20 октября, 2010 Опубликовано 20 октября, 2010 · Жалоба По поводу ресурсов увидел, что использован BF533 с частотой 594 MHz. SAM9 у меня по SPI работает на 25 MHz без проблем, но под другой задачей. А для этой похоже ему не дотянуть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyvmicro 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба Отпишите, пожалуйста, что у Вас выйдет Решил посмотреть в симуляторе какое число тактов затратит SAM9 на вычисление трех интеграторов sinc3 фильтра. Ядро ARM9 работает на 200 МГц, т. е. 1 такт = 5нс. Условия для себя принял следующие: - Частота модулятора = 20 МГц. Частота формирования выходных отсчетов примерно 10 кГц. Из этих условий я нахожу необходимый размер буфера = 1984 бит или 62 32-х разрядных слова. Время заполнения буфера составит 1984 * 0.05 мкс = 99.2 мкс. - В программе я обрабатываю весь буфер = 1984 бит за 10305 тактов, а это соответствует времени 10305 * 5нс = 51.5мкс. Программный код на обработку 1-го бита такой: Integr_3 += Integr_2; - 1 такт Integr_2 += Integr_1; - 1 такт Integr_1 += ( input >> .... ) & 0x00000001; - 4 такта Когда использовал цикл по битам, то получил 18672 такта (99 мкс). Пришлось его развернуть. Итого из 99.2 мкс потратили 51.5 мкс. Запас в 50 мкс обнадеживает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sysel 0 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба Мой результат, используя таблицу инкрементов Фильтр CIC (4 интегратора -> децимация в 200 раз -> 4 дифференциатора) -> Фильтр FIR (компенсация CIC + НЧ для дальнейшей децимации) (36 коеф. 32 бита) с децимацией в 5 раз. Итого децимация в 1000 раз. Алгоритмы реализованы на С, компилятор из IAR, оптимизация по скорости. Процессор LPC1754 (Cortex-M3) на частоте 100 МГц. На вычисление одного выходного отсчета сигнала (CIC+FIR) требуется 53 мкс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyvmicro 0 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба ... Процессор LPC1754 (Cortex-M3) на частоте 100 МГц. На вычисление одного выходного отсчета сигнала (CIC+FIR) требуется 53 мкс. Вот интересно как 100 МГц МК LPC1754 вычисляет быстрее, чем 200 МГц SAM9? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sysel 0 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба Вот интересно как 100 МГц МК LPC1754 вычисляет быстрее, чем 200 МГц SAM9? Я использую таблицу инкрементов и оперирую в алгоритме байтами, а не битами. Что само по себе быстрее. Как допишу алгоритм полностью, вышлю Вам реализацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyvmicro 0 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба Тогда еще один вопрос. Просто для себя я его пока не рассматривал детально. Данный АЦП предназначен для непосредственного подключения к шунтам с целью измерения тока. У Вас АЦП также используется или нет? Я собираюсь его использовать для измерения напряжений +- 10В. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sysel 0 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба Тогда еще один вопрос. Просто для себя я его пока не рассматривал детально. Данный АЦП предназначен для непосредственного подключения к шунтам с целью измерения тока. У Вас АЦП также используется или нет? Я собираюсь его использовать для измерения напряжений +- 10В. Я тоже мерю ток с шунта. По ТЗ Rшунт = 1 Ом и он находиться внутри девайса, так что я его могу разбить на несколько последовательно включенных резисторов. Для измерения напряжения я эту схему не рассматривал. Хотя что-т подобное видел в даташите на TI. Скорее всего Вам нужно будет перед модулятором ставить буфер на операционнике. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyvmicro 0 25 октября, 2010 Опубликовано 25 октября, 2010 · Жалоба С вашей схемой понятно. В моем случае надо будет оценить итоговое разрешение после приведения входного сигнала с помощью ОУ. У TI как раз видел использование различных АЦП в схеме привода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Spider 0 20 мая, 2012 Опубликовано 20 мая, 2012 · Жалоба Ребят, можно разворошить старое? Чем всё кончилось? :) Нет ли у кого PDM -> PCM ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sysel 0 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба Ребят, можно разворошить старое? Чем всё кончилось? :) Кончилось всё запуском этого решения в серию. Довольно удачно получилось: LPC1754, 96 Мгц. AD7401A подключен на SSP порт. клок на модулятор 6МГц. Поток обработки: Вход(6 MSPS, 1-bit) -> CIC (3 секции, децимация 80) -> CIC (5 секций, децимация 5) -> FIR (порядок = 54, разрядность коэф. 32 бита, децимация 5) -> Выход (3 KSPS, 24 bit) т.е. произвожу децимацию в 2000 раз. Загрузка процессора = 22 % (оценивал осциллографом) т.е. на обработку одного бита с модулятора затрачивается 3.5 такта (с учетом всех трёх секций фильтра). Нет ли у кого PDM -> PCM ? У меня нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dumb 1 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба Кончилось всё запуском этого решения в серию. Довольно удачно получилось: LPC1754, 96 Мгц. AD7401A подключен на SSP порт. клок на модулятор 6МГц. Поток обработки: Вход(6 MSPS, 1-bit) -> CIC (3 секции, децимация 80) -> CIC (5 секций, децимация 5) -> FIR (порядок = 54, разрядность коэф. 32 бита, децимация 5) -> Выход (3 KSPS, 24 bit) т.е. произвожу децимацию в 2000 раз. Тоже разворошу былое :) И сколько получилось реальное разрешение из этих 24 бит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться