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

Форум » Сайт и форум » Разработки и Статьи на сайте » Все вопросы касающиеся 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  
 
kison Понедельник, 12.03.2012, 21:54 | Сообщение # 2601
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
В любом случае перед отправкой на производство буду еще просматривать.

Я в CAM350 герберы проверяю перед отправкой заказов. Хотя глюки пока встречались только с платами из спринта, если там включена заливка.

Добавлено (12.03.2012, 21:54)
---------------------------------------------

Quote (Arpad)
В плюсовой цепи потребителей хватит ((6мА 8065 и 12мА 8129)+ STM32, EPM570, AD9288 и TFT ).

О как. Я местную схему внимательно не разглядывал. У меня три LDO и 1 емкостная помпа. Плюс фильтры в питании ОУ.
И еще некоторые цепи прямо от аккумулятора питаются - реле.
 
LazyCat Вторник, 13.03.2012, 01:49 | Сообщение # 2602
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (kison)
Есть у меня сжатие.

Quote (kison)
... то хорошо представляю как оно работает.

Если оно точно такое, то почему Вы сразу сказали, что мой вариант нерабочий и долго не могли понять работу цифрового компаратора ?

Quote (kison)
Конечно иногда не знаю. А зачем знать?

Очень прискорбно, что Вы не хотите меня понять :( Дело в том, что применив предложенное мной тактирование триггера, WIN_counter отсчитывает ЯЧЕЙКИ ПАМЯТИ, а не время(хотя косвенно и время тоже). Пусть у нас занято 2000 ячеек до триггера и 2000 после. Значит мы можем всегда просто перейти на триггер или на начало захвата и начать отображать данные, читая вперед. Абсолютно нет необходимости постоянно читать память, суммировать значения повторов, чтобы перейти к триггеру или началу - это очень трудоемко и неоправданно. Но есть еще один нюанс. Если WIN_counter будет отсчитывать время, то наиболее вероятно, что последнее значение счетчика повтора не будет занесено в память(т.е. счетчик начал отсчет от последнего изменения сигнала, а тут, бац, триггер прекращает запись в память) и это будет неучтенной погрешностью(до 256 тиков) при всех Ваших суммированиях. По-другому я объяснить не смогу :(
Кстати, я совершенно против одинакового размера размера предыстории и основных данных. Это относится и к осциллографу и к ЛА. Гораздо разумнее добавить на вход WIN_counter мультиплексор и набор регистров, чтобы их задавать независимо !!! Благо ресурсы позволяют, а для управления уже все есть.

Quote (kison)
И читать я могу в обе стороны.

Как Вы наверное заметили, и у меня чтение в обе стороны :D

Quote (kison)
Чего то дает хоть и недостаточно. По хорошему нужен 3-ий порядок и выше. Предложите лучший вариант.

Вариантов масса :D Вот, например, мой любимый фильтр. Могу и номиналы посчитать ! Но я не знаю, как его перевести на AD8129 :( К тому же он, наверное, будет плохо работать с входным делителем на 4051. Кстати, это инвертирующее включение, как было раньше на максе, АЦП ведь остался тоже в инвертирующем включении ;) Можно сделать и неинвертирующее включение, но этот вариант очень капризен и неустойчив. Можно сделать на ОУ фильтр 1-го порядка, а вместо одной RC-цепи на выходе тупо поставить несколько и т.д и т.п.

Quote (kison)
Какие?

Переключающие OSC-LA. И именно на них я акцентировал внимание на самом первом рисунке !!!

Quote (kison)
Какой счетчик? Вместо "этот" надо конкретно писать имя или расположение в схеме. И почему он должен быть вычитающим. На конкретном примере.

Я же черным по белому написал в прореживателе. Если непонятно, то это inst1. Направление счета у него принципиального значения не имеет, но вычитающий проще в обслуживании программой МК, надеюсь не придется это объяснять :D Но Влад пусть делает как ему удобнее.
Прикрепления: 0449376.png (23.3 Kb)


Сообщение отредактировал LazyCat - Вторник, 13.03.2012, 02:11  
 
kison Вторник, 13.03.2012, 03:05 | Сообщение # 2603
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
то почему Вы сразу сказали, что мой вариант нерабочий и долго не могли понять работу цифрового компаратора ?

Потому что так оно и было. И я не мог (и не могу и сейчас) понять не как работает компаратор, а зачем его было вообще ставить. Сравнение адресов - пятое колесо.

Quote (LazyCat)
Дело в том, что применив предложенное мной тактирование триггера, WIN_counter отсчитывает ЯЧЕЙКИ ПАМЯТИ,

Вы наверно удивитесь, но это всегда так. :D Уже и давно. Вместо того, чтоб быть писателем хоть схему посмотрите. В осциллографе тоже сжатие, хоть и на другом принципе. Но Win_Counter считает именно записи в ОЗУ после триггера. Это можно сказать классический :D вариант. Так было у MisterDi сделано в выложенном проекте, и может он тоже взял откуда то. Стандарт уже :D

Quote (LazyCat)
Пусть у нас занято 2000 ячеек до триггера и 2000 после. Значит мы можем всегда просто перейти на триггер или на начало захвата и начать отображать данные, читая вперед.

Распишите процесс. Попытайтесь. От запуска захвата и до конца. Вот на примере 2000 до и 2000 после. Кто что делает - по шагам.

Quote (LazyCat)
нет необходимости постоянно читать память, суммировать значения повторов, чтобы перейти к триггеру или началу

Ее в любом случае придется постоянно читать. Доступ последовательный. Переход невозможен. Да и не напряжет это МК. Он не устает и передышки не просит. Сказано - перейти на 10000 выборок вперед - он махнет ножкой 10000 раз и будет читать дальше. Выходной не попросит.

Quote (LazyCat)
Если WIN_counter будет отсчитывать время

Записи в память он считает. Время считает микроконтроллер - после запуска выборок до разрешения работы триггера. Схему то посмотрите наконец.

Quote (LazyCat)
а тут, бац, триггер прекращает запись в память)

Триггер не умеет прекращать запись. Он может только разрешать уменьшатся Win_counter-у. И все. Переход в обратное состояние не предусмотрен, только от МК когда он начинает читать результат.
Тоже - смотреть схему. Много думать.

Quote (LazyCat)
Кстати, я совершенно против одинакового размера размера предыстории и основных данных. Это относится и к осциллографу и к ЛА. Гораздо разумнее добавить на вход WIN_counter мультиплексор и набор регистров, чтобы их задавать независимо !!!

Сейчас - и так независимо. Без мультиплексоров и регистров.

Quote (LazyCat)
Вот, например, мой любимый фильтр. Могу и номиналы посчитать !

Встройте его в существующую схему.

Quote (LazyCat)
Можно сделать и неинвертирующее включение, но этот вариант очень капризен и неустойчив.

Нужно именно не инвертирующее. Входное сопротивление должно быть больше 100, а лучше >500КОм. Он не должен влиять на делитель.

Quote (LazyCat)
Можно тупо вместо одной RC-цепи поставить несколько и т.д и т.п.

Крутизна спада не вырастет - те же 6дб на октаву и останется, только частота среза упадет. Надо разделять такие фильтры буферами на ОУ, чтоб что то осмысленное получить. Это деньги и потребление. И место на плате. Но есть желание усовершенствовать схему - отлично. Только не надо кусочничать, измените сразу все, что считаете нужным и покажите. Именно готовый вариант.

Quote (LazyCat)
но вычитающий проще в обслуживании программой МК, надеюсь не придется это объяснять

Придется. :D Чем - проще? Разницу опишите. :D Сейчас обслуживание заключается в записи в два 8-ми битных регистра. Вместе они образуют шину Decimation[15:0].
Если сделать счетчик inst1 считающим вниз - что изменится с точки зрения его обслуживания для МК?

Quote (LazyCat)
Переключающие OSC-LA.

Там и без мультиплексоров прекрасно переключиться.
 
LeftRadio Вторник, 13.03.2012, 12:35 | Сообщение # 2604
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Возможно очень глупый вопрос, но что обозначает когда получается как обведено красным на скрине? Блин, верилог сломает мне мозг :D , Ваш модуль работает, но мне нужно несколько по другому, вот и воюем кто кого, верилог пока побеждает :D

Прикрепления: 2143497.png (49.8 Kb)


---

Нет войне!
 
kison Вторник, 13.03.2012, 13:05 | Сообщение # 2605
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Возможно очень глупый вопрос, но что обозначает когда получается как обведено красным на скрине?

Я не знаю. Я ни разу в квартусе симулировать не пробовал. Может так там третье состояние обозначается?
Quote (LeftRadio)
Блин, верилог сломает мне мозг

Он же не обязателен. Можно схемным вводом делать модули. Главное не сваливать все в кучу в верхнем уровне.
 
Arpad Вторник, 13.03.2012, 13:39 | Сообщение # 2606
Частый посетитель
Группа: Проверенные
Сообщений: 58
Статус: Offline
quote (kison)
в симуляторе. Как с идеальным ОУ, так и с чем то типа 8065

Фильтр Саллена-Ке на АД8065 работоспособен до 3 МГЦ
 
kison Вторник, 13.03.2012, 13:49 | Сообщение # 2607
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (Arpad)
Фильтр Саллена-Ке на АД8065 работоспособен до 3 МГЦ

Ну нужна 10 или 12 частота. Опять же вход - фильтр не должен влиять на высокоомный делитель. Я к девайсам с положительной ОС с подозрением отношусь.
 
LeftRadio Вторник, 13.03.2012, 14:47 | Сообщение # 2608
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Может так там третье состояние обозначается?

Так то оно так, но это выхода и у них нет третьего состояния...


---

Нет войне!
 
kison Вторник, 13.03.2012, 14:50 | Сообщение # 2609
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Значит - состояние произвольное. Не определено. Что такое DFF_OUT и как оно создается? Потому как похоже оно корень зла. Потом это неопределенное состояние перезаписывается в TRIG_OUT.
 
LeftRadio Вторник, 13.03.2012, 14:58 | Сообщение # 2610
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Это регистр останавливающий Win_Counter и при единице на выходе триггера плюс досчитавшем Win_Counter выдает Write_Ready, думаю переделывать нужно, сижу логику продумываю.

---

Нет войне!
 
kison Вторник, 13.03.2012, 15:05 | Сообщение # 2611
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Это регистр останавливающий Win_Counter и при единице на выходе триггера плюс досчитавшем Win_Counter выдает Write_Ready

Ну варианта два. Либо сигнал на входе этого регистра имеет неопределенне состояние. Либо опять где то асинхронная загрузка. Хотя в верилоге ее получить надо еще постараться. Если все действия в always блоке и его условие только posedge clk, то глюков таких быть не должно.
 
LeftRadio Вторник, 13.03.2012, 15:54 | Сообщение # 2612
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Спасибо, буду думать, так не хочется к схематику возвращаться, топ мне в нкм удобно делать а вот схему если изменить нужно это ужас. Я вот еще думаю что действительно намного проще предысторию делать с помощью МК, но тогда нужно еще одну "веревку" тянуть между МК и ПЛИС, или через регистры, но они асинхронны, ладно верилог рано или поздно сдастся :D

---

Нет войне!


Сообщение отредактировал LeftRadio - Вторник, 13.03.2012, 15:55  
 
kison Вторник, 13.03.2012, 16:14 | Сообщение # 2613
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Я вот еще думаю что действительно намного проще предысторию делать с помощью МК

С предысторией не все просто. В режиме осциллографа все отлично, там выборки регулярны. Можно хоть от МК предысторией управлять, хоть от счетчика. По сути и в МК выходит счетчик, его как бы вынесли из плис. А вот в анализаторе что то криво все выходит. Хоть от МК предысторией рулить, хоть счетчик на выборки до триггера ставить - все равно криво. Проблема в том, что в итоге нужны вовсе не выборки, а время. И их связать не просто. Количество записей на один временной интервал может быть как 1, так и 200. Причем не важно - до или после триггера. Важно, что это очень неудобно задавать. В общем тут думать надо как выкрутиться. Хоть от сжатия отказывайся :D

Добавлено (13.03.2012, 16:14)
---------------------------------------------

Quote (LeftRadio)
но тогда нужно еще одну "веревку" тянуть между МК и ПЛИС, или через регистры

Синхронизатор для регистра - всего два триггера. Доп. линия от мк - то же самое. Занятые ресурсы могут даже не увеличиться.
 
Arpad Вторник, 13.03.2012, 22:35 | Сообщение # 2614
Частый посетитель
Группа: Проверенные
Сообщений: 58
Статус: Offline
quote(LeftRadio,kison)
В входном делителе NS_3.0_rev_2.6.pdf на делителе 1:100 стоит емкость 2200 пФ.
Считаю его необоснованно завышенным (8-12 раз) , на частоте 1 Мгц имеет 73 Ома.
Остальные доводы прикреплены
Прикрепления: -2-.doc (402.5 Kb)
 
specialist2 Вторник, 13.03.2012, 22:53 | Сообщение # 2615
Местный
Группа: Друзья
Сообщений: 119
Статус: Offline
С1-92 делитель входной на 1:10 и 1:100 на керамическом носителе как у Тека «почти»

Да! Хорошие вещи делали. Сейчас китайский щуп берешь 1:100, обнять и плакать. :'(
 
kison Среда, 14.03.2012, 05:27 | Сообщение # 2616
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (Arpad)
Считаю его необоснованно завышенным (8-12 раз) , на частоте 1 Мгц имеет 73 Ома.

Может она такая потому, что сопротивление емкости параллельной верхнему плечу на этой же частоте 7,3КОм-а? Это ведь делитель? Если он будет делит на постоянке на 100, а на частоте 1МГц на 10 - это будет хорошо? Или как то неправильно?
В старых осциллах параллельно нижнему плечу подсоединялась емкость входа того, что стояло за делителем. Там сотни пик были нормой, всяких ВЧ мосфетов тогда не было. Может емкость в итоге будет и не 2н2, но отличаться сильно не будет.
 
Arpad Среда, 14.03.2012, 08:14 | Сообщение # 2617
Частый посетитель
Группа: Проверенные
Сообщений: 58
Статус: Offline
quote(kison)
В старых осциллах параллельно нижнему плечу подсоединялась емкость входа того, что стояло за делителем. Там сотни пик были нормой, всяких ВЧ мосфетов тогда не было.
Может емкость в итоге будет и не 2н2, но отличаться сильно не будет.

Что лампы, нувисторы, полевики (кп303,кп307,кп312 и др.) их объединяет то, что у них малая входная емкость. (Справочники!) Меня учили на лампах, работал на производстве
п/приборов в том числе и м/сх. Сейчас уже пенсионер.
 
LazyCat Среда, 14.03.2012, 11:21 | Сообщение # 2618
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (kison)
Потому что так оно и было. И я не мог (и не могу и сейчас) понять не как работает компаратор, а зачем его было вообще ставить.

Мы оба говорим про входную цепь ЛА, осуществляющую сжатие ?????? :D

Quote (kison)
Вы наверно удивитесь, но это всегда так. Уже и давно. Вместо того, чтоб быть писателем хоть схему посмотрите.

ОЧЕНЬ сильно удивляюсь !!! Потому что в осциллографе ПРИНЦИПИАЛЬНО нет никакого сжатия, один отсчет - одна ячейка памяти !!!!!!!! Да и быть не может, т.к. в осциллографе, в первую очередь, важны именно временные интервалы. А в ЛА важен именно сам поток данных(кстати просто 0 и 1) и тут НУЖНО применять сжатие, т.к. объем буфера катастрофически мал для реальных наблюдений. ПОТОМУ я и предложил тактировать триггер по другому !!! При этом мы получам АБСОЛЮТНО точную навигацию по всему захваченному массиву, и даже можем осуществлять совершенно ненужные скачки в любой временной интервал :D Во, как сказал, но врядли поймете, что я имел ввиду :(

Quote (kison)
Распишите процесс. Попытайтесь. От запуска захвата и до конца. Вот на примере 2000 до и 2000 после. Кто что делает - по шагам.

Так я же уже расписал, и к тому же заметил, что проще уже не смогу !!!

Quote (kison)
Ее в любом случае придется постоянно читать.

Так для того и пишем, чтобы читать ! Зачем вообще такие вещи писать ?????
Я ведь подробно пояснил, что после окончания захвата, например, 2000+2000, мы просто тикаем 2000 раз для перехода на триггер или 4000 для перехода на начало буфера, а не читаем и уж тем более ничего не суммируем !!! И у меня есть чувство, что Вы это уже давно поняли, но принципиально продолжаете флеймить ! Вот этого я не понимаю :(

Quote (kison)
Триггер не умеет прекращать запись

Именно это и происходит, когда отрабатывает WIN_counter !!!

Quote (kison)
Сейчас - и так независимо. Без мультиплексоров и регистров.

Опять непонимание !!! Decimation[15:0] одно и то же, что для предыстории, что для прямого хода. Или Вы просто издеваетесь ?

Quote (kison)
Встройте его в существующую схему.

Да пожалуйста !!!

Quote (kison)
Нужно именно не инвертирующее.

Именно это я и имел ввиду, просто напомнил, что про включение АЦП не стоит забывать, но это не для Вас, а для Влада !

Quote (kison)
Крутизна спада не вырастет - те же 6дб на октаву и останется, только частота среза упадет

А можно тут поподробнее ? Желательно на примере этого

Quote (kison)
Придется. Чем - проще? Разницу опишите.

А как же школьный курс алгебры ? У нас время одного тика 0,02мкс. Если нужно получить развертку 100мкс, то в Decimation мы должны просто занести число 100/0,02=5000. А действия с суммирующим счетчиком - это задание на дом !!!

Quote (kison)
Там и без мультиплексоров прекрасно переключиться.

Значит, то что я про них говорил, Вы пропустили мимо ушей :( Но это уже не моя вина !!!
Прикрепления: 5767460.png (26.4 Kb)


Сообщение отредактировал LazyCat - Среда, 14.03.2012, 12:09  
 
kison Среда, 14.03.2012, 18:58 | Сообщение # 2619
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
Мы оба говорим про входную цепь ЛА, осуществляющую сжатие ??????

Нет. Там все было понятно, даже ошибка вначале. :) Потом исправленная. А смешной нерабочий логический триггер так и висит.

Quote (LazyCat)
ОЧЕНЬ сильно удивляюсь !!! Потому что в осциллографе ПРИНЦИПИАЛЬНО нет никакого сжатия, один отсчет - одна ячейка памяти !!!!!!!!

1 отсчет одна ячейка. 2 - две, 5 - опять две, 10 - снова две. Это не сжатие? Тогда почему на 10 выборок две ячейки, а не 10? Причем после например 5 отсчетов Win_Counter уменьшится на два. Значит что он считает? Сжатие бывает по типу RLE - без потерь. А бывает с потерями. Пиковый детектор именно такое сжатие. Еще как пример - MP3. Тоже сжатие с потерями. Свертка.

Quote (LazyCat)
ПОТОМУ я и предложил тактировать триггер по другому !!! При этом мы получам АБСОЛЮТНО точную навигацию по всему захваченному массиву, и даже можем осуществлять совершенно ненужные скачки в любой временной интервал

Навигацию по всему массиву имеем и так, без всяких изменений. А про скачки в любой интервал любопытно. Как их делать если доступ к памяти последовательный?

Quote (LazyCat)
Так я же уже расписал, и к тому же заметил, что проще уже не смогу !!!

Что то расписанной последовательности я не видел. Допустим я пользователь прибора. И хочу записать сигнал с обоих сторон от какого то условия. До 5 миллисекунд и после тоже пять. Меня (шашечки) выборки не интересуют - мне (ехать) сигнал надо посмотреть. Какие Ваши действия? Что и куда записываем, чтоб это получить?

Quote (LazyCat)
Именно это и происходит, когда отрабатывает WIN_counter !!!

Какая связь между триггером и концом выборок? Разрешает работу другого узла и останавливает выборки - по Вашему это одно и то же? При определенном значении предустановленном в Win_counter выборки после триггера не то что не закончатся - только начнутся. :D

Quote (LazyCat)
Я ведь подробно пояснил, что после окончания захвата, например, 2000+2000, мы просто тикаем 2000 раз для перехода на триггер

Ну и в чем разница на сейчас? Можно так же просто тикать 2000 раз и перейдем на триггер.

Quote (LazyCat)
или 4000 для перехода на начало буфера

Это начало может быть нафиг не нужно. Зачем на него переходить? Итог работы не выборки а сигнал ОТ ВРЕМЕНИ. Так как выборки ко времени не привязаны жестко, то и количество их задать нереально. Придется считывать, складывать время, пока не дойдем до стартового ВРЕМЕНИ интересующего нас интервала. И это будет не время начала выборок, начало может быть где угодно раньше. Вплоть до того, что тех выборок вообще давно нет - например память по кругу 5 раз перезаписалась пока триггера ждали.

Quote (LazyCat)
Опять непонимание !!! Decimation[15:0] одно и то же, что для предыстории, что для прямого хода. Или Вы просто издеваетесь ?

Ну и? Откуда вообще взялось Decimation[15:0] - оно то тут причем? Выше это упоминалось, но совсем в другой части обсуждения - о расчете значения в счетчике прореживания. Никакого отношения к предыстории Decimation[15:0] вообще не имеет. Вообще это ИМХО очевидно - Decimation и переводится то как прореживание.

Quote (LazyCat)
Да пожалуйста !!!

Ну хоть что то полезное. :D Надо еще и АЧХ получившийся привести от постоянки до 20МГц. У меня протеуса нет, а в том симуляторе что есть нету 8129.

Quote (LazyCat)
А можно тут поподробнее ?

У Вас же есть симулятор. Включите последовательно две одинаковые RC цепи и посмотрите АЧХ.
Потом включите между ними идеальный ОУ повторителем и снова посмотрите АЧХ. Сравните два результата. Подумайте - почему же они не одинаковые.

Quote (LazyCat)
А как же школьный курс алгебры ? У нас время одного тика 0,02мкс. Если нужно получить развертку 100мкс, то в Decimation мы должны просто занести число 100/0,02=5000

Прогуливали алгебру то? :D Для вычитающего расчет значения - одно деление и одно вычитание. Для суммирующего - одно деление и одно вычитание. Большая разница? :D Но и это будет в реале не так. Все исходные данные - константы известные на момент компиляции. Мы знаем и развертку какую хотим получить и время тика и разрядность счетчика заранее. В итоге вместо вычислений в любом варианте будет просто загрузка готового значения. Его еще компилятор посчитает. В реальных же программах такие данные просто группируют в структуры. Т.е. микроконтроллер просто берет значение из определенного адреса и заносит в регистр ПЛИС. Вообще ничего не считая. Даже не пытаясь.

Добавлено (14.03.2012, 18:58)
---------------------------------------------
Кстати насчет 5мс до и 5мс после подумайте все. Я уже себе голову сломал пытаясь ее решить. Это вынос мозга, а не задача :D . Если сжатие убрать - она становится простой и мы либо можем это сделать либо нет. Со сжатием выходит не так - мы можем попытаться это сделать, но может и не выйти. Причем с предысторией как раз все просто - таймер в МК отсчитывает время, а не выборки. А вот с данными после триггера беда. Мне в голову только какие то дурацкие решения лезут. Причем ни одно задачу решить не способно. Кто что думает? Это к плис не относится, чистая логика работы.

 
Arpad Среда, 14.03.2012, 20:43 | Сообщение # 2620
Частый посетитель
Группа: Проверенные
Сообщений: 58
Статус: Offline
quote
Интересует схема DSO-1060, DSO-2090 или DSO-2150 от HanTek. (не фото, там все более-менее все интересное сошлифовано)
Кто знает где что? Спасибо.
 
LazyCat Среда, 14.03.2012, 23:34 | Сообщение # 2621
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (kison)
А смешной нерабочий логический триггер так и висит.

Это Вы о чем ???

Quote (kison)
Допустим я пользователь прибора. И хочу записать сигнал с обоих сторон от какого то условия. До 5 миллисекунд и после тоже пять.

Как Вы справедливо ранее заметили, в мире логических анализаторов ВСЕ задается РАЗМЕРАМИ буферов (размер буфера до условия и общий размер захватываемых данных) и никогда не задается временем (как в осциллографе), хотя эти два понятия и связаны :) Так что, все логично и удобно !!!

Quote (kison)
Какая связь между триггером и концом выборок?

Скорее всего у нас путаница в терминологии. Триггером я называю все устройство синхронизации захвата. В режиме осциллографа WIN_counter срабатывает дважды, когда отсчитает предысторию и когда отсчитает прямой ход, после этого остановится и запретит запись. А в режиме ЛА будет то же самое, но считать он будет не тики прореживателя, а ячейки памяти. Вот, собственно, и все !!!

Quote (kison)
Откуда вообще взялось Decimation[15:0]

Прошу прощения, писалось в спешке, конечно же имелось ввиду WIN[15..0] :( Именно тут предлагалось поставить дополнительный мультиплексор и регистр.

Quote (kison)
Ну хоть что то полезное.

Судя по всему я поторопился и схемка нерабочая :( А вот еще вариант.

Quote (kison)
Включите последовательно две одинаковые RC цепи и посмотрите АЧХ.

И убедитесь, что там не 6дВ на октаву. Кроме того, когда такие цепочки включают последовательно, у них сохраняют постоянную времени, а резисторы в каждой последующей цепи увеличивают. Такой прием несколько увеличивает крутизну затухания.

Quote (kison)
Для вычитающего расчет значения - одно деление и одно вычитание. Для суммирующего - одно деление и одно вычитание.

За домашнее задание двойка. Жирным выделена ненужная операция, но если речь идет про предвычисленные константы, то разницы действительно нет :) Сам много программировал контролеров и привык, что бОльшему значению соответствует бОльший временной интервал, но в этом случае без разницы.

Quote (kison)
Кстати насчет 5мс до и 5мс после подумайте все.

Я свои аргументы уже несколько раз высказал, да и привык в ЛА мыслить категориями резмеров буферов. Но подумать можно и это :)
Прикрепления: 5895588.png (29.2 Kb)
 
kison Четверг, 15.03.2012, 03:05 | Сообщение # 2622
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
Это Вы о чем ???

О этом, о чем еще:


Quote (LazyCat)
Как Вы справедливо ранее заметили, в мире логических анализаторов ВСЕ задается РАЗМЕРАМИ буферов

Нет, как раз только временем. Все работают именно со временем. Если выборки идут равномерно, то можно в принципе и выборками оперировать, раз они жестко привязаны ко времени. Но не при RLE сжатии, в чем и заключается проблема.
Вот кинцо - http://www.usbee.com/axlogic.wmv
Поглядите - все в секундах/миллисекундах/микросекундах и т.д.

Quote (LazyCat)
А вот еще вариант.

Ну так АЧХ то покажите. Без RC цепи на выходе. Ну нет у меня этой софтины.

Quote (LazyCat)
За домашнее задание двойка. Жирным выделена ненужная операция

Прикольно. Не думал что придется до пальцев дойти. :D
Но расклад такой. Нужно прореживание на 5. Тик 20нС, т.е. период записи 100нс. Вариант 1 - вычитающий счетчик прореживания.
Расчет значения на шине Decimation - ((100нс/20нс)-1) = 4.
В счетчике будет по шагам - 4,3,2,1,0 и повторить. Пересчитайте значения перечисленные через запятую загибая каждый раз один палец. Должно получиться ровно столько, сколько у Вас пальцев на одной руке. Сошлось? А сколько у Вас пальцев? Пять! Правильно!
Вариант 2 - счетчик на увеличение. Расчет для 16 битного счетчика децимаций - (65536-(100нс/20нс) = 65531. 65531,65532,65533,65534,65535 и опять с начала. Пересчитайте с помощью пальцев. Получилось 5? Хорошо. Мы узнали что в счетчик на вычитание надо грузить коэффициент деления минус 1. Урок окончен. Звонок. :D

Quote (LazyCat)
Но подумать можно и это

Подумайте. Я похоже просто откажусь от сжатия. Оно мне мозг выносит. Оно останется только в режиме полного заполнения памяти и если не нужна предыстория. Просто введу прореживание как в осциллографе. Буду брать каждую 2 или 5-ю выборку.

Добавлено (15.03.2012, 03:05)
---------------------------------------------

Quote (LazyCat)
И убедитесь, что там не 6дВ на октаву. Кроме того, когда такие цепочки включают последовательно, у них сохраняют постоянную времени, а резисторы в каждой последующей цепи увеличивают. Такой прием несколько увеличивает крутизну затухания.

Что - у Вас 12 получилось? Убедите нас тогда. АЧХ в студию! :)
Прикрепления: 4950243.gif (4.2 Kb)
 
Arpad Четверг, 15.03.2012, 10:04 | Сообщение # 2623
Частый посетитель
Группа: Проверенные
Сообщений: 58
Статус: Offline
quote (kison)

О этом, о чем еще:

Суббота, 10.03.2012, 23:50 | Сообщение # 2589
Прикрепления: Razbor_polet2-1.doc(70Kb)
 
LeftRadio Четверг, 15.03.2012, 11:18 | Сообщение # 2624
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Всем привет :) Сколько тут всего произошло пока меня не было :D , фильтр это конечно хорошо, но я так и не понял почему же уже ненужен 74НС4051? Ладно, неважно, схему все равно менять не будем :)

---

Нет войне!
 
LazyCat Четверг, 15.03.2012, 12:11 | Сообщение # 2625
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (kison)
О этом, о чем еще:

Он смешной, потому что не такой как у Вас ? Или есть еще причины ?

Quote (kison)
Нет, как раз только временем. Все работают именно со временем.

Вот скриншоты 2-х самых популярных программ логических анализаторов. И где Вы нашли, чтобы захват задавался временным интервалом ? Вообще-то, это бессмысленная возможность, тем более, что в 99% нам нужно захватить чем больше тем лучше. Я, например, очень часто анализирую протоколы UART и SPI, о временных параметрах известно очень мало(понятно что регулярность этого обмена предсказать невозможно) и поэтому чем больше выборок я получу, тем больше получу информации.

Quote (kison)
Ну нет у меня этой софтины.

Да и у меня ее нет. Все получаю формулами на бумаге :(

Quote (kison)
Что - у Вас 12 получилось?

Вы написали 6дБ, я написал не 6дБ. Что-то непонятно ? Если интересует точно, то могу посчитать.

Quote (LeftRadio)
фильтр это конечно хорошо, но я так и не понял почему же уже ненужен 74НС4051

При наличии фильтра на частоту Найквиста(к тому же, как я понял, стремимся к 3-му порядку) интерлив форму сигнала не улучшит. Если при растяжке сигнала по оси X уже не будет хватать реальных отсчетов, то недостающие отсчеты легко можно интерполировать sin(x)/x/ Но этот режим, как я понимаю, в отличие от РС-ой версии в карманнике реализован не будет.
Прикрепления: 9863503.png (160.6 Kb) · 7877430.png (252.7 Kb)
 
LeftRadio Четверг, 15.03.2012, 13:13 | Сообщение # 2626
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (LazyCat)
интерлив форму сигнала не улучшит

Тут Вы абсолютно правы, но причем здесь 4051? Вы написали что теперь она не нужна, мне интересно почему :)


---

Нет войне!
 
volk0203 Четверг, 15.03.2012, 13:22 | Сообщение # 2627
Завсегдатай Профессионал
Группа: Проверенные
Сообщений: 695
Статус: Offline
У нас получится sin(x)/x интерполяция или только линейная?
 
kison Четверг, 15.03.2012, 14:31 | Сообщение # 2628
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
Или есть еще причины ?

Причина выше. Условие синхронизации - 1х0х1х0х - справится?
А так смотрите триггер в той же Usbee - он там минимальный как раз. Я именно оттуда брал логику как основу своего.

Quote (LazyCat)
Вот скриншоты

И что? Двигая какие то ползунки мы устанавливаем... время:


Quote (LazyCat)
Да и у меня ее нет. Все получаю формулами на бумаге

Скриншот то был из Протеуса со схемой фильтра.

Quote (LazyCat)
Если интересует точно, то могу посчитать.

Формулами меня тоже устроит, заодно освежу ТОЭ. Там некислый расчет то.
Только расписывайте что считаете и как - подробно.

Quote (LeftRadio)
Тут Вы абсолютно правы

С фильтром 1 порядка - может как раз улучшить. Гармоники не задавлены.
Прикрепления: 1249892.png (16.1 Kb)
 
LeftRadio Четверг, 15.03.2012, 15:02 | Сообщение # 2629
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
С фильтром 1 порядка - может как раз улучшить.

Да, правильно, я порядок фильтра не учел.

Quote (volk0203)
У нас получится sin(x)/x интерполяция или только линейная?

Может и получится, основное время МК уходило на вывод изображения на ЖК, сейчас в схеме изменил его подключение, должно быть чутку быстрее, в общем нужно пробовать.


---

Нет войне!


Сообщение отредактировал LeftRadio - Четверг, 15.03.2012, 15:05  
 
kison Четверг, 15.03.2012, 15:51 | Сообщение # 2630
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
Вообще-то, это бессмысленная возможность, тем более, что в 99% нам нужно захватить чем больше тем лучше.

Больше - лучше. Главное чтоб меньше не было. А ведь не влезть может. Пример - памяти у нас на 100 записей. Хотим смотреть до и после триггера одинаковое время. Без сжатия памяти на это не хватает. Со сжатием может как хватить, так и нет. Но пользователю надо что то пообещать. Прибор который "может попробовать" будет нехило раздражать. Лучше уж сразу сказать - не могу. То же USBee позволяет прогнозировать результат.
Но головоломка не в этом. Приведу пример - прибор решил таки попробовать записать желаемое пользователем. И тут встает вопрос приоритета - что важнее оставить: данные до триггера или после него. Потому как при нехватке памяти надо чем то жертвовать. Например записали все что требуется до триггера и только в оставшуюся память то что после. Или наоборот - пишем данные после триггера полностью, пусть и приходится перезаписывать то, что было до. Вот этот режим я знаю как реализовать. А первый - с приоритетом данных до триггера - не знаю. И вообще ЛА из очень простого блока ( у меня он распечатанный чуть больше страницы - 157 строк вместе с пустыми и комментариями) превратится в настоящего монстра.
 
volk0203 Четверг, 15.03.2012, 16:33 | Сообщение # 2631
Завсегдатай Профессионал
Группа: Проверенные
Сообщений: 695
Статус: Offline
Quote
превратится в настоящего монстра

Прибор потихоньку правращается в ЛА с функциями осциллографа... :D


Сообщение отредактировал volk0203 - Четверг, 15.03.2012, 16:33  
 
LeftRadio Четверг, 15.03.2012, 23:59 | Сообщение # 2632
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (volk0203)
Прибор потихоньку правращается в ЛА с функциями осциллографа...

А вот и нет :p :D

------------------------------------------------------------------------------------------------------
Наконец домучал блок синхронизации, перевел на верилог и добавил задержку в триггер, спасибо огромное за разьяснения и помощь Kison-у drink
Зачем нужна задержка написано в этом сообщении, для ползователя это будет дополнительная функция в меню синхронизации с возможностью настраивать эту самую задержку.

Единственное что это нужно еще в этот блок добавить CLK EN, в принципе не проблема, но не хочется фигню городить, как вообще делается разрешение такта на верилоге "по стандартному"?, просто "глобальным" условием if? И еще, что то не понятно работает счетчик задержки если хочу задержку побольше, вот осциллограмма, задержка должна быть в 20 тактов(Delay):



Топ уровень в схематике:

Прикрепления: trig_with_delay.v (2.6 Kb) · test_WIN_Counte.v (1.6 Kb) · 4618628.png (54.6 Kb) · 6315724.png (37.6 Kb)


---

Нет войне!


Сообщение отредактировал LeftRadio - Пятница, 16.03.2012, 01:01  
 
kison Пятница, 16.03.2012, 07:49 | Сообщение # 2633
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
И еще, что то не понятно работает счетчик задержки если хочу задержку побольше, вот осциллограмма, задержка должна быть в 20 тактов(Delay):

Странно - SlCounter почему то 3 разрядный, а не 8-ми. Грузится туда 20, а получается - 4. Если плюсик рядом с SlCounter развернуть - сколько там разрядов?
Походу там в квадратике на схеме другой файл - старая версия например.
В Win_counter тоже косяки есть. На сейчас он не работоспособен - я это и без симуляции вижу. :) Проверять надо не один режим, а все. Потому как работа в одном не гарантирует работу во всех режимах. Сейчас как раз тот случай.
Так что
Quote (LeftRadio)
домучал блок синхронизации

рановато. Еще мучать и мучать.

И вот что интересно - нафига счетчик выборок до триггера нужен? 18 триггеров на регистр задания этого интервала в минус. И никакого профита. Так может этим триггерам лучшее применение найти?
 
LazyCat Пятница, 16.03.2012, 11:28 | Сообщение # 2634
Завсегдатай
Группа: Проверенные
Сообщений: 329
Статус: Offline
Quote (kison)
Условие синхронизации - 1х0х1х0х - справится?

А почему не справится ? В соответствующие биты (Trigger_level_B,Trigger_level_A) заносим (0,0) для выделения "1", (1,1) для выделения "0" и (0,1) для игнорирования бита.

Quote (kison)
Двигая какие то ползунки мы устанавливаем... время:

Это время вычисленное, а не заданное, т.е. какое получится. А задаем мы именно размер буфера ! Кстати, Ваши 5 mS так установить не получится :D

Quote (kison)
Скриншот то был из Протеуса со схемой фильтра.

К сожалению, из paint :( И, кстати, как показали расчеты, та схема абсолютно не подходит для карманного прибора - расчетные резисторы получаются маленькие и, учитывая что на выходе AD8129 присутствует постоянная составляющая, необходимая для АЦП, то резко возрастает потребляемый ток. Вот нарисовал схему, лишенную этого недостатка, но просимулировать негде :(

Quote (kison)
Больше - лучше. Главное чтоб меньше не было. А ведь не влезть может. Пример - памяти у нас на 100 записей. Хотим смотреть до и после триггера одинаковое время. Без сжатия памяти на это не хватает. Со сжатием может как хватить, так и нет.

Вот, оперировать все же лучше количеством записей !!! Объять необъятное нельзя, поэтому пользователи будут с пониманием относится к возможностям карманного прибора. Параноики будут выбирать максимальный размер буфера и минимально возможную(для конкретной задачи) частоту прореживания !!! Но это получается огромная вилка и всех она устроит :D
И я опять напоминаю, что равные времена до триггера и после практической ценности не имеют, но пользователю, как минимум, нужно дать возможность менять это соотношение !

Quote (volk0203)
Прибор потихоньку правращается в ЛА с функциями осциллографа...

Главное, чтобы одно не было в ущерб другому. Пока ресурсов ПЛИС предостаточно.
Прикрепления: 0287516.png (32.6 Kb)


Сообщение отредактировал LazyCat - Пятница, 16.03.2012, 11:28  
 
kison Пятница, 16.03.2012, 14:15 | Сообщение # 2635
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LazyCat)
А почему не справится ? В соответствующие биты (Trigger_level_B,Trigger_level_A) заносим (0,0) для выделения "1", (1,1) для выделения "0" и (0,1) для игнорирования бита.

Ну давайте проверим. Я ленивый, поэтому накидал модель схемы на верилоге. Выглядит она так:
wire out = (|(trig_B & data)) ^ (&(trig_A | data));
Разрядность шин в принципе не важна, я сократил ее до 4, чтоб всего на 16 значениях проверять.
Попробуем сделать шаблон 10xx, т.е. ищем два старших бита и два младших нам безразличны.
В соответствии с инструкцией в trig_B заносим 0100
В trig_A соответственно 0111
И смотрим что получается:

Красным обведено несоответствие шаблону.
Я не те значения в trig_A и trig_В занес? Тогда что туда надо занести?

Quote (LazyCat)
А задаем мы именно размер буфера ! Кстати, Ваши 5 mS так установить не получится

Представим что там время убрали. И Вам надо выставить значения - на основе чего Вы будете это делать? Какие то основания выбрать размер буфера будут?
Вариант - "поставлю максимальный и ниипет" не принимаются :D

Quote (LazyCat)
Параноики будут выбирать максимальный размер буфера и минимально возможную(для конкретной задачи) частоту прореживания !!!

Прореживание + сжатие = безумно долгая запись. Там даже не минуты - часы возможны.
Quote (LazyCat)
но просимулировать негде

Плохо. Хотя на первый взгляд это обычный интегратор, то есть ФНЧ 1 порядка. У мну такой в схеме.
Вопрос только влияют ли резистор 39ОМ и конденсатор 160 пик на АЧХ и если да - то как.
Прикрепления: 0044528.gif (10.1 Kb)
 
LeftRadio Пятница, 16.03.2012, 14:19 | Сообщение # 2636
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Странно - SlCounter почему то 3 разрядный, а не 8-ми. Грузится туда 20, а получается - 4. Если плюсик рядом с SlCounter развернуть - сколько там разрядов?

Вот и я был удивлен :) , нашел кося, ошибка симуляции, забыл обновить SlCounter в симуляторе.

Quote (kison)
На сейчас он не работоспособен - я это и без симуляции вижу. :) Проверять надо не один режим, а все.

Это понятно что не один, задача у WinCounter простая - предыстория/без, остальное на trig_with_delay, я симулировал и с предысторией и без, вроде все правильно работает :) Сейчас скрины покажу, но в любом случае обосновать почему не работоспособно было бы неплохо )

Quote (kison)
И вот что интересно - нафига счетчик выборок до триггера нужен?

Для удобства :) - запустили запись и оно само предысторию и послеисторию записало, да и счетчик то один для обеих режимов, в первом случае просто он перезагружается.


---

Нет войне!
 
kison Пятница, 16.03.2012, 14:42 | Сообщение # 2637
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
но в любом случае обосновать почему не работоспособно было бы неплохо )

Ну если за вменяемое время косяки не обнаружатся - обосную. Просто они настолько простые, что их без симуляции видно. Я вижу два, может симулятор нашел бы больше. :)
Quote (LeftRadio)
да и счетчик то один для обеих режимов, в первом случае просто он перезагружается.

Это как раз относится к одному из косяков. Представление, что предыстория в плис далась на шару - неверное. :D Нет, халявы не бывает, за все надо платить ресурсами. И если бы счетчика было два - ничего бы в этом плане не изменилось.

Добавлено (16.03.2012, 14:42)
---------------------------------------------
Опс - про второй косяк я погорячился. Это не косяк, там с функционалом правильно все. Неправильно только представление, что предыстория вышла на шару и не потрачены 18 лишних триггеров. Так что косяк - один.

 
LeftRadio Пятница, 16.03.2012, 15:01 | Сообщение # 2638
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Quote (kison)
Ну если за вменяемое время косяки не обнаружатся - обосную. Просто они настолько простые, что их без симуляции видно.

ОК, попробую сам найти :)

Quote (kison)
Представление, что предыстория в плис далась на шару - неверное.

Так неужели компилятор создает два счетчика вместо одного как ему указали? А как тогда если рисовать в схематике, я то рисую один счетчик и ожидаю что он будет один...

Вот обещанные скрины, с включенной задержкой, с предысторией и без, синхр. по спаду:



А вот выкл. задержка, с предысторией и без. по спаду:



Выкл. задержка, по фронту:



--------------------------------------------------------------------------------------------------------
Все, пошел искать косяк :)

Прикрепления: 8063936.png (52.2 Kb) · 7720213.png (55.7 Kb) · 4049636.png (53.3 Kb) · 2615988.png (53.3 Kb) · 2841320.png (53.4 Kb)


---

Нет войне!
 
kison Пятница, 16.03.2012, 15:14 | Сообщение # 2639
Завсегдатай
Группа: Друзья
Сообщений: 275
Статус: Offline
Quote (LeftRadio)
Так неужели компилятор создает два счетчика вместо одного как ему указали? А как тогда если рисовать в схематике, я то рисую один счетчик и ожидаю что он будет один...

Не, счетчик один и будет. Что такое WIN_DATA и откуда она берется?
Косяк же искать не надо - он оказался у мну в голове. Я чего то сегодня туплю - очень спать охота. :D
Я и с ресурсами кажется понял. Раньше ведь тоже шина была на предустановку WinCounter? Тогда все сходится. Если запись идет как запись сначала в отдельные регистры, а потом они оптом переписываются в счетчик, то действительно никакой разницы в ресурсах не будет. Но ведь сам счетчик - тоже регистр. В него можно сразу писать по частям. Это даже быстрее. И получаются варианты - сам счетчик и предыстория снаружи, либо счетчик + регистр и предыстория внутри. Можно упростить второй вариант до два счетчика и сократить регистр - по ресурсам то же самое.
 
LeftRadio Пятница, 16.03.2012, 15:20 | Сообщение # 2640
Совсем живу сдесь...
Группа: Администраторы
Сообщений: 2045
Статус: Offline
Ну тогда порядок, а то смотрю, смотрю, а косяка так и е увидел :) , уже начал сомневаться в собственных умственных способностях :D

Quote (kison)
Раньше ведь тоже шина была на предустановку WinCounter?

Да.

Quote (kison)
Можно упростить второй вариант до два счетчика и сократить регистр - по ресурсам то же самое.

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

Кстати, а по CLK EN не подскажешь как сделать по "стандартному"? Глобальным условием?


---

Нет войне!


Сообщение отредактировал LeftRadio - Пятница, 16.03.2012, 15:22  
 
Форум » Сайт и форум » Разработки и Статьи на сайте » Все вопросы касающиеся Neil Scope (Ваши замечания, предложения и т.д.)
Поиск:
uTmpl.ru Сайт создан в системе uCoz Сейчас: 26.04.2024, 08:03