Последняя редакция схем/плат версии 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В в любое удобное переходное отверстие.
Что то я не пойму схемы синхронизации ЛА преложенной LazyCat, а разве не проще сделать на компараторах? Или я чего упускаю?
Как я понял есть два основных видов синхронизации в ЛА, это по шаблону или фронту, или по шаблону и фронту. Последний вид можно поделить на два - сначала фронт затем шаблон и наоборот. Также необходима возможность игнорировать не нужные биты. Мои мысли такие, ставим 8-ми входовой ИЛИ для битовой маски и два компаратора, первый для выполнения условия "по шаблону", второй для условия "по фронту", ну или наоборот. Теперь если хотим синхронизироваться например по шаблону и фронту, то достаточно в первый компаратор занести значение шаблона, во второй значение которые должен принять шаблон после фронта нужного бита/битов, или спад например, неважно. Что не так и в чем может быть засада? ---
Нет войне!
Сообщение отредактировал LeftRadio - Пятница, 06.04.2012, 06:28
Скин-те схему проектом пожалуйста, что бы не рисовать самому раз уже есть.
Да пожалуйста
Quote (LeftRadio)
Что то я не пойму схемы синхронизации ЛА преложенной LazyCat, а разве не проще сделать на компараторах? Или я чего упускаю?
Наконец-то начали обсуждать ЛА Вы все правильно написали. Вариантов реализации масса. Кстати, XOR - это и есть цифровой компаратор !!! Схему, что я приводил, можно несколько упростить. Ранее я ее не выкладывал, т.к. обсуждали совсем другое. Надеюсь, этот другой вопрос уже закрыли ???
Скин-те схему проектом пожалуйста, что бы не рисовать самому раз уже есть.
Я так понял схема проектом это принципиальная из протеуса?
Я конечно извиняюсь но... Уважаемый LazyCat, я как неспециалист в плис и программирование, читая ваши посты, не могу не заметить что почти каждый раз когда Вас просят раскрыть какой либо вопрос, Вы потрясающе увиливаете от ответа! Я вот например пытаюсь разобратся по коментариям к данному проекту как вообще работает плис в данном проекте и Ваши посты меня постоянно запутывают!
Quote (LazyCat)
Ранее я ее не выкладывал, т.к. обсуждали совсем другое. Надеюсь, этот другой вопрос уже закрыли ???
К чему это, Вас сто раз просили раскрывать коментарий. Этот другой вопрос это что? Ну что Вы всем в нос тычете этой схемой, я ее не понимаю, а прибор сделать хочется. ИМХО - ИМЕННО ВЫ провоцируете скандалы (со стороны виднее поверте). Если меня что то не устраевает я разбраюсь, переделываю и показываю рабочую живую конструкцию, советую Вам поступить также.
to LeftRadio извините накипело
Сообщение отредактировал Dante_strelok - Пятница, 06.04.2012, 22:25
Я так понял схема проектом это принципиальная из протеуса?
Мы с arpad говорили про LTspice и прекрасно друг друга понимаем.
Quote (Dante_strelok)
читая ваши посты, не могу не заметить что почти каждый раз когда Вас просят раскрыть какой либо вопрос, Вы потрясающе увиливаете от ответа!
Когда кто-то спрашивает что-то конкретно, то я всегда конкретно отвечаю, если конечно вопрос задан не в хамской или издевательской форме. Причем отвечаю вежливо !!! Лично Вы ни разу меня ни о чем не спросили и откуда мне знать, что Вам непонятно ??? Неправда, что я увиливаю от объяснения чего-либо, просто я не телепат
Quote (Dante_strelok)
К чему это, Вас сто раз просили раскрывать коментарий. Этот другой вопрос это что?
Ответ был адресован Владу и он прекрасно понимает, что я имел ввиду. И я не понимаю каким боком этот ответ касается Вас ?
P.S. И мой Вам совет, если что-то непонятно не стесняйтесь спрашивать. Истина всегда рождается в конструктивном диалоге, а не ругани
Наконец-то начали обсуждать ЛА Вы все правильно написали.
Ну наконец восстановил проект в ПЛИС и остался только ЛА, вот и начал обсуждать . И раз правильно я понял логику синхронизации в ЛА, то это хорошо , объясните на словах(можно кратко) чем Ваша схема отличается по логике работы с тем что я написал? Это без подвоха вопрос, просто рисовать в ПЛИС все эти кучи XOR, AND, OR просто лень и будет оно выглядеть страшно запутанным и непонятным, я буду писть на верилоге, а для этого в первую очередь важна логика работы узла а не реализация.
Quote (Dante_strelok)
Я вот например пытаюсь разобраться по комментариям к данному проекту как вообще работает плис в данном проекте
Могу описать в общих чертах, если из более ранних комментариев не совсем понятно. Схема синхронная, исключение регистры настроек в которые пишет МК, они асинхронны к основной схеме, еще асинхронен счетчик чтения так как тоже используется только МК. Далее, по входу данных с АЦП стоят "синхронизирующие" регистры, которые ничего не делают кроме защелкивания данных с АЦП по фронту внутреннего клока ПЛИС - CLK, после них модуль выборки макс. и мин. значений поступающих с АЦП, реализовано на компараторах и двух регистрах для хранения этих значений. По сигналу с дециматора эти регистры сбрасываются, таким образом получаем макс. и мин. значения за период между выборками, этот период задается в дециматоре, нужен надеюсь понятно для чего - для разных коэффициентов развертки. Далее данные через мультиплексоры передаются непосредственно на шину данных SRAM. Сколько выборок писать задается в модуле синхронизации счетчиком Win_Counter, который останавливает запись когда "досчитывает" . Запускает его сигнал триггера при событии синхронизации. Предыстория работает следующим образом - МК запускает цикл записи, но триггер запрещен и как следствие счетчик тоже остановлен, через определенное время отсчитанное внутри МК разрешаем триггер и как только от него прийдет сигнал о срабатывании запустится счетчик Win_Counter, отсчитает необходимое количество точек и остановится одновременно выдав сигнал о завершении записи который все остановит до перезапуска с МК.
Quote (LazyCat)
Ответ был адресован Владу и он прекрасно понимает, что я имел ввиду.
Если честно не совсем, но да бог с ним не будем заострять на этом внимание.
объясните на словах(можно кратко) чем Ваша схема отличается по логике работы с тем что я написал?
Вот пронумерованная схема и описание. Кстати, именно под программную реализацию она и заточена(используются только базовые логические операции с байтами). Логика работы очень простая, проще я придумать уже не смогу
inst100 - это просто буферный регистр inst101 - элемент задержки на один такт inst102 вместе с inst104 образуют цифровой компаратор, т.е. побитно сравнивают 2 входных байта и на выходе формируют "1", если хотя бы одна пара битов не совпала, т.е. от такта до такта произошло изменение сигнала.
Trigger_level_C совместно с inst105 образуют маску для выделения перепада в нужном бите, а Trigger_level_A совместно с inst103 определяют полярность этого перепада(идет на inst106) и заодно участвуют в задании полярности уровня(идет на inst107). На выходе inst108 формируется "1" при возникновении ожидаемого перепада на любом из выбранных сигналов, а на выходе inst109 возникает "1" при достижении ожидаемой комбинации уровней на выбранных сигналах. Элементы inst110 и inst111 совместно с inst113 образуют схему формирования условия тригера, т.е. тригер сработает по любому из выбранных режимов(либо по уровню, либо по перепаду) или при одновременном совпадении комбинации уровней на некоторых шинах и при возникновении перепада уровня на других. Trigger_level_B задает маску битов для выделения уровней.
Элементы inst112 и inst114 образуют устройство сжатия. Его работу мы уже обсуждали.
Quote (LeftRadio)
Если честно не совсем
Я просто выразил радость по поводу, что раз начали обсуждать ЛА, то значит ранее обсуждаемые вопросы успешно разрешились И мне непонятно, почему у некоторых посетителей форума это вызывает не радость, а раздражение Ну да пусть это будет на их совести !
Логика работы очень простая, проще я придумать уже не смогу
Я так понимаю симуляции мы все равно не увидим? Ладно, проверить несложно, пять минут потрачу. Исходные данные - условие запуска положительный перепад на 0 канале или отрицательный на 1-ом, при этом на старших 4-х должно быть 1010. Оставшиеся два - безразличны. Что подаем на Trigger_level_A,B,C? Владу -триггер ЛА пишется на Верилоге меньше чем за час со всеми проверками и симуляциями. Это очень простой узел.
Как-то был затронут вопрос о входном твёрдотельном реле, у CPC1017 напряжение оказалось маловато (мах. 60В). Вот нашёл доступный по цене и доставаемости аналог - CPC1035, корпус такой же, 350 Вольт, единственное НО - ток управления мин. 2мА (против 1мА у CPC1017), думаю это не проблема...
Вот нашёл доступный по цене и доставаемости аналог - CPC1035
Да, помню, мы уже обсуждали входное твердотельное реле для переключения откр./закр. вход(для тех кто может не понял о чем речь), так как у них распиновка одинаковая, то можно ставить любое из этой серии, конечно же обращая внимание на макс. рабочее напряжение. ---
На удивление - вариант от LazyCat таки работает. А я уже успел привыкнуть к обратному. Можно сказать - с почином Ну еще на одном условии все же проверим. Задача - любой фронт на канале 2 ( считаем каналы от 0 до 7), и в старших 4 битах (4-7) все то же 1010.
Не хамить Вы не можете ! Как говорится, "горбатого могила исправит" !!! А насчет вопроса, то я его ожидал И ежу понятно, что для 3-х условий (фронт, спад и любой) нужна уже 2-битовая маска условия перепада. Когда я этот вариант только начал разрабатывать, то так и было. Но, не найдя ни одного практического применения этому режиму, я из схемы выбросил Trigger_level_D Еще раз подчеркну, что в моей практике неоднократно приходилось начинать захватывать сигнал по спаду(например, UART, SPI и т.д.), по фронту(например, MICROWARE либо по CLK в синхронных протоколах передачи), по фронту при заданном уровне(stop для I2C), по спаду при заданном уровне(start для I2C), по включению нужного периферийного устройства(перепад определяется аппаратной частью) и т.д. и т.п. И ни разу не потребовался произвольный перепад, но это моя личная практика !!! Выбирать вариант, как всегда, Владу
И ежу понятно, что для 3-х условий (фронт, спад и любой) нужна уже 2-битовая маска условия перепада.
Ну значит нужна. Или не нужна. Это уж точно решать Владу. Я себе сделал, на всякий случай.
Quote (LazyCat)
Но, не найдя ни одного практического применения этому режиму
Применение найдется. А то можно и мультиплексор выкинуть. Перепад ИЛИ шаблон тоже ведь крайне редкий режим. А вот перепад И шаблон куда чаще применяется.
Проверил схему, действительно работает , возможно так и оставлю в схематике, спасибо Вам LazyCat за труды Только думаю все же сжатие сделать отключаемым и только для записи всей памяти, типа только тогда когда нужно записать как можно больше без всяких предысторий просто по триггеру, также хочу подумать над "интеливом" в ЛА, но для этого нужно что бы данные захватывались и по спаду клока, как это сделать в верилоге знаю, а вот в схематике нет, ну да ладно это не так важно можно и на верилоге маленький модуль с входными регистрами написать ---
Вот, как то так, только проблема с синхронизацией, она работает на частоте 50МГц, в то время как данные могут писатся с частотой 100МГц, но как сделать и синхр. на 100 я не придумал. Когда включен режим "интерлива" сжатие отключается, для этого предназначен сигнал Comp_Intrl.
Всем привет! Обнаружил на новой плате неточность: один из выводов С72, который должен соединяться с общим проводом, висит в воздухе...
Добавлено (16.04.2012, 20:28) --------------------------------------------- Я собираюсь использовать NCP584, а у этих стабов вывод "4" должен быть либо на Vin, либо "общий" для разных режимов работы, проще будет посадить на землю вместо конденсатора, иначе только перемычкой...
Привет, да нехорошо, но хорошо что не так критично, этот конденсатор нужен только для LP2985-3.3, если ставить NCP584 то его нужно заменить перемычкой. Самое "безболезненное" решение для NCP584, на мой взгляд, это перемычка от 4-го вывода стабилизатора на вывод конденсатора С60, можно и 0402 между ними поставить, для LP2985-3.3 вместо перемычки конденсатор. На месте второго стабилизатора(в аналоге) если тоже ставить NCP584 то С52 просто заменить перемычкой вместо конденсатора, так вообще и задумывалось, если использовать ADP1710 или MAX6329 то туда вообще ненужно ничего впаивать. Добавлю эти "уточнения" к описанию как время будет. ---
Нет войне!
Сообщение отредактировал LeftRadio - Понедельник, 16.04.2012, 21:52
Самое "безболезненное" решение для NCP584, на мой взгляд, это перемычка от 4-го вывода стабилизатора на вывод конденсатора С60, можно и 0402 между ними поставить, для LP2985-3.3 вместо перемычки конденсатор. На месте второго стабилизатора(в аналоге) если тоже ставить NCP584 то С52 просто заменить перемычкой вместо конденсатора
Т.е. для питания цифры первый NCP584 будет работать в режиме Fast Transient Mode (быстрые переходные процессы) (Veco=Vin), а в питании аналога в режиме Low Power Mode (Veco=GND)? Это важно?
Нет, предполагалось что оба будут работать в режиме ЕСО = L, хотя в этом режиме и несколько хуже переходные характеристики при резком изменении вых. тока, но это компенсируется значительно лучшим Ripple Rejection. Вывод конденсатора С60 имелся ввиду "земляной". ---
Закончил тестирование дизайна в ПЛИС, по сравнению с предедущим дизайном есть несколько отличий, опишу вообще немного что изменилось и что есть:
Добавлен логический анализатор, максимальная частота такая же как и у осциллографа - 50МГц, сжатия нет. Есть возможность синхронизации от любых цифровых входов при работе в режиме осциллографа, в том числе и по всем видам синхронизации ЛА. Добавлена регулируемая пользователем задержка на срабатывание "аналогового" триггера, фактически это ФНЧ, отключается при ненадобности.
Возможные режимы работы прибора: 1. - ЛА + аналоговый канал, макс. частота каждого канала 50МГц; 2. - ЛА + два аналоговых канала, макс. частота каждого канала 25Мгц. 3. - Просто отдельно ЛА или один/два аналоговых канала, макс. частота 50МГц.
Прикрепил проект для QuartusII 9.1SP2, файл прошивки NS3.pof и схему дизайна в pdf. Вот симуляция работы, вкл. режим осциллографа, коэффициент прореживания 4, синхр. отключена, запись 5-ти точек.
В процессе сборки возник вопрос: под какой шаг сделаны отверстия в плате для J1 и JP1? Там явно меньше, чем 2,54мм. :(
J1 запаивать и не обязательно, прошить МК можно через бутлоадер, SWD выведен для отладки, шаг у разъемов стандартный хоть и не 2.54мм, такие гребенки тоже продаются ---
Случайно наткнулся на этот форум, прочитал данную ветку от начала до конца. Читается, как детектив. Сильно удивлен энергичностью и энтузиазмом LeftRadio, который за столь короткий срок сделал столько работы - несколько версий замечательного прибора. Я занимаюсь похожим проектом, но у меня успехи не такие выдающиеся. Пока всё только на бумаге, до железа еще не дошло. Поскольку я домосед, мне не нужен переносной осциллограф, и я делаю стационарный. Вы же в переносном столкнулись с кучей специфических проблем, основными из которых является объем и потребление. Я такими проблемами вообще не озадачивался, у меня более классическое построение аналогового тракта.
Возможно, будет интересно посмотреть схему портативного осциллографа Velleman HPS40 (присоединил). Там они полностью избавились от необходимости отрицательного питания для аналога. Конечно, мне не совсем нравится, что входные разъемы сидят на искусственной средней точке, но для переносного прибора это вполне допустимо. А экономия потребления будет весьма заметная. Можно сделать и по-другому, двухполярное питание ведь нужно только входному каскаду, дальше уровень можно сместить в положительную область. А ведь именно до усилителя с переменным коэффициентом усиления обычно вводят сдвиг, потому что динамический диапазон последующего тракта не позволяет достичь сдвига в несколько шкал АЦП. Заодно решится проблема переключения AC/DC, если ОУ, который будет делать сдвиг, включить как параллельный НЧ-канал для AD8065. На оптореле и разделительном конденсаторе тогда будет не полное входное напряжение, а деленное. Впрочем, это стандартная реализация входного каскада осциллографа. Тоже со своими минусами.
Насчет anti-alias фильтра. Я планирую поставить дифференциальный LC-фильтр Чебышева 7-го порядка, который будет отключаться, когда осциллограф переходит в режим эквивалентной частоты выборок. В переносном осциллографе, конечно, такой сложный фильтр не нужен. Но для более низких порядков LC-фильтр оказывается совсем несложным, вполне можно поставить его перед АЦП, применив стандартные SMD-индуктивности.
У меня тоже возникла проблема скорости памяти (хочу работать на 100 МГц). Заказал синхронную SRAM IS61LPS25636A-200T, но оказалось, что к нам ее запрещено ввозить, эмбарго типа. Зато быстрой SDRAM - как грязи. Вот прямо на столе у меня лежит IS42S16400A-7T, которая имеет Fclk = 133 МГц. Но там свои проблемы. Вроде, используя burst mode можно обеспечить непрерывное чтение/запись всего объема, но контроллер памяти, конечно, усложняется. Пока не определился, что делать.
Сильно удивлен энергичностью и энтузиазмом LeftRadio, который за столь короткий срок сделал столько работы - несколько версий замечательного прибора.
Спасибо, сам удивляюсь
Quote (Леонид_Иванович)
Возможно, будет интересно посмотреть схему портативного осциллографа Velleman HPS40
Опять спасибо, гляну.
Quote (Леонид_Иванович)
Можно сделать и по-другому, двухполярное питание ведь нужно только входному каскаду, дальше уровень можно сместить в положительную область.
Я это вариант продумывал, но решил что проще сделать так как сейчас, так как получалось что для сдвига а положительный уровень нужен еще один ОУ, причем с духполярным питанием, если посчитать по энергопотреблению, так как сейчас это два ОУ на двухполярном питании, если же вводить смещение, то получится два ОУ на двухполярном(входной и для смещения) и один на однополярном, что по энергозатратности хуже.
Quote (Леонид_Иванович)
Зато быстрой SDRAM - как грязи. Вот прямо на столе у меня лежит IS42S16400A-7T, которая имеет Fclk = 133 МГц. Но там свои проблемы. Вроде, используя burst mode можно обеспечить непрерывное чтение/запись всего объема, но контроллер памяти, конечно, усложняется. Пока не определился, что делать.
Я тоже смотрел в сторону SDRAM, но так и не разобрался как с ними работать, были непонятные моменты, если знаете где можно по ним почитать как и что, то буду очень признателен ---
Закончил тестирование дизайна в ПЛИС, по сравнению с предедущим дизайном есть несколько отличий
Вставлю два своих замечания, но на них можно внимания не обращать 1. как я уже писал, лично для меня ЛА без сжатия практической ценности не имеет(при моей любимой частоте дискретизации в 1 МГц ничего путного захватить за 0.2 сек не удастся ). Если остальных это устраивает, то... 2. на мой взгляд узел PWM_BackLight, кроме источника дополнительных сильных помех, другого назначения не имеет
1. как я уже писал, лично для меня ЛА без сжатия практической ценности не имеет
Его всегда, при желании, можно будет "допилить" как угодно, в рамках ресурсов ПЛИС естественно, сейчас на ЛА просто нет времени.
Quote (LazyCat)
на мой взгляд узел PWM_BackLight, кроме источника дополнительных сильных помех, другого назначения не имеет :(
Верное замечание, этот узел действительно не нужен, я совсем забыл что подсветка теперь регулируется дискретно в два уровня яркости, исправлю, спасибо. ---
Леонид Иванович, в Ваших разработках фигурирует USB интерфейс с гальванической развязкой. Если не секрет, какая аппаратная часть этого интерфейса? ADUM4160 или что-то ещё? Для данной конструкции тоже не плохо иметь такую развязку, если будем цеплять осциллограф к ПК...
Вы попытались убить двух зайцев сразу, получить гальваническую развязку и преобразователь USB-COM встроить. В нашем случае это не подходит, у нас уже есть СР2102, не плохая МС, остаётся добавить ADUM4160 и всё.....