МАРСОХОД

Open Source Hardware Project

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

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

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

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

Leka пишет: Свой выложу, как только сделаю простой вывод на VGA, без управления (один масштаб и тд) - для оценки концепции.

Нужны две пары DIFF_R входов, на IO-разъем выведена только одна пара (IO1/IO0).
Если кто хочет попробовать концепцию стробоскопического осциллографа на базе встроенных LVDS-приемников (подробнее на electronix), и может подпаять недостающую пару DIFF_R, выкладывайте пины - попробую сделать прошивку. Я проверял только на CycloneV, как получится (и получится ли) на CycloneIII/IV - не знаю.

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

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

Могу попробовать работу на Cycolne IV E на плате DE0-NANO чип EP4CE22F17C6

пины VGA: R - Pin_L13, G - Pin_K15, B - Pin_N14, Vsync - Pin_P14, Hsync - Pin - J14.
пины LVDS: первая пара Pin_D9/C9, вторая пара Pin_F8/E8.

С LVDS не сталкивался, правильно я понимаю, в Вашем проекте - одна пара передатчик (тест сигнал), а вторая - приемник?

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

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

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Обе пары LVDS должны быть приемниками: вход сигнала, и вход синхронизации. Нужны еще два выходных пина для заряда и разряда внешней емкости. Завтра посмотрю, что получается для Cycolne IV E, и дам схему с номиналами.
Рассчитывал на тест с внешним генератором, это интереснее, тк в этом случае сигнал не синхронизирован с тактовым генератором "осциллографа". Но если внешнего генератора нет, то могу упростить схему, взяв тестовый сигнал от ПЛИС. В этом случае вход синхронизации не нужен, и достаточно будет одного входа LVDS. (У меня на плате два независимых генератора, от одного тактировал "осциллограф", а от другого получал тестовый сигнал).

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

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

Leka, нашел ветку на электрониксе, разбираюсь.
Можно попробовать и с внешним генератором.

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

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

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 311
  • Спасибо получено: 17
Ну а я тем временем вроде как довел свой осциллограф до состояния пригодного для выкладывания. Понятно, что раз это мой первый опыт работы с ПЛИС вообще и с Quartus и Verilog в частности, то там есть еще над чем работать, мягко говоря... Но все-таки он работает:)

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

Имя файла: my_scope_20150423.zip
Размер файла: 192 KB


Что в нем внутри:

АЦП Марсохода 2 измеряет на максимально допустимой для него частоте - 20MHz.

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

Запись идет в двухпортовую память. Вторым ее пользователем является простой видеоконтроллер, который асинхронен по отношению к генератору видеосинхроимпульсов - пиксельклок может быть разным и размер и положение окна и рамки можно гибко регулировать. Кроме вывода точек видеоконтроллер пересчитывает их яркость в сторону уменьшения - они красиво затухают :)

Видеоконтроллер "двухслойный" - кроме графики выводит текст на основании шрифта 8x8 (выдранного из ПЗУ Спектрума :), массива кодов символов и массива цветов. Цвет пока не доделан. Все это хранится в другой двухпортовой памяти. Видеоконтролер делит ее с простым самодельным процессором. Остаток этой памяти отведен под программу процессора. Тут опрос кнопок марсохода (ps/2 пока не присоединил), частотомера, вывод интерфейса на экран и изменение частоты и типа триггера развертки. Этому процессору не нужен ассемблер - он исполняет непосредственно текстовый файл с программой на простом самодельном языке программирования. Эдакий калькулятор с ветвлениями. Адресация сугубо косвенная с автоинкрементом, вместо регистров память и два указателя в нее. Арифметика производится над содержимым ячеек памяти, на которых показывают эти два указателя. Коды команд совпадают с кодами символов =+- и т д, поэтому набирать программу можно прямо в квартусе или блокноте. Благодаря автоинкреенту и little endian, если надо сложить два байта - пишем +, надо 32бит сложить - пишем ++++

Вот hello world на этом языке:

0800 "Hello world" .

а вот 3 + 2:

i0 '03'
i1 '02'
i0, i1 + `результат в i1

ветвление если i0>0:

i0 ? 0800 "да " `; 0800 "нет" ` какой-то комментарий

и все :) Как бы меньше чем за неделю больше не сочинишь, а больше пока и не надо. Хочется поискать ошибки, почитать ругань квартуса, перерисовать схему проекта как-то красивее, уменьшить количество неблокирующих присваиваний и т.д. И конечно хочется более удобной аналоговой части. Потом в планах подключение PS/2 и задействование SDRAM и COM-порта для хранения и передачи в компьютер осциллограм.

Если кто будет смотреть проект, то не обращайте внимание на вторую PLL и шину leds - это для баловства и отладки. Приятно, что уже можно глядеть свой же собственный видеосигнал марсохода меняя триггеры и частоты развертки. Все в оттенках зеленого сделал специально - ретро :) Bat-файл обновляет hex-файл памяти с шрифтом, текстом и программой и чистит проект, чтобы квартус применил измененный файл. Html-страница делает hex-файл из картинки.

Кстати, вопрос: есть ли рекомендуемая процедура чистки проекта от лишних файлов перед его выкладыванием?
Вложения:

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

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

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

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

Alvich пишет: Leka, нашел ветку на электрониксе, разбираюсь.
Можно попробовать и с внешним генератором.

Предполагаемая схема. Разделительную емкость сделал маленькой (200 пФ), чтобы уменьшить вероятность пробить вход. Входное сопротивление сделал маленьким (150 Ом + 75 Ом), чтобы уменьшить влияние паразитных емкостей (можно увеличить, но фронты будут сглажены).
Так что нужны еще выходные пины для REF_SIG и CLR_SIG.
Какой генератор предполагается?

Вложения:

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

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

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

Chaosorg пишет: Ну а я тем временем вроде как довел свой осциллограф до состояния пригодного для выкладывания. Понятно, что раз это мой первый опыт работы с ПЛИС вообще и с Quartus и Verilog в частности, то там есть еще над чем работать, мягко говоря... Но все-таки он работает:)

Посмотрю :) .

Кстати, вопрос: есть ли рекомендуемая процедура чистки проекта от лишних файлов перед его выкладыванием?

Проще, если все на Верилоге, без графики. Тогда, кроме исходников и данных, только top.qsf + top.sdc .

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

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

Leka, идею понял.
уточняю пины:
Клок 50 МГц - Pin_R8.
пины VGA: R - Pin_L13, G - Pin_K15, B - Pin_N14, Vsync - Pin_P14, Hsync - Pin - J14.
пины LVDS: первая пара (CMP_TRIG) - Pin_D9/C9 , вторая пара (CMP_SIG) - Pin_F8/E8.
сигнал REF_SIG - Pin_B6, сигнал CLR_SIG - Pin_B7.

Планирую использовать генератор Г4-158 он до 100 МГц и с аттенюацией в широких пределах.
Резистор 150 Ом на входе ненужен (не будет согласования с кабелем).
разделительную емкость может уменьшу, посмотрю...

Вопрос: Когда активен сигнал REF_SIG, вывод CLR_SIG в высокоимпедансном состоянии и наоборот, если да то ОК.

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

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

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Да, когда активен сигнал REF_SIG, и в "1", вывод CLR_SIG в высокоимпедансном состоянии,
в режиме хранения оба вывода в высокоимпедансном состоянии,
в режиме сброса оба вывода активны, и в "0".

Режим монитора - 1024*768 @ 70Гц (если надо, можно попробовать поменять, просто этот режим проверен).
В этом режиме длительность каждой строки 17.7 мксек.
Первые 10.7 мксек заряжается конденсатор до напряжения 0..3В, соответствующего данной строке,
потом в течении 3 мксек захватывается сигнал,
потом 4 мкс конденсатор разряжается до 0.
Поэтому частота входного сигнала д/б не ниже ~1 МГц. Так сделано для проверки концепции (чтобы не усложнять сразу проект).

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

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

Это понятно, а для проверки линейности будет ли достаточно поварьировать входным делителем (на постоянном токе) плюс сигнал синхро или необходим именно ВЧ сигнал?

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

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

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