RSS
people

Мои инструменты: Logic Analyzer V. 3.0

Не прошло и пол-года, как я опять с вами, мои читатели.

Как я и обещал в прошлом посте, я выпустил 3 — ю версию своего Логического Анализатора.

И, как я и обещал, на этот раз весь GUI интерфейс написан с использованием бесплатной библиотеки wxWidgets версии 2.8.10.

Так он выглядит в текущем варианте:

Logic Analyzer LA Window

Logic Analyzer SPI Window

Logic Analyzer Options

Logic Analyzer Comm Port Settings

Так что если кто-то захочет что-нибудь изменить в программе, или добавить свои навороты — он сможет теперь это сделать сам и собственноручно. Единственно — надо будет только настроить среду разработки ;-)

Сюда входят следующие компоненты:

  • библиотеки wxWidgets версии 2.8.10
  • IDE Code::Blocks
  • редактор  интерфейса wxFormBuilder
  • среда Cygwin
  • компилятор MinGW для Windows (загружается вместе с Code::Blocks).

Библиотеки wxWidgets поставляются в виде исходников и их надо бы откомпилировать. Есть много способов, которыми это можно сделать, и все они описаны в описании установки библиотек. Я тоже честно пытался выполнить все пункты этого описания, и на моем домашнем компьютере ничего не вышло, но вот на рабочем все прошло удачно, и я откомпилировал сразу все варианты, которые возможны: Debug, Release, Unicode, Ansi, Debug Unicode, Debug Ansi, dynamic и static варианты всех предыдущих вариантов.

И притащил домой. Так что если кому надо — можно будет  выложить на какой нибудь файло-обменник. Там всего то 244 мегабайта ;-) .

IDE Code::Blocks вообще — must have как говорится. Тем более, что в последних версиях там вроде как можно даже стряпать «рыбу» проекта для AVR (сам еще не пробовал).

А так же еще много очень интересных и полезных фич. И все бесплатно! В общем — рекомендую.

Последнюю версию можно либо скачать с nightly builds, или же взять исходники с SVN и скомпилить самому, что я, собственно и сделал. И работает же!

Редактор  интерфейса wxFormBuilder поставляется в уже откомпилированном виде, и с ним все просто — просто запускаем и работаем.

Cygwin нужен для процесса компиляции исходников прошивки, там make используется. Ну и вообще тоже очень полезная вещь. Взять хотя-бы тот-же shell от него. У меня много других проектов на нем завязано. Так что если вы планируете использовать только make от него, то смысла особо его качать нет, так как и make и dll от cigwin'а есть в WinAVR компиляторе.

Ну а компилятор MinGW есть в архиве с Code::Blocks. И если вы компилировали сам Code::Blocks то он уже стоит у вас.

Прошивка сама тоже малость изменилась по сравнению с предыдущим разом, а именно, в режиме SPI Master теперь пин SS выполняет роль Chip Select. В прошлый раз я забыл про такой момент.

Вот. Теперь дело за малым, архив с со всем этим добром: logicanalyzer_v_3_0.rar

Там три папки — AVR, wxWidgets, Common.

В Common находятся всякие утилитки, которые у меня во многих проектах без изменений используются, и в этих — тоже.

В папке AVR лежат исходники для прошивки микроконтроллера, как и сама откомпилированная прошивка.

В папке wxWidgets\LogicAnalyzer лежат исходники GUI программы. В подпапке bin\Release есть готовый exe-шник этой программки, готовый к исполнению (по идее — не требует никаких библиотек, но если не так — дайте знать, доложим).

И так,  кто дочитал до сюда, получит самое инетересное — описание новых фич. Хотя может кто-то предпочитает эти фичи сам искать.

Так вот:

  1. В режиме Логического Анализатора добавилась возможность сохранения и последующего чтения анализируемых данных.
  2. В том же режиме теперь есть возможность поглядеть, что за байт такой представлен сигналами. Например, если вы смотрите шину данных с помощью этого прибора, то включив галочку Value at cursor можно будет наблюдать за тем, что за значение скрывается в позиции, на которую указывает курсор мышки. Это значение можно показывать как в 16-тиричном, так и в десятичном виде. А так же можно перевернуть биты, если вдруг вы проводки в обратном порядке подключили, а перетыкать в лом :)
  3. Так же сделал возможность раскрашивать окно Логического Анализатора во все цвета радуги в меню Options.
  4. В режиме SPI логгера, теперь добавилась возможность посылать 16-ти битное (для начала, пока что) значение CRC. Если галка CRC включена, и количество посылаемых байт больше 2-х, то последние два байта будут имено этим значением CRC.
  5. Так же, при включенной галке CRC будет производиться подсчет CRC принимаемых байт, кроме последних 2х, и сравниваться с последними 2мя принятыми. И если совпадают, то увеличивается счетчик CRC OK. Если нет — то увеличивается счетчик CRC BAD.
  6. Ну и для статистики — всегда считается количество посланных пакетов TX.

Ну а остальное вроде все тоже самое осталось.

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

А. Для поднятия интереса — на днях посетила меня идея, добавить в этот прибор еще I2C (TWI) логгер. Так что не расслабляемся, ждем еще вкусностей. Не обещаю скоро, но должно быть :)

Кстати — немного рекламы:

Если есть интерес прикупить этот прибор в уже готовом виде, то такая возможность есть. Так что если есть интерес — пишите в комментах — буду думать о цене, и способах изготовления — сам утюгом или же заводским способом (в зависимости от количества желающих). Так же будет возможность прикупить этот прибор в виде конструктора а-ля «сделай сам».

Ну и на последок пара ссылок, что надо для запуска этого чудо прибора:

20 комментариев к “Мои инструменты: Logic Analyzer V. 3.0”

  1. marshallab пишет:

    Долго выбирал какой анализатор собрать (дня 2), сегодня собрал Ваш.

    Взял свою Adruinu/ Wiring на mega128, навтыкал проводков, питание, кабель усб-рс232, програмка... Сразу всё заработало :) Дольше выбирал.

    Опасался что частоты не хватит смотреть I2C обмен, но все нормально.

    Спасибо большое, за сей комплекс!

    Буду ждать появления логера I2C. В других работах пригодится.

  2. marshallab пишет:

    Кстати. Почему бы вам не подойти к изготовлению с другой стороны. Берется стандартная плата Arduino (mega168) или на ArduinoMega + ваша прошивка + ваша программа = лог. анализатор. В зависимости от типа ардуины разный объем памяти. Правда продавать при этом свои платы сложно, ардуины продаются везде... Но можете сделать свою платку обозвать дуино совместимой :)

    Ну это так, мысли вслух.

  3. MasterAlexei пишет:

    Мысль, кончено, интересная. Надо хотя бы глянуть на эту ардуину, «с чем ее едят» и чем она полезна.

    Просто у меня дома в закромах валяется несколько ATMegа128-ых (я уже где то писал про это), поэтому я даже и не задумывался, на какой платформе делать — взял очередную мегу и сваял платку :)

  4. MasterAlexei пишет:

    Рад, что пригодилась эта разработка :)

  5. marshallab пишет:

    Все просто.

    Ардуино это плата на которую запаян проц Atmel (mega168/128/644) и обвязка (кварц, питание, FT232 для USB или max232 для RS232). Все вывода разведены на разъемы (стандартно расположенные).

    Создатели придумали 2 фишки: простецкий язык/интерпретатор для winAVR и стандртизировали расположение разъемов. В разъемы подключаются МНОЖЕСТВО разных платок с периферией ( или проводки втыкаются)...

    Все это продается и популярно. Это важно так как англоговорящие вообще редко платы сами делают...

    Получился класный набор для макетирования всего электронного.

    marshal-lab.ru/node/11 — мой вариант. Правда разъемы не по стандарту.

  6. marshallab пишет:

    >поэтому я даже и не задумывался, на какой платформе делать — взял очередную мегу и сваял платку

    У меня ступор наступает предже чем начать делать. Начинаю задумываться, искать лучшее решение, лезу в инет, готовые решения, плюсы минусы... прошло несколько дней. Либо уже не надо, либо включается лампочка и решение находится само. Еще останавливает то что нужно разводить, делать плату, а это время. Лень вообщем. С ардуиной проще, плата, проводки, бред борд. Полчаса максимум и можно кодить. Или как в случае с лог. анализатором 5 минут доставание из ящика усб щнурка и сборку, прощивку и пробу. Даже не пробу, а сразу работу.

    Вот такой реализатор фантазий :)

  7. MasterAlexei пишет:

    А, не. Мне интересней чего нить спаять самому, чтобы потом это запрограммить. А просто программирования мне и на работе хватает выше крыши. Тут это своего рода отдушина, состряпать свое железо.

  8. marshallab пишет:

    Спасибо еще раз. Анализатор работает, в смысле как рабочий инструмент. Уже несколько раз выручал, экономил время/нервы. Даже несколько пересмотрел стратегию разработки/взлома/изучения.

    Купить usb осцилограф — анализатор дорого, да и нет их у нас (заказывать нехочу). Задумался сделать отдельную плату для анализатора, чтобы макетку не занимать. У вас есть рисунок печатной платы?

    PS. С нетерпением жду снифер I2C протокола. Надеюсь появится.

  9. MasterAlexei пишет:

    Рисунка печатки нету, так как все исправления, которые я вносил в анализатор, делал навесным монтажем. Т.е. та печатка, что есть — старая и не правильная.

    Да и вообще, я печатки и исходные файлы проекта платы специально не выкладываю, чтобы народ сам выбирал, какими средствами их делать. Типа я не навязываю софт :) Только схема в pdf и все.

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

  10. MasterAlexei пишет:

    I2C снифер стоит в очереди задач. Я сейчас разбираюсь со своим вачдогом для сервера.

  11. marshallab пишет:

    Насчет выпаяных деталей это не отговорка, это свобода выбора :)

    Но все же есть некоторые детали (типа меги 128) которые можно найти в любом месте планеты, или девайс где она стоит...

    У меня оформилась мысль по анализатору: мега(Ардуина, м8 м168 м328 м128 м644 м1281) + микросхема кэша из старой матери (распиновка у всех одинакова) + маленькая прошивка. Сигнал напрямую пишется в память с последующей передачей на комп.

    Скорость сэмплирования в теории 8 Мгц, объем сэмплов = мс кэша.

    Вопрос в протоколе передачи на компьютер... какой он? Писать программу на комп с нуля ну никакого желания.

  12. marshallab пишет:

    Только что пришла идея использовать в роли софта LabView. Давно хотел попробовать/заюзать/изучить. Там можно написать все что относится к протоколу обмена, анализа и использовать готовый интерфейс графики/таблички... Только где бы взять время на изучение!?

  13. MasterAlexei пишет:

    Про LabView ничего не скажу — я его только на курсах тут однодневных ознакомительныз пользовал. Да и денег оно стоит (место жительства приучает потихоньку к тому, что за все платить все таки надо ;-) , потому стараюсь пользовать бесплатные или GPL-овские вещи).

    По анализатору — частота сэмплирования по любому не будет 8 мгц, мне так кажется. Для этого надо ставить ПЛИС, чем я сейчас и занимаюсь, точнее обдумываю такие идеи, готовлю очередной инструмент для этого, обмозговываю схемы и блоки с моим коллегой.

  14. MasterAlexei пишет:

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

    А так — в исходниках прошивки процессора можно глянуть про него:

    в файле uart.h есть структура TCommData — это на прием от GUI.

    А вот отправка захваченных данных находится в файле main.c начиная со строк 148 по 168 — это в режиме SPI и со строк 171 по 198 — это уже данные анализатора. Ну я подробней как нить опишу это все в очередной статье ;-)

  15. marshallab пишет:

    Блуждая в своих мыслях и рассуждениях совсем забыл что на все есть исходники! Очередное спасибо :)

    Посмотрел. действительно ничего сложного в протоколе, без статьи понятно. Хотя когда начинаешь делать что-нибудь вылезает, так что описания это полезно.

    На самом деле теперь надобности в анализаторе нет. Меня ваш устраивает. Даже не представляю где более скоростной мне пригодится...

    Автономная программа конечно лучше (чем LabView с установкой) воткнул, запустил, увидел.

    Фотка анализатора fotki.yandex.ru/users/marshallab/view/229173/

    отлично работает.

  16. ditstop пишет:

    Добрый день ! Интересная штука, до этого искал осциллограф не зная даже такого названия ))) «Логический анализатор». Век живи, век учись. Спасибо ! Буду собирать для чтения CAN в авто.

    MasterAlexei , есть возможность увеличить частоту дискретизации ?

  17. MasterAlexei пишет:

    День добрый, ditstop!

    Именно для этой версии увеличивать уже некуда, так как там Мега на пределе (документированном ;-) ) работает — 16 МГц, и таймер на 5 микросекунд идет — это самый минимум, который возможен с этим софтом. Конечно там можно попробовать выжать из нее 4 микросекунды — но оно того не стоит. Я тут параллельно с другими моими проектами работаю в компании с моим коллегой из Москвы над следующей версией ЛогАнализатора, на базе CPLD/FPGA. Вот тот будет пошустрее значительно ;-) Так что «не переключайтесь!».

  18. marshallab пишет:

    Привет. Обдумал анализатор с внешней памятью (61256 static RAM из материнки). Скорость сэмплирования по прикидкам около 24 Мгц. Триггеры аппаратные — на триггерах. Протокол...

    Но наткнулся на обсуждения kazus.ru/forums/showthrea...;highlight=usbee

    Совсем недавно облизывался на USBee AX — 1700$ ... и тут такое!

    CY7C68013A + 24CXX и все. Параметры: 24МГц сэмплирования, софт с разными распознавателями. Прошивать проц не надо (не знал что такие процы есть). Вообщем почитайте. Может быть интересно.

  19. MasterAlexei пишет:

    О. Спасибо! Погляжу, почитаю. :)

  20. Новая версия Логического Анализатора, с возможностью добавления плагинов | Fun Electronic пишет:

    [...] а так как у меня уже был софт Логического анализатора, то думал его немного доделать, чтобы с этой платкой [...]

Оставить комментарий или два

Пожалуйста, зарегистрируйтесь для комментирования.