Последняя редакция схем/плат версии 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В в любое удобное переходное отверстие.
32256? Она больше epm240, а и на 240 можно много сделать.
Она не просто больше, хотя и ненамного, она и по цене минимум раза в 3 больше А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
В одной ветке есть все. Про эту ветку я говорил тут не раз. Но не пошли и не почитали. Так что при желании информация была доступна.
Извините, но перелистывать 97 страниц не зная точно что надо искать как то не очень хотелось. Спасибо за ссылки.
Quote (atmicandr)
ЛУТ? это вообще заколебёшься делать если плата сложная. Для такого девайса плата должна сделана на производстве, чтобы как сказал kison не затрахаться с девайсом, а получить результат :)
Бред, ИМХО. По этой же аналогии, что бы не "затрахаться", нужно купить Rigol или Tek и получить результат
Quote (atmicandr)
Если тебе будет надо, то я могу с тобой одной штукой поделиться drink
Это хорошо что Вы готовы поделится ЖК с kison, может тогда поделитесь и с десятком людей которые решат собрать этот осцилл? WG320240 все же неадекватно дорог.
Quote (Муха)
А Мега128 справляется с отрисовкой на этом дисплее? А какая скорость обновления кратинки на дисплее?
По идее справляется спокойно, другое дело что данный ЖК весьма тормозной и давать на него больше 15-ти кадров смысла нет
По поводу ПЛИС, схему сейчас заканчиваю и выложу.
---
Нет войне!
Сообщение отредактировал LeftRadio - Вторник, 10.05.2011, 14:50
Странно что такое могло заработать нормально... А Мега128 справляется с отрисовкой на этом дисплее? А какая скорость обновления кратинки на дисплее? Я так понимаю широкие шлейфы от АЦП? Какой уровень шумов у осцилла? Жаль что чумадан с батареями в кадр не попал...
работало, шумы на картинке, макс. такт АЦП 25 МГц это был ЛУТовыйт прототип на ДИПах 128 мега справлялась на ура, правда работала на 20 МГц выводила около 15 кадров, точно не помню жкишка то монохром, за 1 раз выводим 8 пикселей
Вот что накропал Так как триггер требует двух событий для срабатывания, то решил добавить счетчик для режима срабатывания триггера по определенной длительности фронта. Смотрел проект MisterDi пока ничего не понял Сам алгоритм работы схемы в ПЛИС. А вот над автоматом записи значений макс./мин. нужно думать, может не все так страшно как пугает kison
Теперь видно. Осталось алгоритм желаемый озвучить. А то подача такта на вход trig_counter co входа inst24 работоспособности явно не добавляет. Ну и такие неточности не дают вытащить из схемы алгоритм. Да и напрягаться сильно не хочется. Нужно словесное описание - что как и для чего.
А то подача такта на вход trig_counter co входа inst24 работоспособности явно не добавляет.
На линии подписано MCLK, так что такт приходит и на inst24, и на счетчик, иначе проект не собирался бы Словесное описание очень простое, при фиксировании первого события из условия триггера(на совпадение с заданным порогом) запускается счетчик и если второе условие(больше/меньше) не выполнится пока счетчик не досчитал, то сигналом переноса счетчик сбросит первый триггер, то есть цикл сбросится. Если же фронт "попал" в заданное окно, то триггер inst30 заблокирует счетчик и тот никого не сбросит Сейчас подумал нужно для второго условия все же поставить отдельный компаратор со своим порогом, тем самым получим в добавок возможность синхронизации по окну.
Немного откорректировал, добавил второй компаратор.
Замечательно ! Этого давно ждал, но свое мнение и пожелания смогу выложить только завтра. На первый взгляд особых замечаний нет.
P.S. И Вы никак не отреагировали на пост 1255. Это несколько бы все упростило. Поясню, АЦП в "интерливе"(кавычки для некоторых ) равномернее будут нагружать шину питания, а память в "интерливе" легче писать. Еще раз уточняю, предыстория и окно по 8192 выборки ? Без предыстории окно в 16384 выборки ? И эти величины постоянны ?
Сообщение отредактировал LazyCat - Вторник, 10.05.2011, 22:38
Это фигня какая то. Ждать совпадения можно очень долго если на входе достаточно высокочастотный сигнал. Более того - при кратности частот дискретизации и входной ждать совпадения придется бесконечно долго. А уж если все таки дождетесь - фронт придет на следующем такте. Даже если на входе постоянка - у АЦП младший разряд вовсе не стоит как вкопанный. Зачем счетчик? Зачем усложнять простые решения?
И Вы никак не отреагировали на пост 1255. Это несколько бы все упростило.
Да, действительно пропустил, тут столько понаписали про WG320240 что и не заметил Про запись min/max полностью согласен, переделаю.
Quote (LazyCat)
Еще раз уточняю, предыстория и окно по 8192 выборки ? Без предыстории окно в 16384 выборки ? И эти величины постоянны ?
Можно и так, хотя размер окна хотелось бы иметь переменным, для наблюдения периодических не изменяющихся сигналов большой размер памяти не нужен. Для простоты конечно можно остановится и на фиксированном окне. Просто при наблюдений достаточно низких частот придется "долго" ждать заполнения 16кБ памяти чтобы потом отобразить из них всего 400.
Quote (kison)
Ждать совпадения можно очень долго если на входе достаточно высокочастотный сигнал. Более того - при кратности частот дискретизации и входной ждать совпадения придется бесконечно долго. :)
Только в теории, практика говорит об обратном , для решения этой проблемы нужно по два компаратора на каждое условие триггера. А какое есть у Вас решение?
Quote (kison)
А уж если все таки дождетесь - фронт придет на следующем такте.
Неважно, если фронт не придет в том же такте в котором было совпадение, то счетчик сбросит "триггер". Если же пользователь решит синхронизироваться по фронтам длительностью 1мС при исследуемой частоте сигнала 500кГц, то это грубая ошибка методологии измерений. ---
Практика говорит что в достаточно длинной последовательности выборок может не быть ни одного значения например 5. Потому как входной сигнал вовсе не случайный, это не белый шум. Ожидать совпадения некогда, да и смысла нет. Прождете Вы его 0,5 секунды и получите два FPS на экране. Заодно и потребление вырастет. Не на 17% как выше с предысторией и даже не на 170. Вместо того чтоб держать в работе ПЛИС, память и АЦП например 1мС будете раз в 100 больше. Фигня вопрос - вместо 4-5 часов аккумулятор сядет через 30 минут. Было бы из за чего - сигнал то красивее не станет.
Quote (LeftRadio)
А какое есть у Вас решение?
Самое стандартное - по возможности точная эмуляция аналогового триггера. Он отлично работает и вообще все же лучше цифрового. На цифровой идут из за компромисса между ценой и качеством. Цифровой хоть и несколько уступает чисто аналоговому, зато ничего не стоит.
может тогда поделитесь и с десятком людей которые решат собрать этот осцилл? WG320240 все же неадекватно дорог.
С десятком людей точно не поделюсь- у меня их два, один мог бы отдать. Также могу дать ссылку где их можно приобрести за 1500!- вкусная цена за такую штуковину- не правда ли? А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
Кстати заметил странность, при компиляции схемы которую выкладывал для epm240 получается ~190 макроячеек, а при компиляции под epm570 ~244 макроячеек, к чему бы это? ---
Вот нашел свободную минутку и нарисовал свое видение проекта. Так как схемы с интерливом выложено еще не было, то нарисовал поверх старой Небольшие пояснения. 1. мелких изменений много - внимательно смотрим на схему 2. CLK=100Мгц, хотя можно и 50, а внутри ПЛИСа не делить на 2 а умножать - это без разницы 3. не знаю, есть ли у компараторов сигнал ENABLE, поэтому сделал так 4. т.к. у меня нет осциллограм работы счетчика ПЛИСа, то я заложился на такую работу COUT, что понятно из схемы - это очень важно 5. перезагрузку счетчика inst1 надо уточнить (и вообще там загрузка синхронная или асинхронная ???) 6. младший адрес ОЗУ тоже понятно как берется - пока оставим так, но нужно будет подумать - он же является сигналом для мультиплексоров
P.S. свой вариант триггера выложу позже - в связи с требованием переменного окна захвата потребовалась некоторая доработка
С интерливом проблемы, так как сигнал будет захватываться по фронту и спаду клока(по фронту с одного канала, по спаду с другого), а записываться в SRAM должен одновременно...
Quote (LazyCat)
а внутри ПЛИСа не делить на 2 а умножать - это без разницы
Как делить понятно :), а вот как умножить без PLL что то не пойму.
Quote (LazyCat)
не знаю, есть ли у компараторов сигнал ENABLE, поэтому сделал так
Нету, Ваш элемент + "И" можно заменить на трехвходовой "И".
Quote (LazyCat)
т.к. у меня нет осциллограм работы счетчика ПЛИСа, то я заложился на такую работу COUT, что понятно из схемы - это очень важно
Пока не понял из схемы, нужно подумать.
Quote (LazyCat)
перезагрузку счетчика inst1 надо уточнить (и вообще там загрузка синхронная или асинхронная ???)
Загрузка синхронная, все сигналы с буквой s впереди синхронные.
Quote (LazyCat)
младший адрес ОЗУ тоже понятно как берется - пока оставим так, но нужно будет подумать - он же является сигналом для мультиплексоров
С интерливом проблемы, так как сигнал будет захватываться по фронту и спаду клока(по фронту с одного канала, по спаду с другого), а записываться в SRAM должен одновременно...
Возьмите 9288 - там интерлив встроенный. В самой плисине почти ничего менять не понадобится. Единственное, что триггер будет ловить сигнал через фронт - только с одного канала АЦП. Но это не так и страшно. Хотя само желание таки сделать интерлив для меня все так же странно - ничего хорошего он не принесет. Только испортит всю борьбу с алиасингом. Если будет интерлив, то накапливать минимумы и максимумы уже не надо - толку с них не будет никакого. Соответственно к тому, что прибор будет иногда бредить надо быть готовым.
Не пойму почему по сигналу переноса inst1(счетчик для прореживания) разрешается работа компараторов, я алгоритм представлял так, например прореживаем в пять раз, компараторы выбирают макс./мин записывая значения в соответствующие регистры, а по сигналу переноса записываем значения этих регистров в память, но регистры нужно сбросить после записи в память, что бы выбрать макс./мин. для следующих пяти выборок, можно поставить защелки из которых пишем в память и в этом же цикле по переносу сбрасываем регистры. Пока все же непонятен предложенный Вами алгоритм, пробую разбираться.
to kison На AD9288 вроде и закладывались, но интерлив там не встроенный, внимательно смотрим 5 страницу TIMING DIAGRAMS, а там очень очевидно показано, что для интерлива нужно тактировать один канал инвертированным клоком.
Quote (kison)
Единственное, что триггер будет ловить сигнал через фронт - только с одного канала АЦП.
Зачем с одного, хотелось бы иметь возможность синхронизироваться и по каналу В.
Quote (kison)
Хотя само желание таки сделать интерлив для меня все так же странно - ничего хорошего он не принесет.
Его можно и не использовать :), но пусть будет, фильтр можно либо перестраивать либо отключать для интерлива. Над этим нужно еще подумать, а полосы аналога будет хватать, недавно пришли две AD8370. Для входа либо реле, либо как упрощение для карманника переключатели, хотя этот вариант и хуже по понятным причинам. ---
Нет войне!
Сообщение отредактировал LeftRadio - Пятница, 13.05.2011, 03:57
На AD9288 вроде и закладывались, но интерлив там не встроенный, внимательно смотрим 5 страницу TIMING DIAGRAMS, а там очень очевидно показано, что для интерлива нужно тактировать один канал инвертированным клоком.
И что? Инвертировать два сигнала. Я потому и написал -
Quote (kison)
В самой плисине почти ничего менять не понадобится.
Quote (LeftRadio)
а полосы аналога будет хватать, недавно пришли две AD8370.
С этими точно хватит. Я на них смотрел-смотрел, но 82мА потребления отпугнули. Ну и цена.
Нужен инвертированный клок на канал В относительно клока канала А. Инвертировать оба смысла нет.
Quote (kison)
Я на них смотрел-смотрел, но 82мА потребления отпугнули.
Да потребление не радует , но нужно учитывать что большую часть времени они будут в выключенном состоянии особенно при переменном окне, я уже писал что не имеет смысла забивать всю память для того что бы потом изобразить на экране всего 400 точек, большая память нужна для однократных запусков, но и в этом режиме большую часть времени аналог будет выключен так как полученный сигнал нужно еще обмерять/рассмотреть. В режиме самописца я думаю логичней подключить внешний источник питания ---
Нужен инвертированный клок на канал В относительно клока канала А. Инвертировать оба смысла нет.
Это не про такт было. Второй - сигнал на S2 АЦП. Включение/отключение интерлива.
Quote (LeftRadio)
но нужно учитывать что большую часть времени они будут в выключенном состоянии особенно при переменном окне,
Если бы. Зависит от развертки. Поставим 5мС на деление - на накопление 10 клеток уйдет минимум 50мС, может и побольше - триггера то придется подождать. Дальше обсчет/отрисовка за 10мс и... опять все запитано. Причем низкочастотные сигналы смотрят ничуть не реже чем ВЧ. VGA хорошо для не карманного прибора. К нему еще понадобится AD8132 или что то аналогичное, ну и буфер входной. Кроме того нужен сдвиг сигнала регулируемый - еще один ОУ как буфер ШИМ. И надо как то решать проблему калибровки этого сдвига, иначе обсчет сигнала будет не простым. А для этого нужно заземлять либо вход VGA, либо вход AD8132, либо вход буфера. Ну и интерлив тоже проблем и потребления добавит. Итого - 4 ОУ в тракте.
Сообщение отредактировал kison - Пятница, 13.05.2011, 04:43
Именно это и делают предложенные элементы ИЛИ (их нельзя заменять на 3-входовый И )
Понятно, но се совсем понятно как, ведь в одном цикле мы должны записать данные, то есть определенное время они должны присутствовать на вых. регистров, и в этом же цикле сбросить регистры.
Quote (LazyCat)
А точность тут особо и не нужна. И попробуйте один инвертор.
Нет, не работает, пробовал по разному.
Quote (LazyCat)
Повторяю, интерлив в аналоговой части НЕ ДЕЛАЕМ !!!
А зачем тогда заморачиваться в цифре? Что бы равномерней была нагрузка по питанию? Я считаю оно того не стоит.
Quote (LazyCat)
А почему все регистры с последовательной загрузкой, разве так лучше ?
Можно конечно управление сделать и через шину данных идущую к МК, мне показалось что с последовательными будет удобнее, хотя это конечно лишние "веревки" от МК.
Quote (LazyCat)
И еще вопрос по поводу WE_SRAM.
Да, действительно забыл ---
Нет войне!
Сообщение отредактировал LeftRadio - Пятница, 13.05.2011, 12:07
К нему еще понадобится AD8132 или что то аналогичное, ну и буфер входной.
Зачем? Не нужен он. А буфер нужен в любом случае.
Quote (kison)
Кроме того нужен сдвиг сигнала регулируемый - еще один ОУ как буфер ШИМ.
Это также будет в любом случае.
Quote (kison)
И надо как то решать проблему калибровки этого сдвига, иначе обсчет сигнала будет не простым. А для этого нужно заземлять либо вход VGA, либо вход AD8132, либо вход буфера.
Не вижу проблеммы, вход буфера замыкать на землю считаю правильным какой вариант бы аналога не был, наедятся на то что входной буфер "правильный" и уплыва луча не будет не хочу. А раз вход будет заземляться, то откалибровать сдвиг и заодно вычислить смещение вносимое остальными элементами схемы проще простого хоть по двум точкам, хоть по 10-ти. ---
Сдвиг сигнала делать. Его нормально можно ввести только после узла с переменным усилением.
Quote (LeftRadio)
Это также будет в любом случае.
Ну вот - а что он двигать то будет? Куда его подавать?
Quote (LeftRadio)
Вход буфера замыкать на землю считаю правильным какой вариант бы аналога не был, наедятся на то что входной буфер "правильный" и уплыва луча не будет не хочу.
Это в общем правильный подход. Но там хорошо работает реле. Лишнее реле нормально для не портативного прибора, а к карманному может не подойти.
Сдвиг сигнала делать. Его нормально можно ввести только после узла с переменным усилением.
Понятно что после Действительно еще один ОУ нужен, но делать вариант на 4052 тоже не вариант , куча точных резисторов, полоса. А из VGA удалось достать только AD8370.
Quote (kison)
Это в общем правильный подход. Но там хорошо работает реле.
Ну зачем реле??? Для высокоомного входа буфера 50Ом на землю - тоже самое что и реле, а емкость ключа можно отделить резистором. ---
но делать вариант на 4052 тоже не вариант , куча точных резисторов, полоса.
Я вроде говорил - разработка это набор компромиссов Приходится выбирать что то одно. Либо VGA с хорошей полосой ( а нужна ли она? 8370 даст пару сотен мегагерц, а достаточно 12,5) приличной ценой и высоким потреблением. Либо что то попроще, с параметрами похуже, но дешевое и маложрущее. То, что параметры с VGA будут намного выше сомнений нет. Правда - при наличии реле в делителе. Потому как поделить на 50, а затем усилить на 500 все равно не выйдет даже с VGA.
Не забывайте еще и про то что будут нужны реле для переключения открытый-закрытый вход, может повторил кого, но об этом я чегото ничего не увидел Кстати попутно вопрос: с помощью чего будете реле управлять? А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
Не забывайте еще и про то что будут нужны реле для переключения открытый-закрытый вход, может повторил кого, но об этом я чегото ничего не увидел ;)
Было и достаточно много Спорный вопрос нужен ли он в автономном осцилле при использовании стандартных щупов.
Quote (atmicandr)
Кстати попутно вопрос: с помощью чего будете реле управлять?
Это не проблема, проблема потребление реле, а поляризованные неадекватны по цене.
Quote (kison)
Правда - при наличии реле в делителе. Потому как поделить на 50, а затем усилить на 500 все равно не выйдет даже с VGA.
Я уже писал про реле, можно и ключ но тогда будет ограниченно входное. А полоса конечно избыточна, но никакого подбора пару десятков резисторов, я бы возможно взял бы и AD603 и полоса, и потребление вполне устраивает, но нету Вот Вы сами не закладывались на OPA3.. пока не получили их образцами, так AD603 никак не выйдет семплами...
Quote (kison)
Если бы. Зависит от развертки. Поставим 5мС на деление - на накопление 10 клеток уйдет минимум 50мС, может и побольше - триггера то придется подождать. Дальше обсчет/отрисовка за 10мс и... опять все запитано.
Боюсь далеко не 10мс, если Algient делает два автоизмерения за 300мс, Vrms и еще что то, то думаю карманник вряд ли успеет быстрее , а еще курсоры посчитать, цифры взял из обзора. ---
Нет войне!
Сообщение отредактировал LeftRadio - Пятница, 13.05.2011, 12:50
Я уже писал про реле, можно и ключ но тогда будет ограниченно входное.
Ага - опять компромисс. Их много.
Quote (LeftRadio)
но никакого подбора пару десятков резисторов
Подбор не требуется - они считаются. 4 номинала всего.
Quote (LeftRadio)
Вот Вы сами не закладывались на OPA3.. пока не получили их образцами
Я их так и не получил Хотя выслали - просто я понял, что они мне не подходят и не стал даже получать. У меня страсти к халяве нет В схеме они, а по факту - AD8065. Они по ногам совместимы.
Quote (LeftRadio)
Боюсь далеко не 10мс, если Algient делает два автоизмерения за 300мс
Любой дешевый осцилл легко дает 25FPS на экране. Тут и измерения и отрисовка. Причем они могут идти параллельно. Чем чаще обновляется экран, тем комфортнее. Ну конечно выше 25 FPS лезть бесполезно - глаз уже мерцаний не видит, а человек осмыслить не сможет. Хотя делают и выше - в режиме "цифровой фосфор".
Есть 412. Все равно вход придется ограничить. 400В - вполне достаточно. На открытый/закрытый вообще можно переключатель поставить. Какая разница - кнопкой включать или движок передвинуть? А переключатели все больше на 500В
Любой дешевый осцилл легко дает 25FPS на экране. Тут и измерения и отрисовка.
Да действительно, те цифры которые я приводил были для длины памяти в 10М , но и процессоры там стоят куда мощнее. В общем практика покажет
Quote (kison)
Подбор не требуется - они считаются. 4 номинала всего.
Возможно, кстати Ваша схема очень напоминает схему какого то советского осцилла, сечас не вспомню...
Quote (Муха)
С делителем 1:10 больше и ненадо... Иследовать сигналы выше 250В считаю достаточно редкий случай... :)
А импульсник с размахом 310В? А еще и выбросы увидеть надо. 1:100 это тот же резистор как я понимаю и поэтому тоже не больше 250В...
Quote (kison)
На открытый/закрытый вообще можно переключатель поставить. Какая разница - кнопкой включать или движок передвинуть?
Можно, но типа несовременно
Quote (Муха)
По АЦП что решили? Надеюсь LTC2288 будут? А то я их ужо заказал...
Эх... Вы не внимательно ветку читаете вроде сошлись что оптимум для карманника будет AD9288, хотя LTC2288 у меня уже тоже есть, но зачем 10 бит при восмибитной памяти и потребление... ---
Нет войне!
Сообщение отредактировал LeftRadio - Пятница, 13.05.2011, 13:32
Возможно, кстати Ваша схема очень напоминает схему какого то советского осцилла, счас не вспомню...
Я о этом в этой же ветке уже писал. Хотя модель сейчас не вспомню. С1-121 вроде. Оттуда - только низкоомный делитель. В ветке на казусе можно посмотреть на мои попытки изобрести самостоятельно. Все они оказывались в итоге хуже чем такой делитель. Неумолимый 32256 разрушал мечты на корню
Quote (LeftRadio)
Можно, но типа не современно
Это еще один компромисс. Несовременно, но дешево и не потребляет ничего. Вообще - прикиньте бюджет. У меня схема - уже 6-ой вариант. Половина предыдущих забракована по техническим причинам, вторая половина - по экономическим.