Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Измерительное оборудование Осциллографы, мультиметры, анализаторы и другая измерительная техника необходимая каждому разработчику.

Закрытая тема
Опции темы
Непрочитано 20.09.2012, 20:31   #431
ВитГо
Прописка
 
Регистрация: 19.12.2009
Сообщений: 120
Сказал спасибо: 22
Сказали Спасибо 35 раз(а) в 22 сообщении(ях)
ВитГо на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

у меня получилось !!!


я сделал еще одну частоту в противофазу основной
и квартус разрешил мне работать с ней в posedge
то есть фактически это negedge для основной частоты !!

так что теперь в проекте я могу работать и по posedge внешней частоты так и по negedge !! (если написать один сигнал в двух вариантах фронта - то получал ошибку)

максимальная частота захвата сейчас 150 мгц !

жаль что АЦП на такие частоты наверно будут дорогие..
так что я наверное остановлюсь на 100 мгц..

причем хочу попробовать подключить в параллель два канала АЦП с 100 msps но с разными фазами управления - по идее общая частота должна получиться 200 msps (я правильно думаю ?)

кстати, вопрос на засыпку - а как делается предделитель входной частоты на verilog'e?
хочу иметь возможность задавать как минимуи 15ти битный предделитель частоты (для наблюдения за медленными сигналами) - но как только в проекте начинаю уменьшать 15-16ти битный регистр счетчика быстродействе сразу падает до 70-80 мгц (со 150 !!)

и еще один вопрос - как делать синхронизацию ? есть какие нить наработки ?
плис читает вход и ждет нужного уровня или лучше железную реализацию ожидания уровня ?
какую еще синхронизации можно сделать на плис ?
Реклама:
ВитГо вне форума  
Непрочитано 21.09.2012, 10:57   #432
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

Сообщение от ВитГо Посмотреть сообщение
у меня получилось !!!
Поздравляю я в этом не сомневался
Цитата:
жаль что АЦП на такие частоты наверно будут дорогие..
так что я наверное остановлюсь на 100 мгц..

хочу попробовать подключить в параллель два канала АЦП с 100 msps но с разными фазами управления - по идее общая частота должна получиться 200 msps (я правильно думаю ?)
Совершенно верно. Там конечно нужно тщательно выверять линии тактирования АЦП, но идея используется достаточно широко. Видел как китайцы ставили 4 АЦП со сдвигом фаз на 90 градусов, но ИМХО это уже изврат. Поучается не прибор, а показометр.
Цитата:
кстати, вопрос на засыпку - а как делается предделитель входной частоты на verilog'e?
хочу иметь возможность задавать как минимуи 15ти битный предделитель частоты (для наблюдения за медленными сигналами) - но как только в проекте начинаю уменьшать 15-16ти битный регистр счетчика быстродействе сразу падает до 70-80 мгц (со 150 !!)
насколько я понял, Вы хотите снизить частоту выборок, чтобы в память поместился более длительный интервал. В больших приборах для этого используют т.н. дециматор - устройство использующее цифровой фильтр и формирующее поток меньшей интенсивности. В простейшем случае вместо всех отсчетов АЦП берут только некоторые - каждый второй/третий..../..надцатый. При этом конечно может возникнуть проблема т.н. алиасов, когда происходит нарушение теоремы Котельникова, но если есть голова на плечах - вполне нормально. Т.е Вам, нужно сделать так, чтобы счетчик адресов переключался не на каждом такте, а имелась возможность пропуска тактов. Обычно это делается сигналом разрешения счета. При тактовой 100МГц максимальный объем пропуска не стоит делать больше 256. Посмотрите в проекте на МАХ-2, там отдельный счетчик, выход переполнения которого используется для формирования импульсов разрешения счета адреса и семплов.
Цитата:
и еще один вопрос - как делать синхронизацию ? есть какие нить наработки ?
плис читает вход и ждет нужного уровня или лучше железную реализацию ожидания уровня ?
какую еще синхронизации можно сделать на плис ?
Синхронизацию можно делать или аналоговую или цифровую. Для аналоговой нужен компаратор с регулируемым порогом срабатывания. Для цифровой - схема сравнения. По-любому синхросигнал сначала пропускается через 2 последовательных триггера для выделения фронта и получения сигнала начала работы. Основу схемы синхронизации составляет 2-х разрядный автомат состояний, переходы которого определяются сигналами старта захвата данных, импульсом синхронизации, сигналом окончания счета.

P.S. Используйте HEX-формат для отображения данных - получится гораздо нагляднее. 0100 - читается лучше, чем 256
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 21.09.2012 в 11:01.
MisterDi вне форума  
Сказали "Спасибо" MisterDi
ВитГо (21.09.2012)
Непрочитано 21.09.2012, 13:34   #433
ВитГо
Прописка
 
Регистрация: 19.12.2009
Сообщений: 120
Сказал спасибо: 22
Сказали Спасибо 35 раз(а) в 22 сообщении(ях)
ВитГо на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

А AD8132 потянет сигнал на 100 мгц ? (смотрю в сторону вашей входной аналоговой цепи из DSO)
а вместо AD9057 поставить AD9283-100 (который на 100 мгц)...
ВитГо вне форума  
Непрочитано 21.09.2012, 14:46   #434
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

100Мгц там не нужно, достаточно 50, реально нужно обеспечить работу до 30-35МГц. Аналоговая часть там не очень. Сделана была в самом начале, много нюансов тогда не знал. поэтому не учитывал. Сегодня гораздо лучше зарекомендовала себя схема на AD8065/8066, как у китайцев. Вместо AD603 с регулировкой усиления ШИМом, лучше брать что-то по-старше с цифровой регулировкой усиления. Т.к. из-за плавания напряжения питания от температуры сложно добиться стабильности коэффициента усиления и смещения. "Плавающий" ноль это не сильно страшно, можно ручками откорректировать, а с температурной нестабильностью усиления практически справится нельзя. Только прогрев до рабочей температуры или встроенный источник для калибровки.
Цитата:
вместо AD9057 поставить AD9283-100
Правильное решение! (с)
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 21.09.2012 в 14:48.
MisterDi вне форума  
Непрочитано 22.09.2012, 17:09   #435
ВитГо
Прописка
 
Регистрация: 19.12.2009
Сообщений: 120
Сказал спасибо: 22
Сказали Спасибо 35 раз(а) в 22 сообщении(ях)
ВитГо на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

а с цифровой регулировкой усиления это например какие ?
ВитГо вне форума  
Непрочитано 24.09.2012, 07:45   #436
ВитГо
Прописка
 
Регистрация: 19.12.2009
Сообщений: 120
Сказал спасибо: 22
Сказали Спасибо 35 раз(а) в 22 сообщении(ях)
ВитГо на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

получилась частота такта 100 мгц, и частота записи в SRAM 50 мгц
в принципе получилось и адрес выдавать раньше сигнала RAM_WR и RAM_CS выдавал вместе с RAM_WR
но потом перешел к inout шине данных и опять все параметры поплыли

сейчас получаю задержку RAM_CS относительно RAM_WR (см. вложенный файл) причем раньше все было синхронно, и код генерирующий эти сигналы я не трогал !

сигналы RAM_CS и RAM_WR определяются одновременно в следующем блоке:
Код:
always @(negedge clk_adc1)      // управление сигналом ram_wr и ram_cs ---------------------------------------
begin
   if (adc_capt==1)      
      case (clk_phase)
         0: begin
              ram_cs_capt‹=0;
              ram_wr_capt‹=0;
              clk_phase‹=1;
            end
         1: begin
              reg_adr_wr[18:0]‹=reg_adr_wr[18:0]+1; // приращение адреса для записи                                            
              ram_cs_capt‹=1;
              ram_wr_capt‹=1;
              clk_phase‹=0;
            end
      endcase
  else reg_adr_wr[18:0]‹=0; // если сканирование остановлено - сбросим счетчик адреса записи в ноль      
end
сами сигналы появляются на выводах ram_cs и ram_wr таким образом:
Код:
output wire              ram_wr;             // сигнал записи SRAM
reg                       ram_wr_capt;                             // при  захвате
reg                       ram_wr_read;                             // при чтении
assign                ram_wr= adc_capt ? ram_wr_capt : ram_wr_read;

output wire            ram_cs;             // сигнал выбора SRAM
reg                       ram_cs_capt;                             // при захвате
reg                       ram_cs_read;                             // при чтении
assign                ram_cs= adc_capt ? ram_cs_capt : ram_cs_read;
сигнал adc_capt = 1 когда работает захват данных с АЦП, соответственно по нему отдаются wr и rd либо от блока захвата либо от блока чтения
соответственно сигнал adc_capt длящийся, то есть выставляется в "1" и длиться пока не будут захвачены все 256к SRAM

откуда задержка у сигнала RAM_CS ?

p.s. вместо линии CS микрухи SRAM к сигналу RAM_CS наверное подключу OE

вот результаты симуляции http://vg.ucoz.ru/temp/2012-09-24-01.gif
ВитГо вне форума  
Непрочитано 24.09.2012, 14:26   #437
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

Цитата:
с цифровой регулировкой усиления это например какие ?
Посмотрите тут.
http://www.analog.com/en/specialty-a...cts/index.html
или тут http://www.ti.com/paramsearch/docs/p...ODE_STRY_PGE_T
или у других производителей по ключу Variable Gain Amplifier

Цитата:
откуда задержка у сигнала RAM_CS
RAM_CS RAM_WR описаны как wire, соответственно они не тактируются. сделайте их тоже регистрами.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Сказали "Спасибо" MisterDi
ВитГо (24.09.2012)
Непрочитано 28.09.2012, 13:32   #438
executer01
Частый гость
 
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
executer01 на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

Подскажите,
Я в проекте этого осциоллографа в Квартусе перенастроил порт дисплея LCD_DATA на вход-выход, скомпиллировал. Потом перешел в Nios, проверил файл system.h, но в нем LCD_DATA_HAS_IN так и остался = 0. Как правильно перекомпиллировать конфигурацию процессора чтобы обновился system.h?
executer01 вне форума  
Непрочитано 29.09.2012, 16:39   #439
executer01
Частый гость
 
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
executer01 на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

Никак не получается. Уже залез и в bsp editor, пересоздал директорию _BSP - но в новой папке все по-старому. Значит не обновлен *.sopcinfo файл? как его обновить из Quartus?
executer01 вне форума  
Непрочитано 30.09.2012, 13:08   #440
executer01
Частый гость
 
Регистрация: 04.10.2009
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
executer01 на пути к лучшему
По умолчанию Re: Портативные осцилографы - своими руками

Чтото на выходных тут тихо...
Проблема такая: при прошивке конфигурации (*.sof) с портом LCD типа OUT - экран нормально работает, но, понятно, ничего с этих выходов не прочитать. При прошивке конфигурации с портом типа BiDir на экране идет шум (не работает). В программе порт инициализирую на выход
IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DATA_BASE, 0xFFFF);
Не пойму в чем разница, ведь порт с DIRECTION=1 должен становится выходным?
executer01 вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люстра Чижевского своими руками Alexeii Электроника - это просто 134 17.07.2016 16:55
Универсальный пульт управления своими руками Alex95_mobile Видеотехника 8 09.10.2011 17:00
Акустика своими руками Mr.CG Аудиотехника 4 23.11.2010 18:20
Компьютерные колонки своими руками tabard Делимся опытом 0 17.10.2010 19:36
PoE своими руками illias Источники питания и свет 9 14.04.2010 16:39


Часовой пояс GMT +4, время: 05:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot