Последняя редакция схем/плат версии 2.0 - NS_V2_0_rev3_7
Прошивка для 2.0 - NS_V2_0_rev1_7E_Firmware Вкл./Отк. каналов А/В происходит по нажатию соотв. кнопок когда ни одно меню не выбрано, при выборе меню Sync эти кнопки перекл. источник синхронизации.
Для конфигурации DS1085 прошить соответствующей прошивкой МК, передернуть питание, подождать некоторое время пока на экране ЖК не выведется надпись об успешном завершении и выключить осцилл. Адрес DS1085 устанавливается равным 0x59 (89 по десятичной системе).
Данная прошивка просто делает автоматом то что можно сделать вручную из программы на ПК и если настраивать вручную из программы то она не нужна.
Внимание! При конфигурации к I2C не должно быть подключено ничего кроме DS1085.
Схема ревизия 3.2 - NS_3.0_rev_3.2.pdf Схема соединения ЖК с 16-ти битной шиной(только для ревизий ниже 3.2, в 3.2 HC573 уже есть на основной плате) - NS_3.0_HC573.pdf BOM(список компонентов) - BOM_NS3_rev3_2.htm
//---------------------------------------------------------------------------------------------------------- Прошивальщик МК (автор Ильдар) - NSFlashLoader2. Утилита для перепрошивки СР2102 VID/PID под NeilScope3 (автор Ильдар) - NSCP2102Utilite2.rar. Использование данных VID/PID для перепрошивки СР2102 под другие устройства категорически запрещено, они были получены по запросу у Silicon Laboratories Inc. и предназначены для использования только с NeilScope3 или другими версиями NeilScope.
Утилита для теста осциллографа - ns_test_util. Для запуска нужно скачать и установить Python 3.4 и PyQt5, при установке добавляем переменные окружения. Распаковать архив куда нибудь и набрать из этой папки в консоли - "python main.py"
Для последующих обновлений просто запускаем NSFlashLoader, и обновляемся. Джампер при этом трогать уже не нужно.
//---------------------------------------------------------------------------------------------------------- . . . Важные замечания по сборке
На плате не указана перемычка с 10-го вывода(INTRL) 74НС4052(U15) на вывод SWDIO МК, можно и просто подпаять пока на +3.3В в любое удобное переходное отверстие.
Я так и не понял зачем в прореживатель теперь приходит сигнал от срабатывания триггера.
Ну вот и заметили. А объясню это двумя способами, не знаю, какой понятнее 1. представьте обычный аналоговый осцилл на ЭЛТ, Вы настроили развертку и триггер и наблюдаете неподвижную картинку. А что Вы будете наблюдать, если время между срабатыванием триггера и началом отображения будет хаотически изменяться ? 2. в Вашей схеме элементы inst6 и inst10 тактируются по сигналу EN с дециматора inst1, т.е. квантованно с интервалом следования EN. А на самом деле реальный сигнал пересекает порог триггера в произвольный момент работы inst1. Этот дефект наблюдается только в режиме без предыстории(лично я этим режимом никогда не пользуюсь), что я и отразил на схеме. К тому же, чем больше период развертки, тем страшнее Вот и предлагаю "ощупывать" входной сигнал(как в осцилле, так и в ЛА) с максимальной частотой, а после срабатывания триггера переходить на заданную !!!
Quote (LeftRadio)
А почему?? Неужели нельзя например тот же обмен по SPI отобразить на ЖК?
Отобразить можно, и даже в байты упаковать МК сможет, а вот провести анализ произвольного сигнала уже нет. Тут уже нужны большой экран и мышка, т.к. двигать маркеры при помощи клавиатуры карманника очень неудобно, к тому же необходимо выводить много сопутствующей информации, что крайне захламит экран Но еще раз повторяю, это мое видение, если кого-то эти неудобства не пугают, то можете смело реализовывать и это. Лично я бы использовал карманник, чтобы просто захватить сигнал и оперативно посмотреть правильность захвата, потом скинуть все на РС или карточку и уже там не спеша все детально анализировать, т.к. в "походных" условиях на это просто не будет времени. Кстати, потому и ввел сжатие, чтобы захватывать с запасом !!!
Quote (LeftRadio)
если есть готовые опенсорсные плагины то задача своего софта во много раз упрощается
Эту ссылку я уже много раз приводил, там найдете ответы на многие вопросы.
Quote (kison)
Сам по себе счетчик предыстории не нужен. Он автоматом получается из объема памяти и счетчика после триггера.
Не совсем так. Совершенно очевидно, что использовать весь объем памяти не всегда нужно. Например, Вы что-то налаживаете, развертка настроена, триггер настроен и на экране Вы наблюдаете статическую картинку с 80 отсчетами предыстории и 400 отсчетами послеистории(классический пример - телевизионный сигнал). Понятно, что совершенно излишне захватывать больше, если Вам нет надобности перемещаться по буферу ! И в динамике отображения выиграем !
P.S. Влад, по какой причине Вы начали кардинально переделывать готовый рабочий триггер полугодовалой давности ? Что-то не устраивало в его работе ? Мне, например, непонятно зачем опять изобретать велосипед ? Но Вам, конечно, виднее
Сообщение отредактировал LazyCat - Суббота, 24.03.2012, 11:51
А кстати зачем? Ведь уже есть дециматор для осцилла, почему его не использовать а вставлять дополнительный?
Quote (LazyCat)
Этот дефект наблюдается только в режиме без предыстории(лично я этим режимом никогда не пользуюсь), что я и отразил на схеме. К тому же, чем больше период развертки, тем страшнее
Мне кажется надуманая проблема.
Quote (LazyCat)
Вот и предлагаю "ощупывать" входной сигнал(как в осцилле, так и в ЛА) с максимальной частотой, а после срабатывания триггера переходить на заданную !!!
И что мы получим? Непредсказуемое время между срабатыванием триггера и последующими выборками? Если сигнал между двумя выборками быстро изменяется, то это означает присутствие частот выше Fs/2 и в этом случае осцилл имеет полное право отображать что ему хочется И синхронизироваться от этих частот, учитывая как они пересекают порог триггера мне кажется просто ненужным. Я не видел при работе осцилла каких либо проблем с синхронизацией как с вкл. предысторией, так и с выкл.
Quote (LazyCat)
Эту ссылку я уже много раз приводил, там найдете ответы на многие вопросы.
Сыровато оно там все Хотя покопаться стоит, может чего полезного и есть
Quote (LazyCat)
Понятно, что совершенно излишне захватывать больше, если Вам нет надобности перемещаться по буферу ! И в динамике отображения выиграем !
Никто больше захватывать и не собирается, именно поэтому и решено было "вынести" "счетчик предыстории" в МК.
Quote (LazyCat)
Влад, по какой причине Вы начали кардинально переделывать готовый рабочий триггер полугодовалой давности ? Что-то не устраивало в его работе ? Мне, например, непонятно зачем опять изобретать велосипед ? Но Вам, конечно, виднее
Кардинально не переделывал, просто переписал на верилоге, ну а потом внес изменения, какие я написал чуть выше, ну и добавил управляемую задержку на срабатывание триггера, что бы не было ложных срабатываний от помех/шумов на медленно изменяющемся сигнале, при необходимости отключается. ---
Вообще просили ссылочку на открытые плагины к USBee, а не ссылку на сырой софт. Что то проект не впечатлил совсем.
Ссылочки встречал на казусе, будет время поищу. А проект действительно очень сырой, но там можно поискать различные интересные алгоритмы.
Quote (LeftRadio)
Мне кажется надуманая проблема.
Значит, всетаки не поняли Попробую объяснить третьим способом - математическим. Предположим для простоты, что Вы наблюдаете синусоидальный сигнал амплитудой 100 (это показания АЦП), а в дециматор записывается число, например, 20(дециматор вычитающий для определенности). Порог установили на 50. И что получается ? Допустим, что при первом захвате реально порог был превышен, когда в дециматоре было число 5, т.е. сигнал EN возникнет через 5 тиков, сработает триггер и начнется запись в ОЗУ, причем в первую же ячейку будет записано не напряжение порога(сигнал то уже вырос за 5 тиков), а несколько больше - пусть 55. Когда захват закончился, Вы все это отобразили на экране. Теперь на втором захвате реально порог превысился, когда в дециматоре было число 15, т.е. все произойдет как и раньше, но в первую ячейку будет уже записано бОльшее число - пусть 65. Когда захват закончится Вы отрисуете это на экране - в правильном осциллографе этот сигнал должен наложиться один в один на предыдущий(в случае периодического сигнала). У нас же этого не получается В идеале значение в первой ячейке буфера должно совпадать со значением порога, как в аналоговых осциллах !!! Для ЛА эта проблема еще серьезнее. Именно поэтому я предложил ощупывать порог на максимальной скорости. Естественно, мы говорим только про режим без предыстории.
Quote (LeftRadio)
именно поэтому и решено было "вынести" "счетчик предыстории" в МК.
Именно это действо и непонятно. Ведь гораздо проще и универсальнее(описание заняло аж 2 страницы форума ) было бы добавить в ПЛИС регистры на предысторию, а МК может в это время даже "спать". Удобств это совершенно не добавило, а неудобств хоть отбавляй. Кроме того мне непонятно Ваше желание теперь делать клон проекта kison-a. Раньше Вы были за самобытность
Quote (LeftRadio)
ну и добавил управляемую задержку на срабатывание триггера
В идеале значение в первой ячейке буфера должно совпадать со значением порога, как в аналоговых осциллах !!! Для ЛА эта проблема еще серьезнее. Именно поэтому я предложил ощупывать порог на максимальной скорости. Естественно, мы говорим только про режим без предыстории.
Не знаю как для ЛА, а для осцилла похоже на бред, если между отсчетами сигнала записываемого в память например 20 тактов, и такт равен 20нс, то получаем 400нс между семплами, то есть 250кГц дискретизация, дальше, если сигнал на входе по частоте больше 125кГц то осцилл его правильно отобразить не сможет и если допустить что это "помеха" накладывающаяся на основной сигнал то синхронизироваться от нее нет никакого смысла, вообще эту "помеху" нужно фильтровать, а не учитывать при синхронизации. Эта "проблема" возможна только на частотах близких к Fs/2, а наблюдать мы их не сможем, нужно будет либо понижать коэффициент деления или если уже некуда то предел. Если я совсем туп и не понимаю, пожалуйста нарисуйте картинку.
Quote (LazyCat)
Именно это действо и непонятно. Ведь гораздо проще и универсальнее(описание заняло аж 2 страницы форума ) было бы добавить в ПЛИС регистры на предысторию, а МК может в это время даже "спать". Удобств это совершенно не добавило, а неудобств хоть отбавляй. Кроме того мне непонятно Ваше желание теперь делать клон проекта kison-a. Раньше Вы были за самобытность
Не проще и не универсальный, из "неудобств" только разрешить триггер через промежуток времени отсчитываемый внутри МК таймером. Ресурсов в Плис сейчас занято 463 мкроячейки, это без регистра для предыстории и счетчика для нее же, и без ЛА. Возможно даже придется отказываться от некоторых регистров и писать с МК каждый запуск записи. Я и сейчас за "самобытность" , но что поделаешь, всем хочется дешево/экономно по аккуму и т.д., вот и выходит что так или иначе я пришел к тому же аналогу что и у kison-а, просто он этот "путь" проделал раньше То же самое по ПЛИС, почему бы не взять решение если я в сравнении вижу его преимущества? Только потому что не мое? Возможно, я кстати тоже не люблю повторять чужие схемы один-в-один, всегда чего нибудь по своему переделываю, или беру только принцип и леплю полностью свое, так и в ПЛИС, я уверен что если сравнить с дизайном kison-а то найдется много отличий при сходных в некоторых частях дизайна построениях Во загнул то
Quote (LazyCat)
Вещь, конечно, спорная, но Вам виднее.
Ну так отключается же, и поверте очень нужна, я попользовался осциллом и могу это утверждать. А вот проблемы которую Вы описывали не замечал... ---
я уверен что если сравнить с дизайном kison-а то найдется много отличий при сходных в некоторых частях дизайна построениях
Отличий очень много. Одинаков вообще только один блок/модуль - счетчик выборок он же WinCounter. Все остальное разное. Дециматор теперь похож, но все равно не одинаковый. У меня на последней сборке 469LE занято. Это еще ЛА только c прореживанием. В ПЛИС кроме того сидят два канала 12 битного ШИМ - 38 триггеров. Совсем по другому интерфейс к памяти. Ну и чтение синхронное и читает память тоже плис. Задание параметров - SPI, 32 триггера тоже как бы "лишние". Чего у меня попроще - триггер. А что похожи не удивительно - мы даже родились в один день В смысле число/месяц, не год.
Не знаю как для ЛА, а для осцилла похоже на бред...
... и еще целой кучей буковок Вы хотели сказать, что отсчеты АЦП через интервал следования сигнала EN у Вас отличаются на единицу ??? Ну это уже слишком !!!
Quote (LeftRadio)
Не проще и не универсальный, из "неудобств" только разрешить триггер через промежуток времени отсчитываемый внутри МК таймером.
Именно проще и универсальнее, а неудобства мы обсуждали целых 2 страницы, а таймер тут совершенно ни при чем(он будет в любом случае и мы это решили еще полгода назад) !!!
Quote (LeftRadio)
и поверте очень нужна, я попользовался осциллом и могу это утверждать
И поверьте, я пользовался многими осциллами(и цифровыми и аналоговыми) и ни разу эта возможность мне не понадобилась Да и не было ее в этих осциллах
P.S. А что касается отличий и совпадений, то еще не вечер, доработка ведь продолжается и идет в одном направлении Кстати, очень много поговорили про аналоговую часть, но так и не пришли к результату - порядок фильтра и схемотехника остались нерешенными Да и вопрос с интерливом повис в воздухе
Я так понял от интерлива отказались раз и навсегда... Хотя на плате предусмотрен 74НС4052.
Именно об этом противоречии я и говорю. Если фильтр будет хотя бы 3-го порядка, то об интерливе не может быть и речи и эта микруха совершенно лишняя. А если фильтр останется 1-го порядка, как сейчас, то интерлив очень даже не помешает(частный пример я приводил) !!!
Вас отличаются на единицу ??? Ну это уже слишком !!!
Ну конечно не на единицу , но оно этому равносильно! Так как записываем мы всего две точки. Или Вы хотите сказать, что если запустить АЦП на 100МГц и записывать каждую 10 точку, то это не эквивалентно дискретизации 10МГц? Котельников отдыхает в таком случае И похрен что в этом примере между нашими отсчетами уложилось 10 отсчетов АЦП, все равно частота на входе не должна превышать 5МГц.
Quote (LazyCat)
а таймер тут совершенно ни при чем(он будет в любом случае и мы это решили еще полгода назад) !!!
Какой таймер? Н помню что мы решили, но осцилл в прошлой ревизии работал и без таймера в МК, ну не считая таймера для ШИМ
Quote (LazyCat)
И поверьте, я пользовался многими осциллами(и цифровыми и аналоговыми) и ни разу эта возможность мне не понадобилась :(
Верю и спорить не буду, не нужно Вам, зато нужно мне Я кстати очень мало пользовался промышленными осциллами, финансы не позволяют их покупать, а работа несколько по другому профилю.
Quote (LazyCat)
Кстати, очень много поговорили про аналоговую часть, но так и не пришли к результату - порядок фильтра и схемотехника остались нерешенными Да и вопрос с интерливом повис в воздухе :(
Поздно вы про фильтр поговорили, если заметите я в этом обсуждении практически не принимал участия, да и схема аналога меняться уже не будет в этой версии, а следующая версия не планируется.
Quote (volk0203)
Я так понял от интерлива отказались раз и навсегда... Хотя на плате предусмотрен 74НС4052.
Вам лень было прочитать то что я писал или уже забыли , повторю, нет не раз и навсегда, именно для возможности "внедрения" интерлива и был оставлен ключ, также разделен клок на АЦП и под клок выделено два выхода ПЛИС, не получится сделать и бог с ним, но возможность такую я оставил. Тем более что последние симуляции в ПЛИС дают надежду на то что интерлив сделать можно ---
Нет войне!
Сообщение отредактировал LeftRadio - Воскресенье, 25.03.2012, 15:05
Значит, часть осчетов будет ниже порога триггера, а часть выше !!! И при циклическом захвате сигнала это соотношение будет хаотически меняться, т.е. в первую ячейку буфера будут записываться различные значения, а при выводе на экран это будет выглядеть как хаотический сдвиг фазы(т.е. "дрожание"). Я - не авторитет на этом форуме, и пусть этот дефект объяснит кто-нибудь другой !!! Доступнее у меня уже не получится
Quote (LeftRadio)
Поздно вы про фильтр поговорили
Вообще-то, про фильтр я говорил и полгода назад, но тогда решили всетаки оставить интерлив(кстати, Вы настояли ). А сейчас kison оказался категорически против интерлива и мы снова заговорили про фильтр. Кстати, мой аргумент с меандром вызвал много критики с его и Вашей стороны, хотя никто и не понял суть примера И я вместе с volk0203 ошибочно решили, что от интерлива опять оказываемся, ведь фильтр остался не на той частоте. В-общем, все запуталось
а при выводе на экран это будет выглядеть как хаотический сдвиг фазы(т.е. "дрожание")
А теперь подумаем, на какую величину фазы будет "дрожание"??? Для примера 100МГц дискретизации АЦП, коэффициент прореживания 10, то есть "фактическая" дискретизация 10 МГц, входная частота любая не кратная дискретизации и не выше Fs/2.
Авторитет, не авторитет, у нас тут не хата ---
Нет войне!
Сообщение отредактировал LeftRadio - Воскресенье, 25.03.2012, 15:37
Хотел ответить, но раз Вам кажется что у нас тут "хата", то не буду и считаю что в таком случае Вам здесь не место По крайней мере недельный бан, захотите нормально общаться пожалуйста, а если нет значит нет. ---
Нет войне!
Сообщение отредактировал LeftRadio - Воскресенье, 25.03.2012, 17:45
А сейчас kison оказался категорически против интерлива и мы снова заговорили про фильтр.
Я не против интерлива. Я - за фильтр. Но вот они друг друга исключают. Есть фильтр - интерлив ничего не даст. Нет фильтра - можно вводить интерлив, но иногда прибор будет сильно искажать форму сигнала. Мне кстати понравилось то, что предлагал Arpad - добавить первый порядок после буфера перед низкоомным делителем. Плюс в усилителе легко вводится еще первого порядка звено. Плюс на выходе звено первого порядка. И уже 18дб - не так чтоб и плохо. Если срез будет на 10МГц, то на 25МГц 22-23 дб ослабления вышло бы. Это почти уже хорошо. Что есть сейчас - первый порядок и интерлив вполне будет работать. Но хорошо это или плохо - еще вопрос. Форма может меняться. В двухканальном варианте одна, в одноканальном другая. Я такое не люблю.
Quote (LazyCat)
а при выводе на экран это будет выглядеть как хаотический сдвиг фазы(т.е. "дрожание").
С этим бороться нереально в плис, увы. Это уже задача МК. Сигнал то может быть достаточно высокочастотным. Например синусоида 10МГц - а она "в полосе", значит это законный сигнал. И ее надо отрисовать и отрисовать правильно. Но имеем всего 5 точек на период. Если сигнал растянут так, чтоб на экране было 2-3 периода, то что ни делай в плис - синусоида будет хаотично сдвигаться. Потому что на одну реальную точку придется еще 20-30 полученных уже интерполяцией. А триггер где то между реальными, т.е совпадает с какой то интерполируемой точкой. Но вот с какой - узнать нельзя. Там достаточно непростая отрисовка может выйти. Ну чтоб не скакало ничего.
Форма может меняться. В двухканальном варианте одна, в одноканальном другая. Я такое не люблю.
А почему она будет меняться? Ведь полоса то одна и та же.
Quote (kison)
Например синусоида 10МГц - а она "в полосе", значит это законный сигнал. И ее надо отрисовать и отрисовать правильно. Но имеем всего 5 точек на период. Если сигнал растянут так, чтоб на экране было 2-3 периода, то что ни делай в плис - синусоида будет хаотично сдвигаться.
Это понятно, я так и написал что эта проблема будет проявляться только на частотах близких к Fs/2, а не чем больше период между отсчетами с дециматора тем хуже как писал LazyCat. Причина одна - мало точек на период исследуемого сигнала.
Quote (kison)
Но вот с какой - узнать нельзя. Там достаточно непростая отрисовка может выйти. Ну чтоб не скакало ничего.
А мне вот интересно какая же должна быть отрисовка что бы "правильно" отобразить такой сигнал? Мне видится только один способ - писать всегда хоть с небольшой предысторией, затем интерполировать промежуточные точки и отрисовывать уже с нужной точки. ---
Нет войне!
Сообщение отредактировал LeftRadio - Воскресенье, 25.03.2012, 21:20
Я не против интерлива. Я - за фильтр. Но вот они друг друга исключают. Есть фильтр - интерлив ничего не даст. Нет фильтра - можно вводить интерлив, но иногда прибор будет сильно искажать форму сигнала... Что есть сейчас - первый порядок и интерлив вполне будет работать. Но хорошо это или плохо - еще вопрос. Форма может меняться. В двухканальном варианте одна, в одноканальном другая.
Тут я с Вами совершенно согласен. Именно это я всегда говорил. Хоть тут у нас взаимопонимание(хотя Ваша реакция на 10Мгц меандр сюда не вписывается)
Quote (kison)
Например синусоида 10МГц - а она "в полосе", значит это законный сигнал. И ее надо отрисовать и отрисовать правильно.
Например синусоида 1кГц (или 100Гц или 50Гц) или треугольный(пилообразный) сигнал этой частоты. Это все реальные сигналы и их надо правильно отображать !!! И как Вы неправильно не обратили внимания разговор шел об относительно медленно изменяющихся сигналах, т.е. с достаточно пологими фронтами И тут дело совершенно не в интерполяции(она нужна только когда число выборок меньше числа отображаемых отсчетов на экране, а это касается высокочастотных сигналов, в остальных случаях интерполяция не нужна и кроме временных затрат абсолютно ничего не дает). И ПЛИС спокойно справится с "гулянием" фронтов, и всем понятно почему !!! Ну а про эту же ситуацию в ЛА можете сами подумать.
P.S. А про бан я не переживаю Все знают, что тут так принято : если Владу ответить нечего, то он сразу банит !!!
А почему она будет меняться? Ведь полоса то одна и та же.
Если не отфильтровать гармоники, то при обычной дискретизации они начнут модулировать сигнал по амплитуде. Там гетеродин получается. А с включением интерлива - начнут влиять на форму. Первый порядок не позволяет нормально обрезать спектр. Вот сейчас осциллографы чаще всего при полосе 60-100МГц имеют дискретизацию в гигасэмпл. Все из за недостаточной фильтрации. Впрочем там могут и маркетинговые соображения быть. Например осцилл с полосой в 60МГц и хорошим фильтром вполне нормально может работать с 500 мегасэмплами. Но гигасэмпл то звучит привлекательней Хоть и одинаковая картинка в итоге.
Quote (Malevich)
хотя Ваша реакция на 10Мгц меандр сюда не вписывается
Вписывается. Нормально отрисовать меандр 10МГц - нужна 7 гармоника. Да это и не очень нормально, но хоть напоминать прямоугольник будет. Итого нужна полоса в 70МГц и дискретизация > 140 мегасэмплов. Что то, что другое - в любом случае анрил.
Quote (Malevich)
Например синусоида 1кГц (или 100Гц или 50Гц) или треугольный(пилообразный) сигнал этой частоты.
Ну и что? Дрожание будет на 1 пиксель. И это не зависит на какой частоте смотреть триггер. Я на максимальной смотрю - и все равно это дрожание будет.
Quote (Malevich)
то он сразу банит !!!
Да вроде это первый случай. Причем он еще очень терпеливым оказался Я бы проделал это НАМНОГО раньше
Да вроде бы Владу всегда есть что ответить, но по существу...
Не совсем так ВНАЧАЛЕ он забанил, а ПОТОМ до него дошла суть проблемы и он начал искать варианты ее решения(например, возврат к программному триггеру).
Юлите ? Раньше Вы утверждали, что при интерливе прямоугольник НЕ станет прямоугольнее ! Да и пример этот был на проверку глубины знаний(с подвохом) Вы даже не обратили внимание почему 10МГц, а не 9,5МГц. А недостаток полосы - это вторично !!! У этого сигнала только нечетные гармоники и при дискретизации 50МГц получится "заворот спектра" на частоте Найквиста(25МГц) и в сигнале появятся четные гармоники(в этом легко убедиться, если на кальке нарисовать огибающую спектра и сложить бумагу гармошкой). Понятно, что ни о какой "прямоугольности" идти речи уже не может. Да и страшнее не это ! Биения между пятой гармоникой меандра и частотой дискретизации попадают в область постоянной составляющей и она начинает плавать(ЭТО НЕ АМПЛИТУДНАЯ МОДУЛЯЦИЯ !!!). Если меандр растянуть на весь диапазон АЦП(256), то эти гуляния составят 16 (а при первом порядке фильтра - 11) уровней квантования !!! При переходе на частоту дискретизации 100МГц эти все артефакты исчезают и определяющим становится ограничение полосы, но при линейной интерполяции сигнал будет ОЧЕНЬ похож на прямоугольник, что и нужно для осциллографа, правильно ОЦЕНИТЬ сигнал !!! Я так понимаю, что все тут это давно поняли, кроме Вас
Quote (kison)
Ну и что? Дрожание будет на 1 пиксель.
Вот уж не думал, что в Вашем проекте каждая последующая выборка всегда отличается от предыдущей на единицу
Quote (kison)
Я бы проделал это НАМНОГО раньше
Именно это я и имел ввиду ! Вам, как пахану, все можно делать безнаказанно (хамить, оскорблять, раздавать всем клички, указывать кому что делать...), т.к. у Вас есть "крыша" !!!
P.S. Вообще-то, странно получается. Я стараюсь для всех, нахожу недостатки, предлагаю варианты их решения(хотелось чтоб получился достойный проект). Но эти "все" при обсуждении молчат "как рыба об лед" !!! Я говорю не об поддержке, а просто об обмене мыслями и идеями без хамства ! Неужели всем насрать на проект, или только на меня ??? Получать шишки я привык, и старожилы это знают, но такое положение дел начинает надоедать
Сообщение отредактировал Malevich_2 - Вторник, 27.03.2012, 10:53
варианты ее решения(например, возврат к программному триггеру)
Это о чем? От программного триггера не уйти. Аппаратный только сужает диапазон. Ну и позволяет делать однократные развертки - то, чего программный в принципе не может. Хотя смотря какой - если обрабатывать триггер на лету, то и чисто софтом все получится. Просто обычно на такое не идут - это снижает дискретизацию в несколько раз. Ну а без обработки триггера выходит игрушка. Типа Хамелиона - красиво, дешево, но малофункционально.
Quote (Malevich_2)
Раньше Вы утверждали, что при интерливе прямоугольник НЕ станет прямоугольнее !
Ну при абстрактном интерливе в абстрактном приборе - станет лучше и даже совсем прямоугольнее. Обсуждался то конкретный вариант, а не вообще интерлив. Я уже устал если честно повторяться. Если сможете обеспечить полосу в 70МГц и дискретизацию в 150-200 мегасэмплов, то сигнал станет напоминать прямоугольник. не сможете - не станет. В абстрактном приборе с бесконечной полосой и любым интерливом - без проблем. Ставим 10 АЦП на 50 мегасэмплов и имеем 500. И проходящую 7 гармонику. Да что 7-ю - даже 23 пройдет. И все в шоколаде. С 23 сигнал будет очень прямоугольным, так - с мелкими недочетами.
Quote (Malevich_2)
У этого сигнала только нечетные гармоники и при дискретизации 50МГц получится "заворот спектра" на частоте Найквиста(25МГц)
Ого - да Вы наконец то литературу почитали? Прогресс налицо! Верной дорогой идете. Во всяком случае надеюсь глупостей мы от Вас больше не услышим. Да и вообще приобретение знаний полезно.
Quote (Malevich_2)
Биения между пятой гармоникой меандра и частотой дискретизации попадают в область постоянной составляющей и она начинает плавать(ЭТО НЕ АМПЛИТУДНАЯ МОДУЛЯЦИЯ !!!).
Ну назвать можно по разному - вообще это добавление в спектр исходного сигнала еще одной частоты. Она суммируется с исходным сигналом и вызывает искажение формы. И все это имеет емкое название - алиасинг.
Quote (Malevich_2)
но при линейной интерполяции сигнал будет ОЧЕНЬ похож на прямоугольник, что и нужно для осциллографа, правильно ОЦЕНИТЬ сигнал !!!
При линейной интерполяции сигнал может быть похож на что угодно. Но точно не на меандр. Этот алгоритм вообще в осциллографе малопригоден. Причем что синус, что меандр - отрисовано может быть совсем одинаково. Хотя сигналы и отличаются.
Quote (Malevich_2)
Вот уж не думал, что в Вашем проекте каждая последующая выборка всегда отличается от предыдущей на единицу
Нет. Может как отличаться на произвольное число, так и быть одинаковой. Это не вызывает проблем.
Quote (Malevich_2)
Именно это я и имел ввиду ! Вам, как пахану, все можно делать безнаказанно
Конечно. Только не здесь - у себя могу. Но не делаю - Андрей подтвердит. Есть английская поговорка - не все что ты можешь делать безнаказанно следует делать. А тут у меня ровно такие же права, как и у всех.
Quote (Malevich_2)
Вообще-то, странно получается. Я стараюсь для всех, нахожу недостатки, предлагаю варианты их решения(хотелось чтоб получился достойный проект).
Да мелочь осталась. Скачайте квартус и проверяйте свои варианты. И все - претензий не будет. Если не квартус, то макс плюс 2 - он точно такой же, даже может поудобнее в плане симуляции. Чисто функционально отладить/проверить можно и там. А дистрибутив всего ЕМНИП 47 метров. Ну и вторая причина - вместо намеков говорите прямо. Типа вот тут плохо. Потому что - и причину. Хочется ввести/изменить что то - вместо схемы описываете алгоритм работы. Можно кусочек схемы приложить - с описанием функционала. Вот тогда будете приносить реальную пользу.
Quote (Malevich_2)
и идеями без хамства !
Ну так с себя и начните. Удержитесь в рамках приличий - и в ответ хамства не будет. Делов то. Все просто - написали ответ, прочитайте его так, как будто это Вам адресовано. Если все в порядке - публикуйте. Это все не сложно, а отношение окружающих очень от этого зависит.
quote (Who will kill the monster he becomes a monster) В начале 90-х смотрел Вьетнамский Мультик но оказывается здесь все сложнее, надо было в свое время классиков читать. Кто убьет чудовище, сам превратится в чудовище. Всем кто сражается с чудовищем, следует позаботиться о том, чтобы самому не превратиться в чудовище.
Великий XXI век тонет во мраке стены небывалой струи информации. И стена эта называется её величество Время. Оно бывает беспощадным, и пройденное Время объявит и проявит себя истиной в последней инстанции. Время всё расставит на места, и нам покажет, где истина, и где фальшь и закидок, И нас всех тут рассудит и оценит только её величество ВРЕМЯ.
Падающего — подтолкни. Без музыки жизнь была бы ошибкой. Нет прекрасной поверхности без ужасной глубины. То, что не убивает меня, делает меня сильнее. Только человек сопротивляется гравитации: ему постоянно хочется падать вверх. Есть степень заядлой лживости, которую называют «чистой совестью». Ни один победитель не верит в случайность. Мораль — это важничанье человека перед природой. Сражающемуся с чудовищами следует позаботиться о том, чтобы самому не превратиться в чудовище. И если ты долго смотришь в бездну, то бездна тоже смотрит в тебя. Цитаты: Фридриха Ницше
Не совсем так ВНАЧАЛЕ он забанил, а ПОТОМ до него дошла суть проблемы и он начал искать варианты ее решения(например, возврат к программному триггеру).
Неправда, я по моему Вам ответил что проблема которую вы описали будет существенно "вылазить" только на частотах близких к Fs/2, там где как раз "один пиксель погрешности" будет составлять значительную долю ошибки по фазе. И ответить я Вам хотел, но Ваше хамство меня разубедило это делать. Решение этой "проблемы" это конечно интерполировать "дополнительные" точки и синхронизироваться уже от них, хотя "дрожание" все равно будет, во первых мы не можем интерполировать бесконечно много точек и во вторых полученные таким образом точки не обязательно попадут ровно в уровень триггера, типа одна ниже, следующая выше, и даже в третьих - это сам алгоритм, к примеру линейной интерполяции, если использовать построение линий по алгоритму Брезенхема, то сами понимаете , хотя в геометрической интерпретации для отрисовки на экране ЖК это отличный алгоритм . То есть программный триггер тоже должен будет иметь диапазон срабатывания и "дрожание" тоже будет, хоть и значительно меньше.
Quote (Malevich_2)
Именно это я и имел ввиду ! Вам, как пахану, все можно делать безнаказанно (хамить, оскорблять, раздавать всем клички, указывать кому что делать...), т.к. у Вас есть "крыша" !!!
Перестаньте Вы ей богу
Quote (Malevich_2)
P.S. Вообще-то, странно получается. Я стараюсь для всех, нахожу недостатки, предлагаю варианты их решения(хотелось чтоб получился достойный проект). Но эти "все" при обсуждении молчат "как рыба об лед" !!!
Ну вот опять врете , во первых "все" могут не разбираться в том что в данный момент обсуждается и не хотят влазить, и выставлять себя "дураками", причин много. Во вторых научитесь пожалуйста, как Вам правильно уже заметили, писать не намеками, а по существу, типа вот в этом модуле то и то работает на мое мнение неправильно, вот как предлагаю изменить, да даже предлагать изменить не обязательно! Главное не писать намеками - "а вот в том модуле все плохо и всех это устраивает" , я например недостатка в "том модуле" не вижу и при симуляции он не всплывает, так что мне думать? Или написать что я дурак и ждать что Вы мне свысока расскажите??? Нахрен такое общее "обсуждение"
Думаю понятно объяснил, больше херней заниматься не буду, время есть куда потратить и без этого.
Quote (Arpad)
Цитаты: Фридриха Ницше
Во! Прикольно А я то думаю пока читаю, где я это уже читал?
Quote (kison)
При линейной интерполяции сигнал может быть похож на что угодно. Но точно не на меандр. Этот алгоритм вообще в осциллографе малопригоден. Причем что синус, что меандр - отрисовано может быть совсем одинаково. Хотя сигналы и отличаются.
Если одинаково, то значит очень мало точек и sin(x)/x к примеру тоже не поможет Какая интерполяция тогда "пригодна" для осциллографа? ---
Здравствуйте,можно спросить по поводу комплектующих.Примеряюсь на заказ пока получается с ebay тащить выгодней.Например ad9288-100 ,28 баксов с доставкой.Живу в россии.Также проблема с памятью so-44 почти ни где нет везде tsop-44,кто где берёт?И релющки только 5 вольтовые ,3 нету.С остальным вроде понятно.
во первых мы не можем интерполировать бесконечно много точек
Бесконечно много и не надо. Достаточно к каждой реальной по максимуму еще 20 досчитать. Это число просто ограничить временем развертки. Если у нас 20нс реальная дискретизация и допустим сетка 20х20 ( клетка на экране), то ровно 20нс/дел и будет самой шустрой разверткой. Можно упростить и сделать 50нс/дел. Получим на две клетки 5 точек и 35 еще надо досчитать интерполяцией.
Также проблема с памятью so-44 почти ни где нет везде tsop-44,кто где берёт?И релющки только 5 вольтовые ,3 нету.С остальным вроде понятно.
По Росии подсказать не могу, вот может это поможет - http://www.efind.ru/icsearch/?search=CY7C1041DV33-10VXI , релюшки эти есть тут в Украине, правда сами еле нашли 3-х вольтовые, где их искать в России подсказать также не могу.
Quote (kison)
Но сделает синус. Либо искаженный синус - если гармоники не задавлены.
Синус это понятно, а прямоугольник сделает?
Quote (kison)
Есть статья
Спасибо, почитаю.
Quote (kison)
Достаточно к каждой реальной по максимуму еще 20 досчитать.
И прямоугольник сделает. Только там точек на период должно быть не две и не три. А вот по 15 уже что то похожее изобразит. В статье есть как раз похожий пример.
Quote (LeftRadio)
Это понятно, но "дрожание" все равно будет.
Ну можно ведь и подогнать результат - сдвинуть так, чтоб было примерно одинаково с предыдущей отрисовкой.
Да к стати, по комплектации ad9288-80 на украине нет, везде облазил, ad9288-100 можнопоставить или есть какие то ограничения. И вопрос, повторять полностью не планирую, хочу выполнить переключение реле на LB1838M(не доверяю конденсаторам), можно както получить последнюю версию исходников для оценки что придется периделывать?
Сообщение отредактировал Dante_strelok - Вторник, 27.03.2012, 17:37
Ну можно ведь и подогнать результат - сдвинуть так, чтоб было примерно одинаково с предыдущей отрисовкой.
Можно, но МК не знает как это делать, то есть его нужно "научить", а это означает анализ предыдущей полученной осциллограммы, сравнить с текущей, и если текущая полученная осциллограмма "признается" такой же(то есть сигнал на входе не поменялся), то и отрисовываем ее так же сдвигая вправо или влево на точку. Просто постоянно сдвигать не получится. В общем ресурсов МК нужно много, результатов мало, "дрожание" в пределах одной точки(интерполируемой или реальной при большом соотношении Fs/Fin) это фигня на мое мнение. ---
"дрожание" в пределах одной точки(интерполируемой или реальной при большом соотношении Fs/Fin) это фигня на мое мнение.
В пределах точки конечно фигня. Но вот пример с синусоидой. Допустим 10МГц. И на экране 2 периода. Т.е. всего 10 точек реальных. И еще по 19 расчетных между ними. Триггер где то между двумя реальными. И тут уже не 1 пиксел, а дрожание может быть аж в целое деление. Это много.
Интерполировать больше точек, хотя и с 19 интерполированными точками в примере, получится 200 точек на период, это при том что в клетке 20, "отталкиваясь" от интерполируемых точек в поиске момента триггера я сомневаюсь что дрожание будет аж в 20 точек, максимум в пару точек. Какое решение у тебя есть? Как подгонять? Просто это сделать не получится и мне кажется что намного проще нажать на "паузу", и обмерить/рассмотреть осциллограмму
Quote (Dante_strelok)
ad9288-100 можнопоставить или есть какие то ограничения. И вопрос, повторять полностью не планирую, хочу выполнить переключение реле на LB1838M(не доверяю конденсаторам), можно както получить последнюю версию исходников для оценки что придется периделывать?
AD9288-100 ставить можно, а чем конденсаторы не угодили? Тем что через 5-10 лет возможно будет плохо переключатся? Так поставте твердотельные и никаких проблем, и через 20 лет будет переключатся Исходников пока нет, да и переделывать не много придется, только не стоит оно того ---
Нет войне!
Сообщение отредактировал LeftRadio - Вторник, 27.03.2012, 18:26