Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
а так видимо слабый проц плохо отрабатывает callback и копирование данных
да, посчитал - при IrqStep=32k время между запросами порядка 3 мсек, копирование из буфера USB в буфер пользователя - 1 мсек, потом запрос данных и остается 2 мсек на передачу данных по USB, что и требует примерно 32 МБ/сек, которые близки к пропускной способности USB. Сделал в драйвере двойную буферизацию на приём (не знаю насколько корректно) - теперь при приходе callback делаю запрос в другой буфер и потом копирую готовый. Вроде работает, тестирую...
значит, в данной программной среде возникают асинхронные задержки откачки данных более 0,4 с.
Не похоже. Собрал RealTime ядро - результат ровно тот-же. Именно спустя несколько секунд (порядка 5) после начала сбора данных возникает переполнение буфера, то есть данные забираются из АЦП чуть медленнее, чем нужно. Видимо режим чтения USB-накопителей реализован как-то более оптимально, может с учётом специфики процессора.
сколько она показывает на чтение очень большого файла?
Флешка USB2.0, на своей плате:
time dd if=/mnt/out1G of=/dev/null
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 31.1417 s, 33.7 MB/s
Тогда значит не тянет.
Вот это и не понятно, реальная скорость USB у платки - 33 МБ/сек, какие-либо настройки или оптимизации драйвера невозможны?
если кадр такой задать то поток считайте стал как 5МГц. в кадре оцифруется с частотой 10, а частота кадров 5. на ПК под линукс как работает?
Да, я почему-то решил что dKadr это между IrqStep отсчётов. Вообще, написано dKadr интервал между кадрами, то есть это межкадровая задержка? Тогда он ведь должен быть равным 0 мс для максимальной частоты, а не 1/dRate?
На ПК под линукс работает нормально.
Так и запускал, процессор практически в простое (загрузка 5-10%), серверный вариант Armbian, без десктопа. Похоже нашлась причина странного поведения - величину dKadr ставил в 0, драйвер автоматически выставлял минимальную задержку в один отсчёт 1/dRate как 0,0001 для 10 МГц, на ПК работало нормально, на OrangePi - сбои. Если на OrangePi вручную задать dKadr больше времени одной выборки, например, 0,0002 для 10 МГц - светодиод мигает ритмично и не "залипает".
@ SergeyVN:
Очень странное поведение светодиода.
Неплохо бы проверить как ведёт себя этот модуль на обычном настольном компьютере на частоте сбора 10 МГц?
USB кабель иcпользуется штатный?
Кабель штатный. На обычном ПК всё работает нормально. Нашел более свежий модуль е2010 (ревизия В.01, 2017 год) - светодиод ведёт себя так же (через некоторое время начинает гореть постоянно зелёным и проблескивает красный), но артефактов в данных не появляется - видимо более корректно отбрасывает не выбранные данные.
А какая ревизия модуля Е20-10?
А после подключения модуля к USB шине каким цветом загорается светодиод: красным или зелёным?
Модуль ревизии В, 2008 года. При подключении загорается зелёным.
Опять же каким цветом 'практически непрерывно' горит светодиод: красным или зелёным?
Или может быть присутствует некое моргание красно-зелёного типа?
Горит непрерывно зелёным и если присмотреться, то есть ещё быстрое еле заметное моргание красным.
а если синус подать и писать непрерывно? всплески это одинокие точки или импульсы из нескольких точек.
Именно одиночные точки. По ссылке снимки с экрана (PowerGraph) и записанный файл данных (4 канала, просто данные, без заголовка) https://cloud.mail.ru/public/5HfB/SoBhKFBNX
С синусом сделаю запись.
Прошивка FPGA последняя. А о чём может говорить то, что когда данные собираются нормально - светодиод на модуле АЦП мигает отчётливо, когда начинаются описываемые сбои - горит практически непрерывно?
Данные пишутся на EMMC, но сам факт записи на проблему не влияет. Программа непрерывно анализирует данные от АЦП и при превышении порога буфер записывается. Проблема так и проявилась - при отсутствии сигнала на входах АЦП в буфере появляются ложные данные, на которые программа реагирует. При просмотре файла выглядят как одиночные редкие "вплески" одинаковой амплитуды и повторяющиеся на некотором канале.
Увеличивал, до 32к, 48к. Так же - спустя некоторое время данные портятся.
Здравствуйте! Проверялась ли возможность работы модуля Е20-10 на частоте АЦП 10 МГц с платами OrangePi? Я запускал на двух платах - Orange Pi Plus 2 и Orange Pi Zero Plus 2, впрочем обе на процессоре Н3, armbian, ядро 3.4.113. Плата работает, данные корректные, но на максимальной частоте через некоторое время (20-30 сек) после начала непрерывного сбора в данных появляется мусор - выпадают отдельные биты. Скорости USB хватать должно - могут до 35 МБ/сек.
Понижение частоты до 7,5 МГц вроде решает проблему, но хочется все 10 МГц. Размер буфера 2400000 слов, Pages 100, IrqStep - 24000. Какие возможны варианты?
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск