реклама на сайте
подробности

 
 
36 страниц V  « < 22 23 24 25 26 > »   
Reply to this topicStart new topic
> Народный осциллограф USB 3.0, Возможно ли создать общими услилиями?
one_man_show
сообщение Apr 11 2015, 21:02
Сообщение #346


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



Может блок-схему отобразите, чтобы пробегающие по теме понимали, что делается.


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 12 2015, 07:22
Сообщение #347


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Схема 1. Концепт одного канала.
В режиме логического пробника, на опорах постоянно поддерживается уровень "0" и "1" (например, 0.8 и 1.7В), получается 1.5-разрядный flash АЦП.
В режиме аналогового пробника периодических сигналов, на одной опоре постоянно поддерживается требуемый уровень триггера (например, 1.5В), а на другой меняется с каждой "строкой", пробегая требуемый диапазон с нужным шагом (например, от 100мВ до 3100мВ с шагом 5мВ). Выход компаратора защелкивается в сдвиговом регистре (одной строки) с эквивалентной тактовой 2ГГц.
Далее варианты, строки либо сразу выводятся (UART/VGA/...), либо пишутся во внутреннюю память ПЛИС для обработки ("цифровой фосфор" и тп).
Опоры проще всего формировать RC цепочкой, недостаток - малое время хранения из-за больших утечек (2пина*30мкА/пин=60мкА по даташиту для CycloneV). Преимущество - простая пассивная обвязка позволяет сразу закладывать в дизайн скоп для отладки.

Схема 2. Текущая для проверки концепта, навесной монтаж. Вход синхронизации отсутствует, тк тестовый сигнал генерируется внутри ПЛИС. Постоянный уровень сигнала задается потенциометром, мультиметром можно проконтролировать правильность отображения "нулевой" линии.
Сейчас добавляю вход синхронизации, и меняю код - чтобы можно было смотреть сигналы с внешнего генератора.

Исходники начну выкладывать, когда сделаю простой вывод на VGA. Но, у меня основная цель - практическая проверка своего "Си как HDL", а "скоп за 30 коп" - просто как одна из подходящих практических задачек для этого. Поэтому выкладывать буду только в том виде, каком использую для синтеза, те без ручного перевода в Верилог. Но тк это почти Си - алгоритм будет понятен.
Модуль для захвата сигнала на 2Гвыб/сек с выдачей по 8бит на 250МГц написан на Верилоге, его сейчас выкладываю(как есть):
Код
module ser8 (
    input clka, clkb, clkc, clkd,
    input din,
    output reg [7:0] q    
);
    reg
        a, b, c, d, A, B, C, D,
        aa, ba, cb, dc, Ad, BA, CA, DC,
        aaa, baa, cba, dcb, Adc, BAc, CAc, DCA,
        DCAc;

    always@(posedge clka)  a <=  din;
    always@(posedge clkb)  b <=  din;
    always@(posedge clkc)  c <=  din;
    always@(posedge clkd)  d <=  din;
    always@(negedge clka)  A <=  din;
    always@(negedge clkb)  B <=  din;
    always@(negedge clkc)  C <=  din;
    always@(negedge clkd)  D <=  din;    

    always@(posedge clka)  aa <=  a;
    always@(posedge clka)  ba <=  b;
    always@(posedge clkb)  cb <=  c;
    always@(posedge clkc)  dc <=  d;
    always@(posedge clkd)  Ad <=  A;
    always@(negedge clka)  BA <=  B;
    always@(negedge clka)  CA <=  C;
    always@(negedge clkc)  DC <=  D;    

    always@(posedge clka)  aaa <=  aa;
    always@(posedge clka)  baa <=  ba;
    always@(posedge clka)  cba <=  cb;
    always@(posedge clkb)  dcb <=  dc;
    always@(posedge clkc)  Adc <=  Ad;
    always@(posedge clkc)  BAc <=  BA;
    always@(posedge clkc)  CAc <=  CA;
    always@(negedge clka)  DCA <=  DC;
    
    always@(posedge clkc)  DCAc <=  DCA;    
    
    always@(posedge clka) q <= { DCAc, aaa, baa, cba, dcb, Adc, BAc, CAc };

endmodule

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Apr 13 2015, 12:51
Сообщение #348


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



LEVERAGING FPGA AND CPLD
DIGITAL LOGIC TO IMPLEMENT
ANALOG TO DIGITAL CONVERTERS

http://www.latticesemi.com/~/media/Documen...cument_id=36525
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 13 2015, 13:18
Сообщение #349


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Огурцов @ Apr 13 2015, 19:51) *

ну да, только там предлагают сделать обычный SAR/сигма-дельту, когда "опорное напряжение" компаратора меняется сильно быстрее "постоянного" входного сигнала (ну и соответственно десяток кГц частота преобразования раз УВХ нет),
а тут наоборот сигнал меняется сильно быстрее чем плавно изменяемое, постоянное по сравнению с периодом сигнала, "опорное напряжение" компаратора.
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 16 2015, 12:09
Сообщение #350


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Получил первую "осциллограмму" на VGA (долго не мог найти дурацкую ошибку).

Вроде как обозначилась основная проблема в "скопе за 30 коп" - Квартус плохо выравнивает пути от входного пина до триггеров, тактируемых от многофазного клока, и разбег зависит от дизайна в целом. В результате некоторые отсчеты "наползают" друг на друга. Так что "модуль захвата", надо как-то оптимизировать.
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 16 2015, 13:51
Сообщение #351


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Разбег путей виден, если анализировать данные, полученные по UART. На глаз это незаметно, если не растягивать картинку, и выглядит замечательно.
Go to the top of the page
 
+Quote Post
Politeh
сообщение Apr 17 2015, 08:45
Сообщение #352


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829



Работаю на аналоговым входом. Пока показать нечего, но читаю, разбираюсь, думаю скоро подойду к моделированию.
Буду делать те части осциллографа которые считаю по силам мне, т.е. аппаратная часть, пока что хотя бы на уровне концепта и кусков схем отдельных блоков.
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 18 2015, 17:00
Сообщение #353


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Код
0000000000000000  0000000000000000
0000000011000000  0000000011000000
0000000111000000  0000000101000000
0000001111000000  0000001001000000
0000011111000000  0000010001000000
0000111111000000  0000100001000000
0001111111000000  0001000001000000
1111111111111111  1110000000111111
1111111111111111  0000000000000000

Данные компаратора представляют собой "заливку" областей "выше" и "ниже" сигнала, см. левый рисунок. Нужно выделить линию. Реализованный алгоритм: обнуляются все "1", граничащие по ортогоналям только с "1" (диагональные соседи не учитываются), см правый рисунок.
По такому алгоритму нужно хранить в буфере 3 видео-строки, что м/б накладно. Предложит кто другой алгоритм?

По поводу полосы - судя по-всему, ограничена большими паразитными емкостями платы (Cyclone V GX Starter Kit), а не LVDS-приемниками, и померить не удастся. 62,5МГц меандр (получаю от независимого генератора 125МГц на плате) видится, как пила с острыми зубьями (вывожу 500*1000 точек на VGA@70Гц, выборки уменьшил до 1.2Гвыб/сек, чтобы проще было согласовать с 75МГц VGA).

Если кто захочет поэкспериментировать со своей платой - выкладывайте qsf с пинами, попробую синтезировать (исходники выложу, но они не на Верилоге). Текущая схема:

Сообщение отредактировал Leka - Apr 18 2015, 17:06
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 18 2015, 20:27
Сообщение #354


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



просто xor двух последовательных значений с компаратора будет работать не сильно хуже.
только на совсем горизонтальных линиях не очень красиво, но можно и это убрать если гистерезис сделать меньше шумов или шумы больше гистерезиса sm.gif
Go to the top of the page
 
+Quote Post
blackfin
сообщение Apr 19 2015, 02:17
Сообщение #355


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(Leka @ Apr 18 2015, 20:00) *
По поводу полосы - судя по-всему, ограничена большими паразитными емкостями платы..

AD9484 стОит 42$. В режиме стробоскопа может семплировать сигналы в полосе до 1 ГГц.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Apr 19 2015, 02:49
Сообщение #356


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Реализованный алгоритм: обнуляются все "1", граничащие по ортогоналям только с "1" (диагональные соседи не учитываются), см правый рисунок.

1. берём колонку
2. сдвиг вниз(по рисунку)
3. побитовая инверсия
4. побитовое-И с исходной колонкой
---------------------
Также на рис. колонка размером в 9 бит, хотя разрешение сигнала <=4 бит. Может сразу паковать: хранить номер бита, в котором единица?

А если использовать структуру, которая считает количество единиц, то она может выполнить обе, описанные выше операции.
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 19 2015, 06:10
Сообщение #357


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(blackfin @ Apr 19 2015, 09:17) *
AD9484 стОит 42$. В режиме стробоскопа может семплировать сигналы в полосе до 1 ГГц.

за 50$ АЦП от hittite HMCAD15хх куда интереснее выглядит.
а вот AD9609 - 5$, полоса при этом лишь немного меньше - 700МГц.
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 19 2015, 13:19
Сообщение #358


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Такое пришло в голову: для рисования можно принять, что под "1" всегда "1" (хотя это не так для стробоскопа из-за шумов и сбоях синхронизации, когда за период уровень триггера пересекается несколько раз). В этом случае линию можно рисовать по 2 строкам, а не 3.

Делать "классический" осциллограф не имеет никакого смысла, причины уже приводились в этой ветке, можно еще добавить. Имеет смысл делать простой "осциллограф" в рамках освоения новой технологии, например - ПЛИС. Имхо.


Цитата(smalcom @ Apr 19 2015, 06:49) *
Также на рис. колонка размером в 9 бит, хотя разрешение сигнала <=4 бит.

Это только на рисунке, реально сигнал 9разрядный, и в колонке 512 отсчетов.
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 19 2015, 16:06
Сообщение #359


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата
Делать "классический" осциллограф не имеет никакого смысла, причины уже приводились в этой ветке, можно еще добавить. Имеет смысл делать простой "осциллограф" в рамках освоения новой технологии, например - ПЛИС. Имхо.

а никто не говорит про классический осциллограф, но вот чем lvds компаратор в качестве АЦП лучше того же ad9609 для стробоскопа? "эффективная частота сэмплинга" даже у 2ГГц lvds компаратора для 8 бит, чтобы просканировать все 256 напряжений, получается заметно меньше, а полоса при этом вряд ли больше.
с компаратором смысл имеет только если брать adcmp572 из-за 8ГГц входной полосы.
Go to the top of the page
 
+Quote Post
Leka
сообщение Apr 19 2015, 18:43
Сообщение #360


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



1). Чтобы АЦП использовать в режиме стробоскопа, нужна а) схема измерения временного сдвига отсчетов относительно момента синхронизации, б) схема добавления случайной фазы в клок. От точности этого измерения зависит максимальная эквивалентная частота выборок, а от скорости этого измерения - максимальная частота осциллограмм. Хороший клок, это сложно и дорого, а точное измерение временных интервалов, это медленно.
2). Чтобы по-максимуму использовать внешний компаратор, придется либо городить внешний клок на эквивалентную частоту выборок, и внешний десериализатор, либо добавлять все то-же самое, что и для АЦП (измерение времени + изменение фазы).

В качестве примера, предлагаю продумать снятие осциллограммы для коротких повторяющихся(те постоянной формы), но непериодических(с большим джиттером) импульсов. Например, длительность импульсов 5нс, период повторения - 5мкс с джиттером 500нс.
Go to the top of the page
 
+Quote Post

36 страниц V  « < 22 23 24 25 26 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 04:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016