Здравствуйте, гость ( Вход | Регистрация )

Форум » Сайт и форум » Разработки и Статьи на сайте » Все вопросы касающиеся Neil Scope (Ваши замечания, предложения и т.д.)
Все вопросы касающиеся Neil Scope
LeftRadio Пятница, 26.03.2010, 21:41 | Сообщение # 1
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Шапка темы.

--
NEIL SCOPE 2



--------------------------------------------------------------------------------------

--
NEIL SCOPE 3

Схема ревизия 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

-------------------------------------------------------------------

-------------------------------------------------------------------

Прошивка ПЛИС --- 19/05/15

MCU Bootloader (загрузчик МК) --- 17/10/13
Прошивка МК (ЖК с 8бит, 65к цветов) --- 2015_17_15
Прошивка МК (ЖК с 8 бит, 262к цветов) --- 2015_17_15
Прошивка МК для (ЖК с 16бит, HC573, 262к цветов) --- 2015_12_17

Исходники ПЛИС (github) --- 11_12_13
Исходники МК (github) --- 12/02/15
Архивные прошивки МК

Краткое описание осциллографа
Протокол обмена NeilScope3 с ПК

//----------------------------------------------------------------------------------------------------------
Прошивальщик МК (автор Ильдар) - 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"

Драйвера для NeilScope3 (под перепрошитые VID/PID) - NeilScopeDriver.zip

Процедура прошивки МК(обновлено 23.08.2015) - FirmwareManual.pdf

Для последующих обновлений просто запускаем NSFlashLoader, и обновляемся. Джампер при этом трогать уже не нужно.

//----------------------------------------------------------------------------------------------------------
.
.
.
Важные замечания по сборке

На плате не указана перемычка с 10-го вывода(INTRL) 74НС4052(U15) на вывод SWDIO МК, можно и просто подпаять пока на +3.3В в любое удобное переходное отверстие.

//----------------------------------------------------------------------------------------------------------

Фото платы ревизии 3:



Демо видео работы осциллографа, ревизия 1.9

----------------------------------------------------------------------------------------
Схема и плата ByteBlusterMV для программирования EPM570, оригинал здесь. Эту плату делал сам, проверена, работает.
.
.
//----------------------------------------------------------------------------------------------------------

Любое коммерческое использование данного проекта категорически запрещено. По всем вопросам обращаться wladkam(гав)mail.com
Прикрепления: 5561811.jpg (244.1 Kb) · 2201731.jpg (212.8 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Четверг, 17.12.2015, 04:59  
 
LeftRadio Среда, 27.04.2011, 11:26 | Сообщение # 1201
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (atmicandr)
Ой как Вы себе жизнь усложнили

Чем же? Если Вы сами предлагали АЦП+ФИФО+ПЛИС, а я просто заменил ФИФО на SRAM и все :)

Вот, выкинул один буфер за ненадобностью :) , ну возможно перебдел с сер. резисторами .

И кстати еще вопрос, если тактировать АЦП скажем от 50МГц, а на SRAM подавать скажем 5МГц, то данные правильно будут захватываться, каждый десятый отсчет с АЦП? Или нужно на SRAM подавать такт с тем же периодом что и у АЦП, но один период на 10 периодов такта АЦП, в остальные 9 тактов АЦП такт на SRAM не подается?

Прикрепления: 9650841.pdf (30.6 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Среда, 27.04.2011, 11:47  
 
atmicandr_old Среда, 27.04.2011, 12:06 | Сообщение # 1202
Местный
Группа: Друзья
Сообщений: 186
Статус: Offline
Почему Вы хотите тактировать АЦП 50МГЦ? Вы сколько от неё хотите мегасемплов получить? И что это за ограничение 50МГц на ПЛИС, почему не 100?

А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
 
LeftRadio Среда, 27.04.2011, 12:14 | Сообщение # 1203
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Можно и 100, но память на 100 не заработает, а заработает макс. на ~65МГц, можно и такой генератор поставить, но на 3.3В из доступных нашелся только на 50МГц. ФИФО кстати тоже макс. ~65МГц так что тут разницы нет.

По поводу аппаратного триггера, я тут подумал, раз у большинства уже есть МАХ9113, то вполне можно ее использовать в качестве сдвоенного компаратора, 300ps задержка :)


---

Нет войне!


Сообщение отредактировал LeftRadio - Среда, 27.04.2011, 12:18  
 
atmicandr_old Среда, 27.04.2011, 12:20 | Сообщение # 1204
Местный
Группа: Друзья
Сообщений: 186
Статус: Offline
Quote (LeftRadio)
Можно и 100, но память на 100 не заработает, а заработает макс. на ~65МГц, можно и такой генератор поставить

Делитель можно и внутри ПЛИС сделать, кстати тогда уж лучше память на 7 нс поискать, тогда изврата не будет
Quote (LeftRadio)
у большинства уже есть МАХ9113, то вполне можно ее использовать в качестве сдвоенного компаратора, 300ps задержка :)
Далеко не у всех она есть, пусть у тех у кого она есть, она полежит, а засуньте этот узел тоже в ПЛИС
Вот кстати примитивные пример реализации узла управления памятью с помощью ПЛИС
Прикрепления: scope_schematic.pdf (118.7 Kb)


А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com

Сообщение отредактировал atmicandr - Среда, 27.04.2011, 12:22  
 
LeftRadio Среда, 27.04.2011, 12:27 | Сообщение # 1205
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (atmicandr)
Делитель можно и внутри ПЛИС сделать, кстати тогда уж лучше память на 7 нс поискать, тогда изврата не будет

Зачем брать генератор на 100МГц, который дороже чем на 50МГц, а потом делить частоту? Память на 100Мгц я не нашел подходящую, кстати где Вы раздобыли km736v689 для того осцилла что на РадиоКот?

Quote (atmicandr)
Далеко не у всех она есть, пусть у тех у кого она есть, она полежит, а засуньте этот узел тоже в ПЛИС

Ну а компаратор то все равно нужен, или как? Я ж не предлагаю триггер заменять, триггер будет внутри ПЛИС, я предлагаю поставить ее в качестве компаратора :) Если не МАХ9113, то все равно компаратор нужен :)

Quote (atmicandr)
Вот кстати примитивные пример реализации узла управления памятью с помощью ПЛИС

Ну да, то же что и я предлагаю, практически один в один :)


---

Нет войне!


Сообщение отредактировал LeftRadio - Среда, 27.04.2011, 12:32  
 
atmicandr_old Среда, 27.04.2011, 12:46 | Сообщение # 1206
Местный
Группа: Друзья
Сообщений: 186
Статус: Offline
Quote (LeftRadio)
Память на 100Мгц я не нашел подходящую, кстати где Вы раздобыли km736v689 для того осцилла что на РадиоКот?

Я сам не смог найти, мне автор осциллографа почтой отправил из Калининграда микросхему D431636LGF-A6 (NEC), но он вапаял ее с материнки какой то. Вообще для прибора подходят как 32, так и 36 разрядные ОЗУшки, с объемом памяти не менее 32Кб
Quote (LeftRadio)
Ну да, то же что и я предлагаю, практически один в один :)

Целиком проект лежит на сайте Выбрать AVR DSO там и посмотрите как проще это все внутри ПЛИС реализовать


А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com

Сообщение отредактировал atmicandr - Среда, 27.04.2011, 13:01  
 
LazyCat Среда, 27.04.2011, 13:02 | Сообщение # 1207
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Извините, что вмешиваюсь в Ваше обсуждение, но вижу, что тут никто никого не понимает :(
Никто так и не объяснил зачем нужен огромный объем памяти(при этом даже не решили глубину горизонтальной развертки, а именно это и ЕСТЬ ОБЪЕМ ОЗУ) и в чем смысл лепить ВСЕ СБОКУ !!!!!!
Если выборки с АЦП подавать в ОЗУ через ПЛИС, то навесного НИЧЕГО НЕ НАДО !!!!!!!!!!! Ни буферов 74HC245, ни МАХ9113 - все регистры и цифровые компараторы находятся ВНУТРИ ПЛИС !!!!
Зачем ВСЕ усложнять ??? Это единственный вопрос, который меня интересует ;)
 
atmicandr_old Среда, 27.04.2011, 13:37 | Сообщение # 1208
Местный
Группа: Друзья
Сообщений: 186
Статус: Offline
Quote (LeftRadio)
в качестве компаратора :) Если не МАХ9113, то все равно компаратор нужен :)

Я не знаю какой именно должен быть компаратор, да и вообще какими его основными характеристиками Вы при выборе руководствовались? Поди вообще подойдёт LM393?

Добавлено (27.04.2011, 13:08)
---------------------------------------------

Quote (LazyCat)
Извините, что вмешиваюсь в Ваше обсуждение, но вижу, что тут никто никого не понимает :(
Никто так и не объяснил зачем нужен огромный объем памяти(при этом даже не решили глубину горизонтальной развертки, а именно это и ЕСТЬ ОБЪЕМ ОЗУ) и в чем смысл лепить ВСЕ СБОКУ !!!!!!
Если выборки с АЦП подавать в ОЗУ через ПЛИС, то навесного НИЧЕГО НЕ НАДО !!!!!!!!!!! Ни буферов 74HC245, ни МАХ9113 - все регистры и цифровые компараторы находятся ВНУТРИ ПЛИС !!!!
Зачем ВСЕ усложнять ??? Это единственный вопрос, который меня интересует ;)

Я вообще можно сказать уже давно это предлагаю, но... это превращается в навязчивую идею фикс. Мне если честно шибко интересно когда проект приобретет настолько окончательную форму чтобы при возможности его можно было повторить.

Добавлено (27.04.2011, 13:37)
---------------------------------------------

Quote (LeftRadio)
Вот, выкинул один буфер за ненадобностью :) , ну возможно перебдел с сер. резисторами .

Я вообще не понял зачем нужен буфер U23, объясните мне :( до меня не доходит это никак. Далее, зачем Вы задействуете вывод 22 у ПЛИС для подачи тактового сигнала с генератора. Вы даташит читали? Для этого в ПЛИСине 9572 предусмотрены специальные выводы, маркируемые как GCK. У Вас во первых стоит только один генератор, во вторых у Вас стоит в схеме только одна ПЛИС (параллельного их соединения нет, а следовательно не надо их синхронизировать одну от другой). Поменяйте нумерацию вывода 22 на номер 5. В остальном сверяйтесь с даташитом. Старайтесь глобальные выводы как линии ввода-вывода не использовать.


А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com

Сообщение отредактировал atmicandr - Среда, 27.04.2011, 13:39  
 
LeftRadio Среда, 27.04.2011, 14:15 | Сообщение # 1209
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (LazyCat)
Никто так и не объяснил зачем нужен огромный объем памяти(при этом даже не решили глубину горизонтальной развертки, а именно это и ЕСТЬ ОБЪЕМ ОЗУ) и в чем смысл лепить ВСЕ СБОКУ !!!!!!
Если выборки с АЦП подавать в ОЗУ через ПЛИС, то навесного НИЧЕГО НЕ НАДО !!!!!!!!!!! Ни буферов 74HC245, ни МАХ9113 - все регистры и цифровые компараторы находятся ВНУТРИ ПЛИС !!!!
Зачем ВСЕ усложнять ??? Это единственный вопрос, который меня интересует ;)

Возможно и не решили :) Я уже говорил что не менее 2-ух "экранов", хорошо давайте тогда ставить что то типа epm240, но тогда плата никак не будет под КПК и остается вопрос вместится ли весь необходимый дизайн в epm240 или надо брать epm570, хотя лично мне больше нравится так как сейчас реализовано :) Да и компаратор я предполагал не цифровой, а аналоговый :)

Quote (atmicandr)
Я не знаю какой именно должен быть компаратор, да и вообще какими его основными характеристиками Вы при выборе руководствовались? Поди вообще подойдёт LM393?

Ну да, при входной частоте 5МГц меандра ловить фронты LM393 как раз подходит, учитывая длительность фронтов ну пусть даже по 25-50нС ;)

Quote (atmicandr)
Поменяйте нумерацию вывода 22 на номер 5. В остальном сверяйтесь с даташитом. Старайтесь глобальные выводы как линии ввода-вывода не использовать.

Спасибо за разъяснение, а чем плохо глобальные выводы использовать?



---

Нет войне!
 
LazyCat Среда, 27.04.2011, 15:12 | Сообщение # 1210
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (LeftRadio)
Возможно и не решили :) Я уже говорил что не менее 2-ух "экранов"

Так давайте уже наконец решим ! Значит 2 экрана, а это 480 точек -> 480 адресов ОЗУ -> 10-ти разрядный адрес ОЗУ(остальные адреса разводить НЕ НАДО)

Quote (LeftRadio)
Да и компаратор я предполагал не цифровой, а аналоговый

Так а зачем ? Ведь цифровой компаратор(состоит из двух сумматоров на каждый канал) и так уже есть и используется для выделения max и min при усреднении, а в начальный момент старта захвата он используется как тригер. Это самое простое и надежное решение.


Сообщение отредактировал LazyCat - Среда, 27.04.2011, 15:49  
 
LeftRadio Среда, 27.04.2011, 16:03 | Сообщение # 1211
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Два экрана это 800 точек, ну да неважно. Хорошо, давайте ставить ПЛИС между АЦП и SRAM, но в таком случае вопрос, какую ПЛИС ставить будем?

---

Нет войне!


Сообщение отредактировал LeftRadio - Среда, 27.04.2011, 18:27  
 
LazyCat Среда, 27.04.2011, 21:47 | Сообщение # 1212
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Я в ПЛИСах не силен, но можно прикинуть :) По две восьмиразрядные шины на входе ПЛИСа и такие же на выходе + 11-битная шина адреса + управление = корпус должен иметь не меньше 64 ног. По ресурсам ПЛИСа имеем следующее : нужно построить 4 восьмиразрядных сумматора и 4 восьмиразрядных регистров для вычисления и сохранения min и max, это же будет использоваться и при старте захвата, значит плюс еще один триггер + 14-битовый счетчик для прореживания и такой же 14-битовый цифровой компаратор(тут уже на исключающих ИЛИ очень просто) для перезапуска этого счетчика и 14-битовый регистр для хранения коэффициента прореживания + 11-битовый счетчик на адрес ОЗУ + куча вспомогательной логики.

Следовательно EPM240 вполне подойдет, но хотелось бы подобрать что-нибудь из Xilinx (типа XC95144XL) ! Хотя с ФИФО все значительно упрощается :)

Сообщение отредактировал LazyCat - Среда, 27.04.2011, 21:56  
 
LeftRadio Среда, 27.04.2011, 22:15 | Сообщение # 1213
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (LazyCat)
По ресурсам ПЛИСа имеем следующее : нужно построить 4 восьмиразрядных сумматора и 4 восьмиразрядных регистров для вычисления и сохранения min и max, это же будет использоваться и при старте захвата, значит плюс еще один триггер + 14-битовый счетчик для прореживания и такой же 14-битовый цифровой компаратор(тут уже на исключающих ИЛИ очень просто) для перезапуска этого счетчика и 14-битовый регистр для хранения коэффициента прореживания + 11-битовый счетчик на адрес ОЗУ + куча вспомогательной логики.

Замечательно! Еще замечательней :) было бы, если Вам не тяжело, прикинуть это все в схемном виде :)

Quote (LazyCat)
Следовательно EPM240 вполне подойдет, но хотелось бы подобрать что-нибудь из Xilinx (типа XC95144XL) !

Хорошо, соглашусь, единственное это EPM240 стоит дешевле XC95144XL, поэтому я за EPM240 если уж на то пошло :)


---

Нет войне!
 
Муха Четверг, 28.04.2011, 05:39 | Сообщение # 1214
Почетный Гражданин
Группа: Модераторы
Сообщений: 579
Статус: Offline
Quote (LeftRadio)
я за EPM240 если уж на то пошло

Абеими нагами ЗА! Она у меня уже есть! :)
Quote (LeftRadio)
Да и компаратор я предполагал не цифровой, а аналоговый

Уважаемый LazyCat прав, компаратор внешний не нужен, реализуем в ПЛИС.

Еще давайте определимся с SRAM, какую поставим?
В схеме вижу EEPROM, Влад а что в STM32F100R нету EEPROM на борту?

 
atmicandr_old Четверг, 28.04.2011, 06:00 | Сообщение # 1215
Местный
Группа: Друзья
Сообщений: 186
Статус: Offline
Для полной уверенности лучше в САПР для ПЛИС нарисовать схему и скомпилировать проект, там уже точно видно будет хватит ей ресурсов или нет, а то получается гадание на кофейной гуще. Я не говорил категорично что глобальные выводы использовать под линии ввода-вывода плохо, можно, но gck1 будьте добры использовать по назначению. Да и потом реально не надо на плате корпусов плодить, засуньте компаратор в ПЛИС.

А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com

Сообщение отредактировал atmicandr - Четверг, 28.04.2011, 06:03  
 
LeftRadio Четверг, 28.04.2011, 07:19 | Сообщение # 1216
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (Муха)
В схеме вижу EEPROM, Влад а что в STM32F100R нету EEPROM на борту?

Нету, а возится с перепрограммированием флешь не хочется из-за 10р.....

Quote (atmicandr)
Для полной уверенности лучше в САПР для ПЛИС нарисовать схему и скомпилировать проект

Вот поэтому и попросил LazyCat прикинуть необходимый дизайн в схемном виде :)

Quote (atmicandr)
Я не говорил категорично что глобальные выводы использовать под линии ввода-вывода плохо

Но сказали, что нежелательно, вот я и спросил почему ;) , а про GCK1 уже понял.


---

Нет войне!
 
kison Четверг, 28.04.2011, 08:38 | Сообщение # 1217
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
но тогда плата никак не будет под КПК

Можно спокойно разделить на две платы. И поставить их "бутербродом". Дополнительные плюсы - можно менять любую из двух отдельно. Например накосячили в плате с плис/ацп/аналог - ее и изменять. А плата с контроллером/экраном/кнопками/интерфейсами остается неизменной. Если плата одна любое изменение приводит к полному переизготовлению всего прибора.
Даже если не прореживать сигнал в ПЛИС, все равно проход шины с АЦП через ПЛИС дает ощутимые плюсы. Сигнал можно будет защелкивать в ПЛИС и сделать синхронный дизайн. Это позволяет избавиться от "гонки сигналов" ведь даже разная длина линий на ВЧ приводит к тому, что 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  
 
LeftRadio Четверг, 28.04.2011, 09:14 | Сообщение # 1218
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
По Вашей последней схеме абсолютно непонятно как Вы собираетесь читать память. Шина данных заведена в контроллер, а с шиной адреса неясности.

XC9572 спокойно может переключать адреса, как и сигналы чтения с памяти по такту с МК, да и зачем полностью вычитывать, прочитали сколько надо вывели на экран, горизонтальную "прокрутку" сделать тоже не проблема, ну да неважно это уже так как решили ставить ПЛИС между АЦП и SRAM. Самый актуальный для меня вопрос :) это влезет ли дизайн в EPM240 или надо закладываться на EPM570. По поводу памяти, согласен ;)


---

Нет войне!
 
LeftRadio Четверг, 28.04.2011, 09:51 | Сообщение # 1219
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Так что правильная последовательность - ТЗ, в котором определить нужные развертки, объем памяти и вообще все, что затрагивает ПЛИС.

Это то понятно, ладно, скачается quartus буду разбираться что в ПЛИС влезет :)


---

Нет войне!
 
kison Пятница, 29.04.2011, 13:40 | Сообщение # 1220
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Самый актуальный для меня вопрос это влезет ли дизайн в EPM240 или надо закладываться на EPM570.

Что в нем актуального? EPM570 существует и в 100 ногом корпусе. Заменить 240 на 570 можно без изменения схемы. Вообще в 240LE влезает удивительно много, но если не хватит, то заменить довольно легко. Вот с начинки плис и надо начинать. Потому как после этого становится ясно сколько линий сязи с МК должно быть, сколько линий к ОЗУ. Так что правильная последовательность - ТЗ, в котором определить нужные развертки, объем памяти и вообще все, что затрагивает ПЛИС. Дальше дизайн плис+ моделирование. И только потом схема. Она применительно к плис вторична - раскидать выходы начинки по разным выводам несложно.

Left Radio По ошибке перенес это сообщение в курилrу, вернул обратно :)

 
LeftRadio Пятница, 29.04.2011, 19:33 | Сообщение # 1221
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Вот, что в ПЛИС пока запихнул :) логически пока вроде все работает.
Прикрепления: NS.bdf.pdf (8.0 Kb)


---

Нет войне!
 
kison Пятница, 29.04.2011, 19:46 | Сообщение # 1222
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Вот, что в ПЛИС пока запихнул

Судя по схеме таки плис + SRAM = раздувшееся фифо. Счетчик стандартный не годится - там тоже 1-2-5-10 шаг должен быть. А на 5 стандартные счетчики не делят.


Сообщение отредактировал kison - Пятница, 29.04.2011, 19:48  
 
LeftRadio Пятница, 29.04.2011, 19:54 | Сообщение # 1223
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Судя по схеме таки плис + SRAM = раздувшееся фифо.

Подскажите как надо или пример дизайна было бы просто замечательно :)

Quote (kison)
Счетчик стандартный не годится - там тоже 1-2-5-10 шаг должен быть.

Ну можно ведь пропускать не нужные шаги :), хотя, да на 5 не делят, ну значит нужно нестандартный делать, это же так, первые шаги...


---

Нет войне!


Сообщение отредактировал LeftRadio - Пятница, 29.04.2011, 19:56  
 
kison Пятница, 29.04.2011, 21:25 | Сообщение # 1224
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
хотя, да на 5 не делят, ну значит нужно нестандартный делать, это же так, первые шаги...

Нестандартный - http://kazus.ru/forums/showpost.php?p=209056&postcount=62
И чуть дальше еще вариант.
 
LeftRadio Суббота, 30.04.2011, 08:45 | Сообщение # 1225
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Спасибо. А не подскажете как мне скрестить код со схемным редактором? И как создать схемный элемент с текстовым описанием?

-----------------------------------------------------------------------------------------
Обновил софт, пока выкладываю тут, если не будет ошибок обновлю в шапке. Работает и без "железа" в демо режиме, это если кто не в курсе ;)

Прикрепления: NS_soft_1_04c.rar (407.5 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Суббота, 30.04.2011, 23:44  
 
LazyCat Воскресенье, 01.05.2011, 20:58 | Сообщение # 1226
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Всех с праздником !

Смотрю, пока у меня не было инета, здесь вовсю идет движуха :D Но обсуждаем мы всетаки разные осциллы.
Вот накрапал структурную схему того осцилла, который я предлагал. Немного поясню. На схеме не показана внутренняя шина, по которой в 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 с автоинкрементом)
- может еще что-нибудь потребуется :)

Прикрепления: 1702230.png (29.1 Kb)


Сообщение отредактировал LazyCat - Воскресенье, 01.05.2011, 21:07  
 
LeftRadio Воскресенье, 01.05.2011, 21:37 | Сообщение # 1227
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Замечательно! Попробую впихнуть это в epm240, пока никаких предложений/дополнений к схеме нет, вкуриваю :)

--------------------------------------------------------------------------------

Мда, попытался изобразить Вашу схему в ПЛИС и ничего у меня не вышло, на данный момент мне к сожалению не хватает просто структурной схемы :( Боюсь без помощи с начинкой в ПЛИС проект затянется в неопределенность...

Вопрос, а почему Вы СТ2 сделали 14-ти битным? Может сразу 16?


---

Нет войне!


Сообщение отредактировал LeftRadio - Понедельник, 02.05.2011, 11:57  
 
LazyCat Понедельник, 02.05.2011, 20:16 | Сообщение # 1228
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (LeftRadio)
Вопрос, а почему Вы СТ2 сделали 14-ти битным? Может сразу 16?

Банальная опечатка :( Нужно делать на весь объем памяти, ног ПЛИСа предостаточно !
Кстати, на досуге подумал, что RGmode надо выкинуть и задавать режимы отдельными линиями от МК.
А 3-х битная шина адреса будет задавать блоки RG1a, RG1b, RG2a, RG2b, RG3low, RG3high, CT2low, CT2high.
 
LeftRadio Вторник, 03.05.2011, 11:03 | Сообщение # 1229
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (LazyCat)
Банальная опечатка

Понял :)

Quote (LazyCat)
Кстати, на досуге подумал, что RGmode надо выкинуть и задавать режимы отдельными линиями от МК.
А 3-х битная шина адреса будет задавать блоки RG1a, RG1b, RG2a, RG2b, RG3low, RG3high, CT2low, CT2high.

Хорошо, давайте тогда, чтобы ускорить дело, нарисуем полную схему дизайна в ПЛИС и будем уже моделировать, и т.д. :)

-------------------------------------------------------------
Разобрался немного :) , начал рисовать предложенную схему в ПЛИС.


---

Нет войне!


Сообщение отредактировал LeftRadio - Вторник, 03.05.2011, 17:32  
 
LeftRadio Среда, 04.05.2011, 11:04 | Сообщение # 1230
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Насколько понял сигналы Carry(кстати почему именно сумматор использовать, а не компаратор например?) заведен на разрешение записи параллельных регистров, но в таком случае в регистр попадут данные со следующим фронтом клока, может выход сумматора соединить с клоком регистра, а запись всегда разрешена? Или я бред несу? :)
И про порог триггера в RG1, RG2 тоже не совсем понятно зачем, ведь как я понял RG1 и RG2 используются только для выборки макс./мин.

--------------------------------------------------------------------------------
Ну вот, набросал схему, это для одного канала за исключением нескольких блоков, хотелось бы услышать критику/предложения и т.д. Приложил еще результат компиляции.
Так и не придумал как сделать предысторию триггера, можно конечно без разрешения триггера записывать в память, а при срабатывании просто запоминать защелкой адрес SRAM в который записывались данные при срабатывании.

Прикрепления: NS3.pdf (13.0 Kb) · Flow_Summary.pdf (5.7 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Среда, 04.05.2011, 13:58  
 
LazyCat Среда, 04.05.2011, 21:45 | Сообщение # 1231
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (LeftRadio)
кстати почему именно сумматор использовать, а не компаратор например

Я так понял, что компаратор в ПЛИСе сделан на основе сумматора, что видно по названиям его выходов, так что у Вас все правильно в схеме.

Quote (LeftRadio)
в регистр попадут данные со следующим фронтом клока

Должен быть синхронный режим работы, т.е. данные должны защелкиваться только когда они установились. Кстати это тот же клок, что и на АЦП.

Quote (LeftRadio)
И про порог триггера в RG1, RG2 тоже не совсем понятно зачем

Так правильно и немного проще, ведь перед началом захвата в RG1 и RG2 всеравно нужно что-то заносить, а так убиваем двух зайцев :) Так что inst22 и inst27 лишние.

В inst23 нужно завести и сигналы второго канала.
Остальное не совсем понял и пока воздержусь от комментариев.

P.S. И куда вдруг делись все специалисты по ПЛИСам ?

Сообщение отредактировал LazyCat - Среда, 04.05.2011, 21:46  
 
kison Четверг, 05.05.2011, 00:17 | Сообщение # 1232
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
P.S. И куда вдруг делись все специалисты по ПЛИСам ?

Я вообще ничего не понимаю в схемном вводе. Хоть на примитивах, хоть на макроблоках.
В моем понимании то, что в NS3.pdf вообще собираться не должно. Например у inst11 и inst12 объединены входы. И больше ничего туда не подано. Если так сделать в Верилоге - получу много ругани от компилера. А тут это проходит. У inst26 - D триггер - такт объединен со входом данных. Что туда запишется непонятно. Это не совсем железный D триггер - такт к триггеру LE идет напрямую, а вот данные могут проходить через LUT ( и почти наверняка проходят )- т.е. имеют задержку. В доке есть схема LE - очень полезно представлять что там и как устроено. Я думаю всегда 0 будет писаться - из за задержки. Это чисто по узлам - там таких странных для меня подходов много. Но повторюсь - я никогда не пробовал сделать что то на стандартных макроблоках. Так что может чего не понимаю и так как есть - нормально. :) А сама предполагаемая логика работы мне лично вообще непонятна.


Сообщение отредактировал kison - Четверг, 05.05.2011, 00:23  
 
atmicandr_old Четверг, 05.05.2011, 08:53 | Сообщение # 1233
Местный
Группа: Друзья
Сообщений: 186
Статус: Offline
Quote (LazyCat)
P.S. И куда вдруг делись все специалисты по ПЛИСам ?

:) Если Вы меня тоже имели ввиду, то так далеко я не залазил, а жаль :(


А я лампы соберу, молоточком все побью. LED&LCD рулят. Мой ящик: andrey66k@gmail.com
 
LeftRadio Четверг, 05.05.2011, 11:16 | Сообщение # 1234
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (LazyCat)
Так правильно и немного проще, ведь перед началом захвата в RG1 и RG2 всеравно нужно что-то заносить

Можно обнулять/устанавливать в 255 например, но данные в регистрах перепишутся когда на входе будет больше/меньше, если использовать компаратор только для старта записи в SRAM то согласен, так как Вы предлагаете самый оптимальный способ. Я тут на досуге подумал сделать возможность циклической записи в первые адреса SRAM пока не сработает триггер, при срабатывании заполнять память до конца или установленного адреса, так можно получить предысторию триггера. Тогда не обойтись inst19, inst20 нужен еще один компаратор. Тут конечно нужно еще подумать :)

Quote (LazyCat)
В inst23 нужно завести и сигналы второго канала.

Не совсем понял сигнал какого клока и заем нужно завести на мультиплексор.

Quote (kison)
Например у inst11 и inst12 объединены входы. И больше ничего туда не подано.

Туда идет клок, это глюк при вводе на печать, почему то не выводятся соединения линий. А так, компилер и мне голову просверлит если никуда не подсоединить :) Вот, вывел картинкой.

Quote (kison)
У inst26 - D триггер - такт объединен со входом данных.

Это нужно симулировать, спасибо, не знал этих особенностей :)

------------------------------------------------------------------------------------
Просимулировал, действительно в триггер всегда записывается ноль, но можно дату просто завести на VCC, сейчас попробую.
Кстати симуляция говорит что только на одном элементе "И" задержка порядка ~8нс.

Прикрепления: 3810590.jpg (138.2 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Четверг, 05.05.2011, 15:30  
 
kison Четверг, 05.05.2011, 15:40 | Сообщение # 1235
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Кстати симуляция говорит что только на одном элементе "И" задержка порядка ~8нс.

Так и есть. А если их будет два последовательно - все равно 8. :) Это не на И задержка, а на LUT-е. Там можно довольно серьезную функцию собрать и все равно будет одинаковая задержка.
 
LazyCat Четверг, 05.05.2011, 16:35 | Сообщение # 1236
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Так обсуждать схему трудно !
Нужно рисовать сразу оба канала, заодно и ресурсы ПЛИСа можно оценивать.
И нужно утвердить техзадание. Если очень нужна предыстория, то это делается элементарно, но нужно уяснить, это отдельный режим, включаемый по желанию, или осцилл постоянно работает в этом режиме(прощай батарея !!!).
 
LeftRadio Четверг, 05.05.2011, 20:45 | Сообщение # 1237
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Так и есть. А если их будет два последовательно - все равно 8. :) Это не на И задержка, а на LUT-е.

Спасибо, ценная информация ;)

Quote (LazyCat)
Нужно рисовать сразу оба канала, заодно и ресурсы ПЛИСа можно оценивать.

Хорошо, заодно и распишу логику работы схемы что бы всем понятно было :)

Quote (LazyCat)
Если очень нужна предыстория, то это делается элементарно, но нужно уяснить, это отдельный режим, включаемый по желанию, или осцилл постоянно работает в этом режиме

Ладно, и правда давайте пока сделаем без придыстории, потом можно будет всегда добавить как отдельный режим.


---

Нет войне!


Сообщение отредактировал LeftRadio - Четверг, 05.05.2011, 20:46  
 
kison Четверг, 05.05.2011, 23:31 | Сообщение # 1238
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Ладно, и правда давайте пока сделаем без придыстории, потом можно будет всегда добавить как отдельный режим.

А предыстория не увеличивает особо потребление. Добавляется только от ОЗУ - на 50 мегасэмплах это примерно 30-40мА. Все остальное так же - АЦП работают, генератор тоже. Причем при наличии сигнала на входе потребление ОЗУ добавляется максимум на время одного периода входного сигнала. Смотрим например на сигнал 2КГц - максимум 500мкс лишнего потребления в 40мА. Пусть за секунду 20 измерений - это 10 миллисекунд лишнего времени работы предыстории. Добавляет 1/100 от 40мА - 0,4мА к потреблению прибора. 400 микроампер всего! Реально разница в потреблении вообще будет незаметна. Ну отработает прибор не 300 минут, а 298 от одной зарядки. Разве это существенно? Так зачем отказываться от этой одной из самых ценных фич цифрового осцилла?


Сообщение отредактировал kison - Пятница, 06.05.2011, 06:29  
 
LazyCat Пятница, 06.05.2011, 09:26 | Сообщение # 1239
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Значит мы говорим о разной предыстории :(
Имелся ввиду режим, когда память постоянно и циклически заполняется выборками(заметьте, АЦП работает на максимальной частоте) и только после срабатывания триггера заполняется окно захвата и весь процесс останавливается. То, что описали Вы лишь жалкая пародия этого режима. Ну и кто назовет его экономичным ?
Как по мне, это абсолютно ненужный режим, тем более для карманника !
 
kison Пятница, 06.05.2011, 09:46 | Сообщение # 1240
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
Значит мы говорим о разной предыстории

О одной и той же. Пример - делим память пополам - одна половина это предыстория, другая - то, что после триггера. На входе синус 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  
 
Форум » Сайт и форум » Разработки и Статьи на сайте » Все вопросы касающиеся Neil Scope (Ваши замечания, предложения и т.д.)
Поиск:
uTmpl.ru Сайт создан в системе uCoz Сейчас: 19.04.2024, 20:30