![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
skyvmicro
Участник-
Постов
184 -
Зарегистрирован
-
Посещение
Весь контент skyvmicro
-
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
С вашей схемой понятно. В моем случае надо будет оценить итоговое разрешение после приведения входного сигнала с помощью ОУ. У TI как раз видел использование различных АЦП в схеме привода. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Тогда еще один вопрос. Просто для себя я его пока не рассматривал детально. Данный АЦП предназначен для непосредственного подключения к шунтам с целью измерения тока. У Вас АЦП также используется или нет? Я собираюсь его использовать для измерения напряжений +- 10В. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Вот интересно как 100 МГц МК LPC1754 вычисляет быстрее, чем 200 МГц SAM9? -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Решил посмотреть в симуляторе какое число тактов затратит 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 мкс обнадеживает. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
По поводу ресурсов увидел, что использован BF533 с частотой 594 MHz. SAM9 у меня по SPI работает на 25 MHz без проблем, но под другой задачей. А для этой похоже ему не дотянуть. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Реализация на ПЛИС сомнений не вызывает, но хотелось бы оценить требования к МК для этой задачи. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
За ответы на вопросы спасибо. Моделировать фильтр для себя я тоже планирую, но когда все более менее определится. АЧХ фильтра будет зависеть от Fsample и Fd. В даташите на AD7705 приведено описание sinc3 фильтра. Там есть картинка АЧХ. Софт для интеграторов требует шорошего быстродействия и я уже параллельно смотрю на CPLD от Atmel. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Пока лучше опишу чего не выходит. Посмотрел текст фильтра на VHDL и возникают вопросы. 1. Сигнал reset нужен только для начальной инициализации и в процессе работы он не нужен? 2. Не пойму комментарий. if(mdata1==0) ip_data1 <= 0; /* change from a 0 to a -1 for 2's comp */ else ip_data1 <= 1; Если mdata1==0, то всегда ip_data1 = 0, а где и когда получаем -1? 3.Долее, не пойму как могут работать интеграторы если ip_data1 всегда 0 или 1. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Так точно, SPI - мастер. У меня, на SAM9, максимум выходного клока до 50 МГц. По поводу использования SPI план такой: - Сигнал CS не дергать вообше. Один раз сформировать выбор устройства и все. - Настроить SPI на прием слов или байт и паузы между ними не делать. - У SAM7,9 есть два указателя на приемные буферы. Вот теперь надо разобраться можно ли их использовать для организации непрерывного потока. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
Именно этот модулятор я и рассматриваю. Подобная идея обработки прокручивалась в голове. Спасибо sysel за достаточно подробное описание Вашей едеи. Подозреваю, что в DSP данная задача реализуется аналогично. Для себя хочу рассмотреть возможность приема непрерывного потока по SPI с использованием двух буферов + ДМА. Софт будет поочередно обрабатывать эти буферы. ПЛИС + МК как-то накладно. Тогда уже просто использовать одну ПЛИС без МК. -
сигма-дельта модулятор + МК
skyvmicro ответил skyvmicro тема в Алгоритмы ЦОС (DSP)
А какие интерфейсы существуют в DSP. По поводу интервала суммирования. Если я правильно понял, Вы предлагаете прямой метод накопления, который подходит для медленно меняющихся входных сигналов ( дословно из DSP-ПРОЕКТ «НАРОДНЫЙ УЧЕБНИК»). При таком способе обработки частота моего выхода будет определяться: Fd = 16.0e+06 / 65536 (Гц) -
сигма-дельта модулятор + МК
skyvmicro опубликовал тема в Алгоритмы ЦОС (DSP)
Всем доброго дня. Есть несколько вопросов по работе с сигма-дельта модулятором. Исходно имеем частоту модулятора Fsampl = 16МГц и частоту дискретизации выходного сигнала Fd = 10кГц. Число разрядов – 16. 1. Во многих примерах видел обработку данных модулятора плиской или DSP. Как оценить необходимую производительность контроллера типа ARM7? 2. Каким интерфейсом контроллера принимать поток данных модулятора? 3. В даташите на модулятор есть пример фильтра-дециматора на VHDL. Где найти аналогичный пример на С? -
Насколько я понимаю запись кэшируется в самой FatFs. Теперь плюс к этому я могу делать или нет кэш в своем модуле I/O. Понятно.
-
Пишу свой модуль I/O для RAM-diska. И вот остановился на реализации функции disk_ioctl в части команды CTRL_SYNC. Понятен первый режим работы функции для устройств имеющих какое-то время записи. Понятно, что ничего не надо делать если только читаем из устройства. Не понимаю когда необходим в модуле I/O write back cache и как при этом функционировать. В примерах для I/O модулей MMC и NAND я не встретил использование write back cache.
-
Передача логических сигналов между платами.
skyvmicro ответил cpl тема в Схемотехника
По поводу частоты и длины линии связи могу добавить. Соединяли ПЛИС и ARM9 по SPI на частоте 25МГц витыми парами длиной около 50см. Сбоев в этой макетной связке не выявили. В итоге заложили в реальное изделие (силовое устройсво) эту связку в виде шлейфа длиной 10см. Проблемы не наблюдались. -
Измерение R утечки
skyvmicro опубликовал тема в Вопросы аналоговой техники
Имеются вопросы по методам измерения сопротивления утечки силовых шин на землю. Объект имеет следующие параметры: 1. Напряжение на шинах - медленно меняющееся в диапазоне -30В… +-30В (хотя может быть и -600В… +-600В). 2. Максимальная частота изменения напряжения на шинах – 0.2Гц. 3. Между шинами и землей есть С 1- 20 мкф. В этом плане есть подобные устройства ф. BENDER. Они же описывают какой-то AMP метод измерения. В первом варианте своего устройства использовали принцип поочередного подключения своего резистора к шинам. Накапливали данные двух измерений и находили искомые утечки каждой из шин ( при этом напряжение на шинах было постоянное и С нет). Во втором варианте захотелось уйти от коммутации резистора к шинам. Решили пойти по пути того же BENDER. Имеем эталонный источник (+- 20В) и резистор (150 кОм). Измеряя ток резистора получаем утечки шин на землю. В этом методе есть пока проблемы учета влияния меняющегося напряжения на шинах и емкостей на землю. Попадались какие-то методы заряда - разряда конденсаторов через резистор на землю. Но как-то более красиво сделано у BENDER и параметры у них приличные. -
По Вашему ТЗ трудно, что конкретно советовать. Поэтому даю абстрактные ответы: 1. Как Вы думаете измеряет сопротивление обыкновенный мультиметр? 2. АЦП есть с диапазоном более чем 0...5В. 3. Дальнейшие советы зависят от скорости изменения параметра, точности и т.п.
-
Спасибо за конкретный ответ. Посмотрю внимательнее описание.
-
Мне здается, что имя файла не указывает то на каком носителе он находится.
-
Вот есть функция: FRESULT f_open ( FIL* FileObject, /* Pointer to the blank file object structure */ const TCHAR* FileName, /* Pointer to the file neme */ BYTE ModeFlags /* Mode flags */ ); Я просто не пойму где тут параметр указывающий принадлежность к носителю. С вашим примером для низкоуровневых функций я согласен. Вопрос снимаю. Посмотрел ff.h и стало понятно, что если FIL *fp, то fp->fs->drv это и есть носитель.
-
На плате с SAM9260 установил FatFs и работал с карточкой microSD 1Gb по SPI. Исходный пример работал без проблем. Планируя использовать FatFs в собственном проекте столкнулся с небольшим вопросом, который не понимаю. Имею несколько физических носителей - microSD, SDRAM, dataFlash, NAND. Могу ли я работать одновременно более, чем с одним носителем? Если да, то как интерфейсные функции FatFs могут понять, с каким именно носителем им работать?
-
В первых трех байтах загрузочного сектора находится "ассемблерная команда перехода к загрузочному коду "(переписал дословно из книги). Далее написано, что необходимости в ней нет(кроме загрузочных файловых систем). Просто теперь возникает вопрос, а что там должно быть если нет загрузочного кода?
-
Написал утилиту для форматирования RAM-диска. Теперь диск создается автоматически при включении питания, а при подключении USB кабеля имею к нему доступ. Все хорошо, но есть один вопрос. Если я заполняю первые три байта загрузочного сектора нулями, то при подключении USB кабеля диск приходится форматировать. Когда я прописываю эти байты значениями, которые создаются TotalCom при форматировании, то все ОК. Почему так происходит? Получается, что код команды перехода должен присутствовать всегда?
-
Я скачал эту книгу - "USB Mass Storage Designing and Programming Devices and Embedded Hosts" Jan Axelson. У Microchip есть стэк и небольшое описание для USB MSD.
-
Всем доброго дня. Есть несколько вопросов по дальнейшему использованию USB на SAM9260. 1. Хотелось бы теперь попробовать USB - host для флэшки. 2. На плате имеется несколько физических носителей памяти ( SDRAM, microSD, DataFlash, Nand). Как можно выбрать со стороны PC любой из этих носителей для работы? При этом программный код для PC не создавать, а только для SAM. 3. В примере от IAR каждый раз надо форматировать диск перед началом работы. Где взять готовый пример кода для форматирования RAM-диска или иного носителя? Я понимаю, что возможно эту утилиту написать и самому. 4. Пример USB MSD, на мой взгляд, дает возможность получить простой инструмент для управления функционированием платы. Для этого нужно что-то вроде самодельного командного процессора? В USB MSD мне очень нравится то, что для PC ничего создавать не надо.