МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Запоминающий осциллограф

Запоминающий осциллограф 4 года 2 мес. назад #3413

Chaosorg пишет:

Что добавить в первую очередь в следующей версии?


На мой взгляд, интересной будет функция усовершенствования "цифрового фосфора":
по нажатию клавиши запоминается осциллограмма, а затем обновление поверх другим цветом через регулируемое время, например 0,1с, 1с, 10с, 1мин, 10 мин, 1 час, это позволит вылавливать медленные изменения сигнала. (достаточно отображать 5-7 осциллограмм поверх первой).
Да и просто функция запоминания нескольких осциллограмм и вывод разным цветом (на той же развертке) может быть интересна, (получится "аналог" многоканального осциллографа).
Спасибо сказали: Chaosorg

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Запоминающий осциллограф 4 года 2 мес. назад #3416

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54

Chaosorg пишет: Вообще, что и как измеряют реальные частотомеры? А то может я не так велосипедю? :ohmy:

На форуме ixbt в ветке про FPGA было(давно) много постов с участием Reanimator++ - он делал стенд измерений точных кварцевых генераторов. Можно там посмотреть с поиском.
Спасибо сказали: Chaosorg

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Leka.

Запоминающий осциллограф 4 года 2 мес. назад #3474

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 311
  • Спасибо получено: 17

Вложенный файл:

Имя файла: my_scope_20150516.zip
Размер файла: 236 KB


(jic файл стерт для экономии места)

выкладываю небольшой баг-фикс:

чувствительность разных типов триггеров теперь действительно разная - была ошибка в управляющей осциллографом программе - из-за нее применялось одно и то же значение чувствиетельности всем триггерам

изменен video_sync_gen.v - длительность сроки и кадра теперь правильные в сочетании со стандартными таймингами - привередливый LG 42LW650S показывает картинку :) Думаю, что стоит проверить на предмет подобной ошибки некоторые проекты на этом сайте, которые не показывают сейчас на этом слишком дотошном телевизоре - ошибка банальная - оператор сравнения, который определяет достижение счетчиком значения, соответствующего концу строки (или кадра), сбрасывает счетчик на ноль. Значит счет идет от 0 до какого-то числа (назовем его длительность_строки), определенного стандартом и реально строка занимает на один пиксельклок больше, чем надо. надо считать до длительность_строки-1

добавлен для эксприментов DDS.


Должен сказать, что много времени потратил на исследование странной нестабильности проекта и измерений частотомера. Такое впечатление, что параметр seed в настройках fitter уже может влиять на качество работы этого проекта - частотомер ловил помеху и даже процессор терял стабильность. Должен сказать, что пока я не разобрался со всей руганью TimeQuest Timing Analyzer, которой сейчас много :( В данный момент проект стабилен при seed = 1. Не совсем понятно как я этого добился просто удалением ALTSERIAL_FLASH_LOADER и DDS и стиранием временных файлов квартуса. Может глюк какой-то. Обратите внимание, что DDS я вернул обратно, а ALTSERIAL_FLASH_LOADER не вернул, но проект все равно шьется во флеш! Т.е. инструкции на этом сайте по прошивке флеша на шилдах содержит лишние действия по добавлению этого модуля в проект. Такое впечатление, что ALTSERIAL_FLASH_LOADER нужен только если кроме самого проекта во флеше надо хранить какие-то еще данные нужные самому проекту.
Вложения:
Спасибо сказали: Ку!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.

Запоминающий осциллограф 4 года 1 мес. назад #3531

На тот случай если вдруг поможет -

Абсолютно полноценный профессиональный 2 канальный осциллограф с тачскрином.
проект под STM32F429 discovery. Ну к примеру можете выдрать от туда фон уже представленный как HEX массив.
Посмотреть как выполнена синусойда, и.т.п. Исходник богат комментариями

mikrocontroller.bplaced.net/wordpress/wp.../03/Show_10_Oszi.zip
mikrocontroller.bplaced.net/wordpress/?page_id=3290

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Запоминающий осциллограф 4 года 4 нед. назад #4472

Приветствую обитателей сего славного сайта!

Портировал версию my_scope_20150516 для своей платы.
Из-за того,что у меня 2-битные R2R ЦАП для VGA, фосфор - жесть полная, его как-то можно отключить?
Также нет реакции на кнопки ps/2 клавиатуры, работает только экранное меню выбора кнопками на плате.
АЦП пока не цеплял, на шину ADC_D[7..0] аналогового входа подаю значения со счётчика.
Что означает статическая надпись 0х1000 ?
В мультиметре для аналог.входа корректно отображает только max/min, частота и ширина импульса по нулям.
Каким образом формируете файл команд для "процессора"?

Спасибо.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ку!.

Запоминающий осциллограф 4 года 4 нед. назад #4475

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 311
  • Спасибо получено: 17

Ку! пишет: Приветствую обитателей сего славного сайта!

Портировал версию my_scope_20150516 для своей платы.
Из-за того,что у меня 2-битные R2R ЦАП для VGA, фосфор - жесть полная, его как-то можно отключить?
Также нет реакции на кнопки ps/2 клавиатуры, работает только экранное меню выбора кнопками на плате.
АЦП пока не цеплял, на шину ADC_D[7..0] аналогового входа подаю значения со счётчика.
Что означает статическая надпись 0х1000 ?
В мультиметре для аналог.входа корректно отображает только max/min, частота и ширина импульса по нулям.
Каким образом формируете файл команд для "процессора"?

Спасибо.


Ну наконец-то хоть кто-то кроме меня его увидел :)

Ок. - Фосфор сделаю отключаемым. И покажу здесь участок кода, требующий изменений в ближайшее время. Хотя и непонятно в чем "жесть"? Не плавно затухает?

Клавиатура готовая, всеми используемая - как она может не работать? У ее модуля есть выходы, которые я в диагностических целях подсоединял к светодиодам. Попробуйте так и Вы.

статическая надпись 0x1000 напоминает мне об адресе этой ячейки. Т.е. это просто остатки от целой кучи шпаргалок, которыми я раньше инициализировал текстовую видеопамять, чтобы легче было рассчитывать адреса конкретных мест на экране. Надпись сотру в следующей версии, чтобы не смущала. Можете и Вы стереть - в папке проекта есть файл refresh_ROMs.bat - он формирует из отдельных кусков все hex файлы для инициализации памяти. В нем видно как делаются память шрифта, экрана, программы. Кстати, справа в верхней строке должен появляться скан-код нажатой на PS/2 клавиатуре клавиши.

Раз у Вас вместо АЦП сейчас счетчик, то сигнал - пила? Тогда триггер частотомера может не срабатывать - уменьшите его чувствительность.

В файле refresh_ROMs.bat Вы увидите, что файл program.hex формируется из файла program.rom. Program.rom - это и есть то, что исполняет процессор. Никакой компиляции над этим текстовым по сути файлом не производится. Мой процессор прям текстовый, читаемый человеком, файл исполняет.

P.S.

подумал еще про реакцию текущей версии триггера на пилу. Триггер сейчас работает на положительный перепад. С пилой он будет срабатывать либо всегда либо никогда. Нужен другой тип триггера. Кстати, каков смысл длительности положительной и нулевой площадок для пилы?
Спасибо сказали: Ку!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.

Запоминающий осциллограф 4 года 4 нед. назад #4476

Chaosorg, здравтвуйте! Спасибо за оперативный и развёрнутый ответ!
Тема очень интересная и в своё время меня очень воодушевила, сподвигла на переход с AHDL на Verilog; даже не знаю, почему так мало людей проявляет к ней интерес :dry:
На этой неделе разберусь, почему у меня не заработала клавиатура ps/2, т.к. играть 2 кнопками неудобно.
Надпись 0х1000 не мешает совершенно, просто было интересно, почему адрес статический и не меняется.
В program.rom заглянул, почему-то сразу его не нашёл. Как работает с ним процессор пока не понял, позже буду разбираться. Имхо, наличие такого процессора в осциллографе - дело вкуса, можно и без него обойтись, это как кому больше нравится.
По поводу маленького поля для вывода осциллограммы (да ещё и, кажется, вы каждый отсчёт в 2 раза растягиваете) - я так понял, это продиктовано Вашим желанием использовать ТВ экран? Просто я в свой закладывал режим 1024*768 (заложил бы и 1366*768, он не уверен, что поддерживается старыми мониторами). Тогда меню и показания мультиметров можно располагать сверху и снизу от осциллограммы.
На данный момент график отсчётов отображается более-менее в 2 режимах триггера. В остальных начинаются чудеса и вообще ничего не видно. Но это мне нужно сначала разобраться с ps/2 и прицепить АЦП.
Для пилы хотя бы частоту должен показать, буду разбираться дальше.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Запоминающий осциллограф 4 года 4 нед. назад #4477

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 311
  • Спасибо получено: 17

Ку! пишет: В program.rom заглянул, почему-то сразу его не нашёл. Как работает с ним процессор пока не понял, позже буду разбираться. Имхо, наличие такого процессора в осциллографе - дело вкуса, можно и без него обойтись, это как кому больше нравится.
По поводу маленького поля для вывода осциллограммы (да ещё и, кажется, вы каждый отсчёт в 2 раза растягиваете) - я так понял, это продиктовано Вашим желанием использовать ТВ экран? Просто я в свой закладывал режим 1024*768 (заложил бы и 1366*768, он не уверен, что поддерживается старыми мониторами). Тогда меню и показания мультиметров можно располагать сверху и снизу от осциллограммы.
...
Для пилы хотя бы частоту должен показать, буду разбираться дальше.


Такой процессор больше развлечение, хотя, с другой стороны, а почему бы и нет? Не такой уж он эзотеричный. Всяко понятнее ассемблера. Со временем его надо будет поменять на что-то самое маленькое с нормальным тулчейном, но я пока не знаю, что это будет. Хочется брать минимальные по размеру исходники, работающие с флешками. Это пересекается с моим другим интересом - хост USB на марсоходе.

точки удваиваю, чтобы были крупнее :) массив точек такой маленький из-за маленького размера внутренней памяти ПЛИС, а не из-за желания использовать ТВ, хотя это тоже допустимо. Видеорежимы у меня очень легко меняются изменением соответствующих параметров у модуля video_sync_gen.v , но где брать столько видеоинформации для показа. Идея сдвинуть текст в сторону от осциллограммы у меня тоже возникала, но пока места на экране хватает занимаюсь другими вещами. В моей текущей версии уже есть четыреканальный логический анализатор (это, это конечно, громко сказано :) - просто еще 4 луча с бинарными значениями) и есть источник звука, принимающий wav файл по USB (перенес свой модуль для загрузки игр из спектрума). Скоро выложу.

P.S.

вот строчки из multimeter.v триггера частотомера аналогового входа:

if((adc_d_delta > sensitivity) && (adc_d_delta[8] == 1'b0) && (digital_signal_level == 1'b0)) begin
...
end else begin
if((adc_d_delta[7:0] < (256-sensitivity)) && (adc_d_delta[8] == 1'b1) && (digital_signal_level == 1'b1)) begin
...

Я в первую очередь реализовал именно такую версию, потому что она мне нужна была и уже пригодилась для практических задач, которые я уже решаю этим осциллографом. Измерял близкие к прямоугольным импульсы и синусоиды. Сравните пилу с какой-нить константой и будет уже не пила, а прямоугольник - это частотомер измерит. Или изменить показанные строчки сделав сравнение с константой прямо в них.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.

Запоминающий осциллограф 3 года 10 мес. назад #4621

Вот жаль, что тема умирает... Надо бы подлить масла в огонь! Выскажу ка и я свои "бесценные" мысли по поводу осциллоскопостроения...

И так мысль первая и ИМХО главная - надо разделить одну большую и явно не подьемную для одного инженера задачу, а именно разделить осциллоскоп на части и заниматься разными частями по отдельности. Ну вот, скажем, интерфейс это отдельная и очень непростая задача. Примеров море, есть и уже достаточно сложившийся общий принцип строения экрана, меню и прочего расположения информации на экране, способы вывода, интерпретации того или иного события... Далее способ хранения и обработки внутри осциллоскопа! Как хранить? В виде чего хранить? Сколько хранить? Как правильно организовать "люминофор" и когда он нужен? Управление "люминофором". Ну и конечно же та часть вопросов, которая относится к проблеме оцифровки сигнала и его первичному запоминанию. Как цифровать быстрые сигналы? Стробоскоп - не стробоскоп? Два или четыре недорогих АЦП или одно быстрое? Как хранить полученную инфу? Как ее потом и во что преобразовывать? Что делать с избыточностью? Что делать с мертвым временем? Ну и последняя группа вопросов - синхронизация! Тут у мну свой бзик! Об этом отдельно...

Вот сколько видел проектов доморощенных осциллоскопов, столько читал прежде всего про "гигасемлы пер секонд" и прочие гигагерцы, но вот ни разу еще нигде не встретил ни одного предложения по такому немаловажному ИМХО вопросу, как синхронизация! Ну вот могут ВСЕ современные ослы показывать импульс начиная с перехода через уровень и все! А что, большего не надо? Ну вот хоть бы синхру по длительности увидеть! Я уже молчу про синхру по совпадению условия между двумя и более сигналами! А между прочем это очень бывает надо! Или это только я такой любопытный? Я вот тут посмотрел презентацию от Лекроя, у них в не самом дорогом лабораторном осцилле условий синхронизации за сотню! Поделены на десяток подгрупп, в котрой можно много чего нарулить! Ну ладно, ЛеКрой это практически хай-энд осциллоскоповый, до него любой любительской конструкции как от петарды на палке до полета Гагарина. Однако это ориентир! Ну пусть не все, но почему бы не попытаться сделать хотя бы самые простые алгоритмы? Вот вам и польза от небольшой частоты, но большой гибкости! А это уже совсем другой оборот!

Вывод, опять же ИМХО, пусть в домашних условиях или в условиях бюджетного хобби не возможно превысить некую грань одну - две сотни мегагерц по скорости семплирования, но ведь сделать осциллу много памяти, и даже прикрутить ему лишнюю ПЛИС для алгоритмов и процессов синхронизации никто не мешает!

Прошу обсудить! Ногами прошу сильно не пинать! Все, что написал - мое скромное мнение...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Запоминающий осциллограф 3 года 10 мес. назад #4622

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 311
  • Спасибо получено: 17
Тема "умирает" не больше, чем все остальные. Наверное "виновато" лето. Если не считать тем, вызванных появлением новой платы Марсоход 3, то активность на сайте, как мне кажется, много ниже зимней и весенней. У меня тут, например, осень золотая, солнце, велосипед - надо пользоваться моментом :)

Я в своем осциллографе урывками все-таки делаю изменения - будет другой фосфор и возможность его регулировки и отключения. Еще хочу сделать постоянное послесвечение другим цветом одной осциллограммы после срабатывания одноразового триггера вместе с другой, текущей, чтобы сравнивать сигналы.

В остальном, у меня такое ощущение, что дальнейшее желание совершенствовать проект на плате марсоход будет постоянно конкурировать с желанием перевести работу на самодельную плату, более подходящую именно для осциллографа. Нужна аналоговая часть и хочется все-таки более быстрого АЦП, чтобы чаще получать практическую пользу от устройства, хотя я даже сейчас умудряюсь это делать иногда.

Короче, ждем дождей и холода :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.
Время создания страницы: 0.218 секунд

ВКонтакте  facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Проекты пользователей Запоминающий осциллограф