Последняя редакция схем/плат версии 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В в любое удобное переходное отверстие.
Чем же? Если Вы сами предлагали АЦП+ФИФО+ПЛИС, а я просто заменил ФИФО на SRAM и все
Вот, выкинул один буфер за ненадобностью , ну возможно перебдел с сер. резисторами .
И кстати еще вопрос, если тактировать АЦП скажем от 50МГц, а на SRAM подавать скажем 5МГц, то данные правильно будут захватываться, каждый десятый отсчет с АЦП? Или нужно на SRAM подавать такт с тем же периодом что и у АЦП, но один период на 10 периодов такта АЦП, в остальные 9 тактов АЦП такт на SRAM не подается?
Почему Вы хотите тактировать АЦП 50МГЦ? Вы сколько от неё хотите мегасемплов получить? И что это за ограничение 50МГц на ПЛИС, почему не 100? А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
Можно и 100, но память на 100 не заработает, а заработает макс. на ~65МГц, можно и такой генератор поставить, но на 3.3В из доступных нашелся только на 50МГц. ФИФО кстати тоже макс. ~65МГц так что тут разницы нет.
По поводу аппаратного триггера, я тут подумал, раз у большинства уже есть МАХ9113, то вполне можно ее использовать в качестве сдвоенного компаратора, 300ps задержка
---
Нет войне!
Сообщение отредактировал LeftRadio - Среда, 27.04.2011, 12:18
Можно и 100, но память на 100 не заработает, а заработает макс. на ~65МГц, можно и такой генератор поставить
Делитель можно и внутри ПЛИС сделать, кстати тогда уж лучше память на 7 нс поискать, тогда изврата не будет
Quote (LeftRadio)
у большинства уже есть МАХ9113, то вполне можно ее использовать в качестве сдвоенного компаратора, 300ps задержка :)
Далеко не у всех она есть, пусть у тех у кого она есть, она полежит, а засуньте этот узел тоже в ПЛИС Вот кстати примитивные пример реализации узла управления памятью с помощью ПЛИС
Делитель можно и внутри ПЛИС сделать, кстати тогда уж лучше память на 7 нс поискать, тогда изврата не будет
Зачем брать генератор на 100МГц, который дороже чем на 50МГц, а потом делить частоту? Память на 100Мгц я не нашел подходящую, кстати где Вы раздобыли km736v689 для того осцилла что на РадиоКот?
Quote (atmicandr)
Далеко не у всех она есть, пусть у тех у кого она есть, она полежит, а засуньте этот узел тоже в ПЛИС
Ну а компаратор то все равно нужен, или как? Я ж не предлагаю триггер заменять, триггер будет внутри ПЛИС, я предлагаю поставить ее в качестве компаратора Если не МАХ9113, то все равно компаратор нужен
Quote (atmicandr)
Вот кстати примитивные пример реализации узла управления памятью с помощью ПЛИС
Ну да, то же что и я предлагаю, практически один в один ---
Нет войне!
Сообщение отредактировал LeftRadio - Среда, 27.04.2011, 12:32
Память на 100Мгц я не нашел подходящую, кстати где Вы раздобыли km736v689 для того осцилла что на РадиоКот?
Я сам не смог найти, мне автор осциллографа почтой отправил из Калининграда микросхему D431636LGF-A6 (NEC), но он вапаял ее с материнки какой то. Вообще для прибора подходят как 32, так и 36 разрядные ОЗУшки, с объемом памяти не менее 32Кб
Quote (LeftRadio)
Ну да, то же что и я предлагаю, практически один в один
Целиком проект лежит на сайте Выбрать AVR DSO там и посмотрите как проще это все внутри ПЛИС реализовать А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
Сообщение отредактировал atmicandr - Среда, 27.04.2011, 13:01
Извините, что вмешиваюсь в Ваше обсуждение, но вижу, что тут никто никого не понимает Никто так и не объяснил зачем нужен огромный объем памяти(при этом даже не решили глубину горизонтальной развертки, а именно это и ЕСТЬ ОБЪЕМ ОЗУ) и в чем смысл лепить ВСЕ СБОКУ !!!!!! Если выборки с АЦП подавать в ОЗУ через ПЛИС, то навесного НИЧЕГО НЕ НАДО !!!!!!!!!!! Ни буферов 74HC245, ни МАХ9113 - все регистры и цифровые компараторы находятся ВНУТРИ ПЛИС !!!! Зачем ВСЕ усложнять ??? Это единственный вопрос, который меня интересует
в качестве компаратора Если не МАХ9113, то все равно компаратор нужен :)
Я не знаю какой именно должен быть компаратор, да и вообще какими его основными характеристиками Вы при выборе руководствовались? Поди вообще подойдёт LM393?
Извините, что вмешиваюсь в Ваше обсуждение, но вижу, что тут никто никого не понимает Никто так и не объяснил зачем нужен огромный объем памяти(при этом даже не решили глубину горизонтальной развертки, а именно это и ЕСТЬ ОБЪЕМ ОЗУ) и в чем смысл лепить ВСЕ СБОКУ !!!!!! Если выборки с АЦП подавать в ОЗУ через ПЛИС, то навесного НИЧЕГО НЕ НАДО !!!!!!!!!!! Ни буферов 74HC245, ни МАХ9113 - все регистры и цифровые компараторы находятся ВНУТРИ ПЛИС !!!! Зачем ВСЕ усложнять ??? Это единственный вопрос, который меня интересует ;)
Я вообще можно сказать уже давно это предлагаю, но... это превращается в навязчивую идею фикс. Мне если честно шибко интересно когда проект приобретет настолько окончательную форму чтобы при возможности его можно было повторить.
Вот, выкинул один буфер за ненадобностью , ну возможно перебдел с сер. резисторами .
Я вообще не понял зачем нужен буфер U23, объясните мне до меня не доходит это никак. Далее, зачем Вы задействуете вывод 22 у ПЛИС для подачи тактового сигнала с генератора. Вы даташит читали? Для этого в ПЛИСине 9572 предусмотрены специальные выводы, маркируемые как GCK. У Вас во первых стоит только один генератор, во вторых у Вас стоит в схеме только одна ПЛИС (параллельного их соединения нет, а следовательно не надо их синхронизировать одну от другой). Поменяйте нумерацию вывода 22 на номер 5. В остальном сверяйтесь с даташитом. Старайтесь глобальные выводы как линии ввода-вывода не использовать. А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
Сообщение отредактировал atmicandr - Среда, 27.04.2011, 13:39
Никто так и не объяснил зачем нужен огромный объем памяти(при этом даже не решили глубину горизонтальной развертки, а именно это и ЕСТЬ ОБЪЕМ ОЗУ) и в чем смысл лепить ВСЕ СБОКУ !!!!!! Если выборки с АЦП подавать в ОЗУ через ПЛИС, то навесного НИЧЕГО НЕ НАДО !!!!!!!!!!! Ни буферов 74HC245, ни МАХ9113 - все регистры и цифровые компараторы находятся ВНУТРИ ПЛИС !!!! Зачем ВСЕ усложнять ??? Это единственный вопрос, который меня интересует ;)
Возможно и не решили Я уже говорил что не менее 2-ух "экранов", хорошо давайте тогда ставить что то типа epm240, но тогда плата никак не будет под КПК и остается вопрос вместится ли весь необходимый дизайн в epm240 или надо брать epm570, хотя лично мне больше нравится так как сейчас реализовано Да и компаратор я предполагал не цифровой, а аналоговый
Quote (atmicandr)
Я не знаю какой именно должен быть компаратор, да и вообще какими его основными характеристиками Вы при выборе руководствовались? Поди вообще подойдёт LM393?
Ну да, при входной частоте 5МГц меандра ловить фронты LM393 как раз подходит, учитывая длительность фронтов ну пусть даже по 25-50нС
Quote (atmicandr)
Поменяйте нумерацию вывода 22 на номер 5. В остальном сверяйтесь с даташитом. Старайтесь глобальные выводы как линии ввода-вывода не использовать.
Спасибо за разъяснение, а чем плохо глобальные выводы использовать? ---
Возможно и не решили Я уже говорил что не менее 2-ух "экранов"
Так давайте уже наконец решим ! Значит 2 экрана, а это 480 точек -> 480 адресов ОЗУ -> 10-ти разрядный адрес ОЗУ(остальные адреса разводить НЕ НАДО)
Quote (LeftRadio)
Да и компаратор я предполагал не цифровой, а аналоговый
Так а зачем ? Ведь цифровой компаратор(состоит из двух сумматоров на каждый канал) и так уже есть и используется для выделения max и min при усреднении, а в начальный момент старта захвата он используется как тригер. Это самое простое и надежное решение.
Сообщение отредактировал LazyCat - Среда, 27.04.2011, 15:49
Я в ПЛИСах не силен, но можно прикинуть По две восьмиразрядные шины на входе ПЛИСа и такие же на выходе + 11-битная шина адреса + управление = корпус должен иметь не меньше 64 ног. По ресурсам ПЛИСа имеем следующее : нужно построить 4 восьмиразрядных сумматора и 4 восьмиразрядных регистров для вычисления и сохранения min и max, это же будет использоваться и при старте захвата, значит плюс еще один триггер + 14-битовый счетчик для прореживания и такой же 14-битовый цифровой компаратор(тут уже на исключающих ИЛИ очень просто) для перезапуска этого счетчика и 14-битовый регистр для хранения коэффициента прореживания + 11-битовый счетчик на адрес ОЗУ + куча вспомогательной логики.
Следовательно EPM240 вполне подойдет, но хотелось бы подобрать что-нибудь из Xilinx (типа XC95144XL) ! Хотя с ФИФО все значительно упрощается
Сообщение отредактировал LazyCat - Среда, 27.04.2011, 21:56
По ресурсам ПЛИСа имеем следующее : нужно построить 4 восьмиразрядных сумматора и 4 восьмиразрядных регистров для вычисления и сохранения min и max, это же будет использоваться и при старте захвата, значит плюс еще один триггер + 14-битовый счетчик для прореживания и такой же 14-битовый цифровой компаратор(тут уже на исключающих ИЛИ очень просто) для перезапуска этого счетчика и 14-битовый регистр для хранения коэффициента прореживания + 11-битовый счетчик на адрес ОЗУ + куча вспомогательной логики.
Замечательно! Еще замечательней было бы, если Вам не тяжело, прикинуть это все в схемном виде
Quote (LazyCat)
Следовательно EPM240 вполне подойдет, но хотелось бы подобрать что-нибудь из Xilinx (типа XC95144XL) !
Хорошо, соглашусь, единственное это EPM240 стоит дешевле XC95144XL, поэтому я за EPM240 если уж на то пошло ---
Для полной уверенности лучше в САПР для ПЛИС нарисовать схему и скомпилировать проект, там уже точно видно будет хватит ей ресурсов или нет, а то получается гадание на кофейной гуще. Я не говорил категорично что глобальные выводы использовать под линии ввода-вывода плохо, можно, но gck1 будьте добры использовать по назначению. Да и потом реально не надо на плате корпусов плодить, засуньте компаратор в ПЛИС. А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
Сообщение отредактировал atmicandr - Четверг, 28.04.2011, 06:03
Можно спокойно разделить на две платы. И поставить их "бутербродом". Дополнительные плюсы - можно менять любую из двух отдельно. Например накосячили в плате с плис/ацп/аналог - ее и изменять. А плата с контроллером/экраном/кнопками/интерфейсами остается неизменной. Если плата одна любое изменение приводит к полному переизготовлению всего прибора. Даже если не прореживать сигнал в ПЛИС, все равно проход шины с АЦП через ПЛИС дает ощутимые плюсы. Сигнал можно будет защелкивать в ПЛИС и сделать синхронный дизайн. Это позволяет избавиться от "гонки сигналов" ведь даже разная длина линий на ВЧ приводит к тому, что D0 например обгонит D7 и придет к памяти раньше. Это кстати причина по которой я AD9288 решил не использовать. Ее не развести красиво - шины данных расположены на противоположных сторонах корпуса. Если минимизируем одну - удлиняется вторая. И разница между D0 и D7 выходит большая. Я себе оставил возможность перейти на 100 мегасэмплов - вдруг найду память на 7нС И тут уже разная длина линий в шине данных может испортить всю малину. Ну и если пропускать шину через ПЛИС, то сам бог велел и компаратор сделать цифровым. Внешний это еще +200р примерно. По Вашей последней схеме абсолютно непонятно как Вы собираетесь читать память. Шина данных заведена в контроллер, а с шиной адреса неясности. Ее можно не заводить, но тогда ресурсов плис должно хватать на то, чтоб предоставить интерфейс к памяти. А для этого нужна какая то параллельная шина. Т.е. все равно от соединения контроллера с плис не уйти. SRAM то не ФИФО, сама адресами управлять не умеет. Можно сделать конечно задание адреса через последовательный интерфейс, но тогда обязательно иметь в контроллере память достаточную для считывания выборок двух каналов полностью. STM32F100 такой памятью не обладает. Норма сейчас от 8 до 16кб на канал. Ну и отвечу тут - зачем нужна память. Все просто, самое главное отличие цифрового осциллографа от аналогового в том, что цифровик умеет работать в режиме однократного захвата. Захватил данные по условию и изучай в свое удовольствие. Тут уже одного-двух экранов очень мало. А второй раз записать может не получиться - к примеру условие появляется раз в час или раз в сутки. Или из личного опыта: условие - выход из строя модуля IGBT за 200$. Каждая запись - 200$ Лучше сразу записать по максимуму. Память = время. Больше памяти - больше времени доступного для изучения за одну запись. Именно поэтому современные осциллографы имеют прилично памяти на канал, да еще некоторые могут предоставить так называемую "длинную память". Это вообще 1-2 мегабайта. Но карманный обойдется и 2*16кБ. Все же в нем вычислительные способности контроллера ограничены. Не ставить же как в Риголе - Блекфин
Сообщение отредактировал kison - Четверг, 28.04.2011, 09:00
По Вашей последней схеме абсолютно непонятно как Вы собираетесь читать память. Шина данных заведена в контроллер, а с шиной адреса неясности.
XC9572 спокойно может переключать адреса, как и сигналы чтения с памяти по такту с МК, да и зачем полностью вычитывать, прочитали сколько надо вывели на экран, горизонтальную "прокрутку" сделать тоже не проблема, ну да неважно это уже так как решили ставить ПЛИС между АЦП и SRAM. Самый актуальный для меня вопрос это влезет ли дизайн в EPM240 или надо закладываться на EPM570. По поводу памяти, согласен ---
Самый актуальный для меня вопрос это влезет ли дизайн в EPM240 или надо закладываться на EPM570.
Что в нем актуального? EPM570 существует и в 100 ногом корпусе. Заменить 240 на 570 можно без изменения схемы. Вообще в 240LE влезает удивительно много, но если не хватит, то заменить довольно легко. Вот с начинки плис и надо начинать. Потому как после этого становится ясно сколько линий сязи с МК должно быть, сколько линий к ОЗУ. Так что правильная последовательность - ТЗ, в котором определить нужные развертки, объем памяти и вообще все, что затрагивает ПЛИС. Дальше дизайн плис+ моделирование. И только потом схема. Она применительно к плис вторична - раскидать выходы начинки по разным выводам несложно.
Left Radio По ошибке перенес это сообщение в курилrу, вернул обратно :)
Судя по схеме таки плис + SRAM = раздувшееся фифо. Счетчик стандартный не годится - там тоже 1-2-5-10 шаг должен быть. А на 5 стандартные счетчики не делят.
Сообщение отредактировал kison - Пятница, 29.04.2011, 19:48
Спасибо. А не подскажете как мне скрестить код со схемным редактором? И как создать схемный элемент с текстовым описанием?
----------------------------------------------------------------------------------------- Обновил софт, пока выкладываю тут, если не будет ошибок обновлю в шапке. Работает и без "железа" в демо режиме, это если кто не в курсе
Смотрю, пока у меня не было инета, здесь вовсю идет движуха Но обсуждаем мы всетаки разные осциллы. Вот накрапал структурную схему того осцилла, который я предлагал. Немного поясню. На схеме не показана внутренняя шина, по которой в RG1 и RG2 вначале заносится порог триггера, и не показана цепь с обычным триггером для старта захвата(здесь уже обсуждали), на который заведены через схему выбора полярности оба сигнала переноса Carry. В RG3 заносится значение прореживания выборок(вместе со счетчиком CT1 это работает в режиме автозагрузки, типа как UART в микроконтроллерах), можно сделать и на цифровом компараторе, но мне так нравится больше. CT2 - просто линейный счетчик для формирования адреса ОЗУ в режиме захвата. Также с внутренней шины данных в него можно заносить AddrHigh & AddrLow в режиме чтения ОЗУ. INV - простой набор инверторов. MX - мультиплексор для передачи данных АЦП в режиме максимальной(и в 2 раза меньшей) дискретизации, а также для передачи min & max в остальных режимах. Хотелось бы добавить, с МК ПЛИС должна быть связана следующими сигналами: - 8-и битная шина данных(описана выше) - 3-х битная шина адреса внутреннего блока (RG1, RG2, RG3high, RG3low, CT2high, CT2low, RGmode - различные упр. биты) - сигналы управления WR(запись вышеозначенных регистров), RD(при чтении RG1 и RG2 читается четный и нечетный байт из ОЗУ по адресу записанному в CT2 с автоинкрементом) - может еще что-нибудь потребуется
Мда, попытался изобразить Вашу схему в ПЛИС и ничего у меня не вышло, на данный момент мне к сожалению не хватает просто структурной схемы Боюсь без помощи с начинкой в ПЛИС проект затянется в неопределенность...
Вопрос, а почему Вы СТ2 сделали 14-ти битным? Может сразу 16?
---
Нет войне!
Сообщение отредактировал LeftRadio - Понедельник, 02.05.2011, 11:57
Вопрос, а почему Вы СТ2 сделали 14-ти битным? Может сразу 16?
Банальная опечатка Нужно делать на весь объем памяти, ног ПЛИСа предостаточно ! Кстати, на досуге подумал, что RGmode надо выкинуть и задавать режимы отдельными линиями от МК. А 3-х битная шина адреса будет задавать блоки RG1a, RG1b, RG2a, RG2b, RG3low, RG3high, CT2low, CT2high.
Кстати, на досуге подумал, что RGmode надо выкинуть и задавать режимы отдельными линиями от МК. А 3-х битная шина адреса будет задавать блоки RG1a, RG1b, RG2a, RG2b, RG3low, RG3high, CT2low, CT2high.
Хорошо, давайте тогда, чтобы ускорить дело, нарисуем полную схему дизайна в ПЛИС и будем уже моделировать, и т.д.
------------------------------------------------------------- Разобрался немного , начал рисовать предложенную схему в ПЛИС.
---
Нет войне!
Сообщение отредактировал LeftRadio - Вторник, 03.05.2011, 17:32
Насколько понял сигналы Carry(кстати почему именно сумматор использовать, а не компаратор например?) заведен на разрешение записи параллельных регистров, но в таком случае в регистр попадут данные со следующим фронтом клока, может выход сумматора соединить с клоком регистра, а запись всегда разрешена? Или я бред несу? И про порог триггера в RG1, RG2 тоже не совсем понятно зачем, ведь как я понял RG1 и RG2 используются только для выборки макс./мин.
-------------------------------------------------------------------------------- Ну вот, набросал схему, это для одного канала за исключением нескольких блоков, хотелось бы услышать критику/предложения и т.д. Приложил еще результат компиляции. Так и не придумал как сделать предысторию триггера, можно конечно без разрешения триггера записывать в память, а при срабатывании просто запоминать защелкой адрес SRAM в который записывались данные при срабатывании.
кстати почему именно сумматор использовать, а не компаратор например
Я так понял, что компаратор в ПЛИСе сделан на основе сумматора, что видно по названиям его выходов, так что у Вас все правильно в схеме.
Quote (LeftRadio)
в регистр попадут данные со следующим фронтом клока
Должен быть синхронный режим работы, т.е. данные должны защелкиваться только когда они установились. Кстати это тот же клок, что и на АЦП.
Quote (LeftRadio)
И про порог триггера в RG1, RG2 тоже не совсем понятно зачем
Так правильно и немного проще, ведь перед началом захвата в RG1 и RG2 всеравно нужно что-то заносить, а так убиваем двух зайцев Так что inst22 и inst27 лишние.
В inst23 нужно завести и сигналы второго канала. Остальное не совсем понял и пока воздержусь от комментариев.
P.S. И куда вдруг делись все специалисты по ПЛИСам ?
Сообщение отредактировал LazyCat - Среда, 04.05.2011, 21:46
P.S. И куда вдруг делись все специалисты по ПЛИСам ?
Я вообще ничего не понимаю в схемном вводе. Хоть на примитивах, хоть на макроблоках. В моем понимании то, что в NS3.pdf вообще собираться не должно. Например у inst11 и inst12 объединены входы. И больше ничего туда не подано. Если так сделать в Верилоге - получу много ругани от компилера. А тут это проходит. У inst26 - D триггер - такт объединен со входом данных. Что туда запишется непонятно. Это не совсем железный D триггер - такт к триггеру LE идет напрямую, а вот данные могут проходить через LUT ( и почти наверняка проходят )- т.е. имеют задержку. В доке есть схема LE - очень полезно представлять что там и как устроено. Я думаю всегда 0 будет писаться - из за задержки. Это чисто по узлам - там таких странных для меня подходов много. Но повторюсь - я никогда не пробовал сделать что то на стандартных макроблоках. Так что может чего не понимаю и так как есть - нормально. А сама предполагаемая логика работы мне лично вообще непонятна.
Сообщение отредактировал kison - Четверг, 05.05.2011, 00:23
Так правильно и немного проще, ведь перед началом захвата в RG1 и RG2 всеравно нужно что-то заносить
Можно обнулять/устанавливать в 255 например, но данные в регистрах перепишутся когда на входе будет больше/меньше, если использовать компаратор только для старта записи в SRAM то согласен, так как Вы предлагаете самый оптимальный способ. Я тут на досуге подумал сделать возможность циклической записи в первые адреса SRAM пока не сработает триггер, при срабатывании заполнять память до конца или установленного адреса, так можно получить предысторию триггера. Тогда не обойтись inst19, inst20 нужен еще один компаратор. Тут конечно нужно еще подумать
Quote (LazyCat)
В inst23 нужно завести и сигналы второго канала.
Не совсем понял сигнал какого клока и заем нужно завести на мультиплексор.
Quote (kison)
Например у inst11 и inst12 объединены входы. И больше ничего туда не подано.
Туда идет клок, это глюк при вводе на печать, почему то не выводятся соединения линий. А так, компилер и мне голову просверлит если никуда не подсоединить Вот, вывел картинкой.
Quote (kison)
У inst26 - D триггер - такт объединен со входом данных.
Это нужно симулировать, спасибо, не знал этих особенностей
------------------------------------------------------------------------------------ Просимулировал, действительно в триггер всегда записывается ноль, но можно дату просто завести на VCC, сейчас попробую. Кстати симуляция говорит что только на одном элементе "И" задержка порядка ~8нс.
Кстати симуляция говорит что только на одном элементе "И" задержка порядка ~8нс.
Так и есть. А если их будет два последовательно - все равно 8. Это не на И задержка, а на LUT-е. Там можно довольно серьезную функцию собрать и все равно будет одинаковая задержка.
Так обсуждать схему трудно ! Нужно рисовать сразу оба канала, заодно и ресурсы ПЛИСа можно оценивать. И нужно утвердить техзадание. Если очень нужна предыстория, то это делается элементарно, но нужно уяснить, это отдельный режим, включаемый по желанию, или осцилл постоянно работает в этом режиме(прощай батарея !!!).
Так и есть. А если их будет два последовательно - все равно 8. Это не на И задержка, а на LUT-е.
Спасибо, ценная информация
Quote (LazyCat)
Нужно рисовать сразу оба канала, заодно и ресурсы ПЛИСа можно оценивать.
Хорошо, заодно и распишу логику работы схемы что бы всем понятно было
Quote (LazyCat)
Если очень нужна предыстория, то это делается элементарно, но нужно уяснить, это отдельный режим, включаемый по желанию, или осцилл постоянно работает в этом режиме
Ладно, и правда давайте пока сделаем без придыстории, потом можно будет всегда добавить как отдельный режим. ---
Нет войне!
Сообщение отредактировал LeftRadio - Четверг, 05.05.2011, 20:46
Ладно, и правда давайте пока сделаем без придыстории, потом можно будет всегда добавить как отдельный режим.
А предыстория не увеличивает особо потребление. Добавляется только от ОЗУ - на 50 мегасэмплах это примерно 30-40мА. Все остальное так же - АЦП работают, генератор тоже. Причем при наличии сигнала на входе потребление ОЗУ добавляется максимум на время одного периода входного сигнала. Смотрим например на сигнал 2КГц - максимум 500мкс лишнего потребления в 40мА. Пусть за секунду 20 измерений - это 10 миллисекунд лишнего времени работы предыстории. Добавляет 1/100 от 40мА - 0,4мА к потреблению прибора. 400 микроампер всего! Реально разница в потреблении вообще будет незаметна. Ну отработает прибор не 300 минут, а 298 от одной зарядки. Разве это существенно? Так зачем отказываться от этой одной из самых ценных фич цифрового осцилла?
Сообщение отредактировал kison - Пятница, 06.05.2011, 06:29
Значит мы говорим о разной предыстории Имелся ввиду режим, когда память постоянно и циклически заполняется выборками(заметьте, АЦП работает на максимальной частоте) и только после срабатывания триггера заполняется окно захвата и весь процесс останавливается. То, что описали Вы лишь жалкая пародия этого режима. Ну и кто назовет его экономичным ? Как по мне, это абсолютно ненужный режим, тем более для карманника !
О одной и той же. Пример - делим память пополам - одна половина это предыстория, другая - то, что после триггера. На входе синус 2КГц. Память например 16 килобайт (8 до и 8 после). Начинаем накопление, засасываем первые 8К и начинаем ждать триггер. При этом оцифровка естественно продолжается. Триггер придет максимум через один период входного сигнала - 500 микросекунд. После триггера оцифровываем оставшиеся 8К. Оверхед - время после накопления первых 8К и приходом триггера. Это совсем немного. АЦП конечно работает на максимальной частоте все время. Теперь ситуация - нет предыстории. Ждем триггера - АЦП работает на максимальной частоте,у нас же цифровой триггер. Максимум ждем все те же 500 микросекунд. Дождались - оцифровываем все 16К. Вот посмотрите в чем разница. А разница в единственном пункте - во время ожидания в первом варианте идет запись в ОЗУ, а во втором нет. Все остальное - частота АЦП, время оцифровки - идентично. Выходит что лишние потребление дает ОЗУ, да и то только во время ожидания триггера - 500 микросекунд в этом случае. Ну и выше для этого случая - пусть мы 20 раз за секунду производим оцифровку. ОЗУ отработает дополнительно 500мкс*20 = 10 миллисекунд. Пусть оно потребляет 50мА при работе - если привести к секунде это 1% времени. Итого - 0,5мА в среднем добавится к потреблению прибора.
Сообщение отредактировал kison - Пятница, 06.05.2011, 10:01