Логический анализатор приставка к ПК. Автор - Виталий Барабаш.
Очень интересное устройство... Вот только просьба к уважаемому автору. Возможно ли по подробней растолковать алгоритм работы устройства, и собственно работу ПЛИС ЕРМ3128АТС100-7, точнее того что в неё зашито. Заранее благодарен! Ссылка: http://radiokot.ru/circuit/digital/measure/17/ Паятель.
Devil_Sinclair писал(а):Логический анализатор приставка к ПК. Автор - Виталий Барабаш.
Очень интересное устройство...
Название громкое. А что это устройство вообще может анализировать?
Не понятно. Максиму снять эпюры напряжений с некоевого устройства. И неизвестно насколько точно снятые эпюры соответствуют истине.
Если это все, что можно от него добиться...то это бесполезная игрушка и не более.
2 Devil_Sinclair. Принцип работы устройства традиционен и прост. Имеем ОЗУ, в которое с необходимой для анализа сигналов скоростью (в данном устройстве каждые 1 мСек минимально и 10 нСек макс.) записываем информацию до заполнения памяти. После чего не спеша переносим инфу в компьютер, где с ней делаем что хотим. Хочешь рисуй типа осциллограму, а хочешь декодируй протоколы типа I2C, SPI, UART и т.д.. В ПЛИСе находится 17-ти разрядный адресный счётчик, делитель тактовой частоты для получения стандартных значений развёртки(1-2-5-10-20 и т. д.), узлы для синхронизации и запуска по условию (тригеры, мультиплексоры), регистры управления. Вобщем ничего особенного. Вот в кратце и всё.
А будет ли развитие устройства, его программы, какие-то приставки/прилады?.
Более доступная элементная база, прокачка возможностей и т.п. И как связаться с автором?
Пётр, развития проекта не планирую т. к. на базе этого железа хочу собрать четырё-хканальный осциллограф. Если всерьёс хотите собрать анализатор, рекомендую http://minila.sourceforge.net. Там ребята постоянно ведут работу по совершенствованию, к тому же в России в изобилии появились чипы Xilinx.
Для ens34. Рад, что кому-то ещё интересны подобные измерительные приборы. Теперь по существу.
1. Если стоит галочка возле "128 кб" (имеется в виду использовать всю память при записи), то при листании страниц переносится из ОЗУ на дисплей следующий отрезок этих 128 кб., соответствующий длинне выбраной в окошке "Длинна экранной области". Для примера, длинна = 1024, тогда страница 1 это ОЗУ с адреса 0 по 1023, страница 2 с 1024 по 2047 и т.д.. Если галочки около "128 кб" нет, то смысла жать на кнопку "Сл. стр." тоже нет, т.к. при записи используется только 1 кб. ОЗУ.
2. К сожалению не могу сейчас проверить по скольку из HW выдрал ОЗУ, но я почти уверен что такого бага у меня небыло. Может что-то изменили в проэкте при переносе на другой чип? Хотя, надо проверить, в понедельник-вторник запаяю ОЗУшку (раздобыл на медне 4 шт.), отпишусь.
3. Сделать можно всё, но это займёт время, а его практически нет, да и программист я ещё тот. Сейчас бъюсь с обещаным осциллографом, только это не доработка анализатора, а проэкт на наработках и опыте при построении оного. Цифровая часть готова, только с аналоговой небольшой ступор, на доступной элементной базе не удаётся получить полосу пропускания выше 10 мГц.
Для ens34. Только что припаял ОЗУ, проверил, у меня на всех режимах измерения длительности соответствуют действительности. Так что проверяйте свою мат. часть.
Спасибо, буду проверять.
Еще вопрос. Нужно ли делать какие нибудь настройки порта LPT в Винде для работы с анализатором? Наблюдаю такую картину: на одном компьютере работает все четко, настройки порта по умолчанию после установки Винды. На другом в 8-и канальном режиме через раз удается сделать запись, а в 16-ти крайне редко получается. Подозреваю на постаронние сигналы с порта. Пробовал менять настройки порта (убрал все принтера, оключил обнаружение устройств) результат не меняется.
Настройки в "винде" делать не стоит, программа обращается к порту через свою dll, а вот к качеству сигнала на ЛПТ стоит присмотреться. Уменя на буке стоит PCMCI адаптер от Rovermate, так он на регистре управления (сигналы STROBE, ADF, INIT, SLCTIN) выдаёт такие пенки - мало того что фронты при переключении не совпадают так ещё и звон (короткие около 20 нСек импульсы после заднего фронта). При работе программы с этим адаптером длительность некоторых индицируемых импульсов искажается в меньшую сторону. Ещё обратите внимание на соединительный кабель, он должен быть экранированный и не длинный, так же рекомендую между плисиной и разъёмом ЛПТ поставить развязывающие резисторы 50 - 470 Ом. А на линии ЕRROR, SLCT, PE, ACK, BUSY ещё и пробразователи уровня LVTTL -> TTL.
Да, я замечал, что некоторые импульсы на диаграмме подрезаны. Иногда замечал короткие импульсы, которых быть не должно.Долго возился с аппаратной частью, а потом понял, что это глюки порта. Кабель использую короткий, экранированный от буржуйского программатора. Попробую с платой раширения портов. Может есть смысл модифицирывать апаратную часть и сделать 8-ми битный двунаправленный обмен? И дешифратор сигналов drive сделать через регистр?
Такая модификация повлечёт за собой и необходимость изменения в прграмме, к тому же, не все порты работают в двунаправленом режиме (особенно всякие адаптеры и переходники). В общем если чувствуете в себе силы и есть желание, то почему бы и нет. У вас на руках довольно "жирный" кристалл, можно сделать всякие вкусности, типа пре-пост триггер, компаратор события запуска записи всяко-разный, и т.д.
Вот сдесь http://www.mikrocontroller.net/articles/Logic_Analyzer посмотрите, может что подчерпнёте.
Все что представленно по ссылке я уже изучал ранее, а кое что пробовал делать. Чисто микроконтроллерные варианты оказались под мои задачи слабыми. На остальные не было указанной элементной базы. Переделка проекта под другие микросхемы не всегда удавалась. Иногда просто не хватало ума понять о чем думал разработчик когда использовал такие решения. В вашем случае все оказалось просто. Если найду время разобратся с Дельфи начну с доработки программы. Очень нужен универсальный триггер событий и возможность группировки сигналов в шину и отображение в значения в числовом виде.
Как у вас продвигается работа с осцилографом? Меня эта тема тоже очень интересует. А глядя на то как работает анализатор в режиме непрерывной записи возникло ощущение в полне нормального отображения для осцилографа. Не вижу особого смысла сразу замахиватся на что то крутое, но иметь полосу 10мГц и частоту оцифровки не ниже 60мГц было бы нормально.
Про жирные кристаллы. У меня они валяются на удобных платах буквально под ногами. Могу поделится если есть способ забрать из Питера.
Хм, как-то уж слишком замороченно для любителя. Чем не устраивает альтеровский Signal Tap II? С помощью которого, кстати, логический анализатор с незаурядными возможностями собирается буквально за 10 минут при наличии любой платы с ПЛИС класса Cyclone .
Работает точно (проверял осциллографом), без проблем захватывал 15 сигналов обмена на 150МГц (шина памяти) с помощью Cyclone II EP2C8. Под windows в качестве софта используется поддерживаемый ALTERA родной логический анализатор Signal Tap II, который позволяет довольно удобно работать с системой. Из минусов - сильно много семплов конечно не захватишь на дешевых чипах (т.к. мало встроенной памяти), но благодаря продвинутым возможностями синхронизации (до 10 триггеров, можно даже State-машину сделать!) обычно достаточно пары сотен отсчетов, чтобы захватить нужное. В качестве тактового сигнала для ЛА использовал PLL на 20-250МГц (в зависимости от предполагаемой частоты входного сигнала)
И обмен по USB через USB Blaster, без всяких LPT, которых на ноутбуке или современном ПК еще попробуй сыскать.
Мой пример реализации на самосборных платах тут, если кому интересно.
Больших циклонов у меня нет, максимум циклон1. Да ещё и USB ByteBlaster.
А у автора анализатор вполне доступный для повтарения, а в моем случае это почти еще один проект из того что было под рукой под готовую программу для ПК.
Объем памяти имеет очень большое значение. Я при иследовании устройства забивал все 128К и потом по странично с ними разбирался.
Из опыта повторения других открытых проектов этот пока лучший.
xDevs спасибовам за ссылку на ваш проект, будет интересно разобратся для других работ.
То xDevs. Как раз это любительский проэкт, для тех у кого не валяются под ногами платы с Циклонами и в магазинах где проживают нет даже ЕРМок под заказ. Для тех кому по жизни не надо изучать Верилог или АХДЛ, качать через GPRS гигабайты ПО, а потом разбираться как это работает, но прибор такой очень бы пригодился.
То ens34. На счёт лучший - это вы хватили (хотя приятно), я например, повторил miniLA и должен заявить - весьма достойный проэкт, лучше сделать на 288 триггерах, это надо постараться. К тому-же вылизанная годами программа с декодерами протоколов, USB. Вот на мой взгляд лучший открытый проэкт на сегодня, основные элементы обошлись в 500 руб. (Плисина и генератор).
По поводу осцилла - в понедельник заказал всяких ОУ в Интернете для эксперементов, думаю через пару недель пришлют, тогда и дело двинется. А пока совершенствую программу. На счёт полосы пропускания - у меня 200 мегасэмплов (при объединении двух каналов в интерлив), по сему хочется чтобы 20 мГц импульсы выглядели как положено, чуть со звоном, без завалов и с крутыми фронтами. На двух BF256А на входе (один токовое зеркало) по переменке + LF355 (лучше под руками нет) по постоянке и смещение, и AD8138 - драйвер АЦП, в итоге уже на 5 мГц заметны завалы с верху на переднем, с низу на заднем фронте импульса. На 10 мГцах импульс выглядит как прописная буква Л, длительноть фронтов около 10 нСек, на 20-ти похож на двугорбый синус, а амплитуда уменьшается на 3 дб. И это при усилении в 1. Вобщем за дёшево хорошо не получается.
Cyclone III 3C10 в паябельном TQFP-144 стоит 15$, доступен под заказ в крупных городах без проблем, было бы желание Ну и люди, которым нужен логический анализатор - а это скажем так, не каждый первый, нередко имеют какую-то отладочную плату на ПЛИС. Для использования же родного ЛА никаких HDL учить не надо, и гигабайты качать тоже, достаточно наличия Quartus. Насчет USB бластера - можно использовать и LPT-шные, никто не запрещает Совместимость полная. У меня просто USB-шный есть, его и использую.
В любом случае, спасибо за статью, было интересно. Недавно купил на ebay платку со Stratix 1S25 за 50 евро, в нем целых 2мегабита памяти, занятный ЛА выйдет
to barby67. Мне проект миниЛа тоже интересен как раз для декодирования последоваельных интерфейсов. Но от его повторения меня остановило пока полное незнание VHDL и новая элементная база. В полне возможно что в будущем я повторю и миниЛА но на плате фабричного изготовления и циклоне I или II. Выбор пока только по причине наличия синтезатора и наличия этих микросхем у меня. Так же циклон позволяет и USB интерфейс реализовать аппаратно. Пока все упирается в свободное время, возможно через 2 недели займусь.
toxDevs. да я согласен с вами про циклонIII и его доступность. В любительских условиях большая разница между есть в наличии и покупать. И что делать с Асексами в корпусах 144 и 208 ног, выкинуть - рука не поднимается.
Специально для ens34 выкладываю пока екзешник обновлённой программы, теперь зумом можно оперировать не загружая новые данные в ОЗУ. Убрал кое-какие баги. Ens34 вы попробуйте компильнуть миниЛу в Квартусе под свой Асикс, правда может не хватить пинов, хотя можно отказаться от внешней синхронизации и светодиодов и тогда точно влезет. Я пробовал компилировать некоторые модули в Максе+ , компилится даже без переделки. Сейчас посетил сайт Альтеры, новый Квартус-9 весит 1,3 гб, они так скоро догонят ПО от Ксилинкса. Мне такое не скачать. Циклон-3 за 500руб. - это фантастика, в России в наличии ни у кого нет, а цены под заказ разнятся от 700 до бесконечности, думаю что дешевле 1000 не купишь. Я бы взял побаловаться.
to barby67. Спасибо за новый вариант программы, после выходных попробую. Мне нет особого смысла пробовать перекомпилить miniLA
т. к. я использую асинхронную память. Нужно переделывать интерфейс памяти. У меня есть Асексы и Циклон2 в корпусах 208 ног. В них, наверное, влезет. Но пока не до этого. Циклон3 посмотрите www.efo.ru Все что касается Альтеры покупал у них. Правда не знаю, высылаю ли они почтой.