Не прошло и пол-года, как я опять с вами, мои читатели.
Как я и обещал в прошлом посте, я выпустил 3 — ю версию своего Логического Анализатора.
И, как я и обещал, на этот раз весь GUI интерфейс написан с использованием бесплатной библиотеки wxWidgets версии 2.8.10.
Так он выглядит в текущем варианте:
Так что если кто-то захочет что-нибудь изменить в программе, или добавить свои навороты — он сможет теперь это сделать сам и собственноручно. Единственно — надо будет только настроить среду разработки
Сюда входят следующие компоненты:
- библиотеки 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-шник этой программки, готовый к исполнению (по идее — не требует никаких библиотек, но если не так — дайте знать, доложим).
И так, кто дочитал до сюда, получит самое инетересное — описание новых фич. Хотя может кто-то предпочитает эти фичи сам искать.
Так вот:
- В режиме Логического Анализатора добавилась возможность сохранения и последующего чтения анализируемых данных.
- В том же режиме теперь есть возможность поглядеть, что за байт такой представлен сигналами. Например, если вы смотрите шину данных с помощью этого прибора, то включив галочку Value at cursor можно будет наблюдать за тем, что за значение скрывается в позиции, на которую указывает курсор мышки. Это значение можно показывать как в 16-тиричном, так и в десятичном виде. А так же можно перевернуть биты, если вдруг вы проводки в обратном порядке подключили, а перетыкать в лом
- Так же сделал возможность раскрашивать окно Логического Анализатора во все цвета радуги в меню Options.
- В режиме SPI логгера, теперь добавилась возможность посылать 16-ти битное (для начала, пока что) значение CRC. Если галка CRC включена, и количество посылаемых байт больше 2-х, то последние два байта будут имено этим значением CRC.
- Так же, при включенной галке CRC будет производиться подсчет CRC принимаемых байт, кроме последних 2х, и сравниваться с последними 2мя принятыми. И если совпадают, то увеличивается счетчик CRC OK. Если нет — то увеличивается счетчик CRC BAD.
- Ну и для статистики — всегда считается количество посланных пакетов TX.
Ну а остальное вроде все тоже самое осталось.
Ну что ж, все рассказал, показал. Если будут вопросы, или вдруг будет найдена ошибка — напишите в комментах, что есть ошибка, и если не затруднит — пошлите на мыло мне примерно подробное описание, как мне эту ошибку воспроизвести. Если получится воспроизвести — то исправлю и сделаю новую версию.
А. Для поднятия интереса — на днях посетила меня идея, добавить в этот прибор еще I2C (TWI) логгер. Так что не расслабляемся, ждем еще вкусностей. Не обещаю скоро, но должно быть
Кстати — немного рекламы:
Если есть интерес прикупить этот прибор в уже готовом виде, то такая возможность есть. Так что если есть интерес — пишите в комментах — буду думать о цене, и способах изготовления — сам утюгом или же заводским способом (в зависимости от количества желающих). Так же будет возможность прикупить этот прибор в виде конструктора а-ля «сделай сам».
Ну и на последок пара ссылок, что надо для запуска этого чудо прибора:
- библиотеки wxWidgets версии 2.8.10
- IDE Code::Blocks
- редактор интерфейса wxFormBuilder
- среда Cygwin
- Прошивка микроконтроллера и управляющая программа: logicanalyzer_v_3_0.rar
20 комментариев к “Мои инструменты: Logic Analyzer V. 3.0”
Оставить комментарий или два
Пожалуйста, зарегистрируйтесь для комментирования.
5th February 2010 в 8:40
Долго выбирал какой анализатор собрать (дня 2), сегодня собрал Ваш.
Взял свою Adruinu/ Wiring на mega128, навтыкал проводков, питание, кабель усб-рс232, програмка... Сразу всё заработало Дольше выбирал.
Опасался что частоты не хватит смотреть I2C обмен, но все нормально.
Спасибо большое, за сей комплекс!
Буду ждать появления логера I2C. В других работах пригодится.
5th February 2010 в 8:52
Кстати. Почему бы вам не подойти к изготовлению с другой стороны. Берется стандартная плата Arduino (mega168) или на ArduinoMega + ваша прошивка + ваша программа = лог. анализатор. В зависимости от типа ардуины разный объем памяти. Правда продавать при этом свои платы сложно, ардуины продаются везде... Но можете сделать свою платку обозвать дуино совместимой
Ну это так, мысли вслух.
5th February 2010 в 9:42
Мысль, кончено, интересная. Надо хотя бы глянуть на эту ардуину, «с чем ее едят» и чем она полезна.
Просто у меня дома в закромах валяется несколько ATMegа128-ых (я уже где то писал про это), поэтому я даже и не задумывался, на какой платформе делать — взял очередную мегу и сваял платку
5th February 2010 в 9:43
Рад, что пригодилась эта разработка
5th February 2010 в 17:28
Все просто.
Ардуино это плата на которую запаян проц Atmel (mega168/128/644) и обвязка (кварц, питание, FT232 для USB или max232 для RS232). Все вывода разведены на разъемы (стандартно расположенные).
Создатели придумали 2 фишки: простецкий язык/интерпретатор для winAVR и стандртизировали расположение разъемов. В разъемы подключаются МНОЖЕСТВО разных платок с периферией ( или проводки втыкаются)...
Все это продается и популярно. Это важно так как англоговорящие вообще редко платы сами делают...
Получился класный набор для макетирования всего электронного.
marshal-lab.ru/node/11 — мой вариант. Правда разъемы не по стандарту.
5th February 2010 в 19:05
>поэтому я даже и не задумывался, на какой платформе делать — взял очередную мегу и сваял платку
У меня ступор наступает предже чем начать делать. Начинаю задумываться, искать лучшее решение, лезу в инет, готовые решения, плюсы минусы... прошло несколько дней. Либо уже не надо, либо включается лампочка и решение находится само. Еще останавливает то что нужно разводить, делать плату, а это время. Лень вообщем. С ардуиной проще, плата, проводки, бред борд. Полчаса максимум и можно кодить. Или как в случае с лог. анализатором 5 минут доставание из ящика усб щнурка и сборку, прощивку и пробу. Даже не пробу, а сразу работу.
Вот такой реализатор фантазий
5th February 2010 в 19:08
А, не. Мне интересней чего нить спаять самому, чтобы потом это запрограммить. А просто программирования мне и на работе хватает выше крыши. Тут это своего рода отдушина, состряпать свое железо.
25th February 2010 в 19:01
Спасибо еще раз. Анализатор работает, в смысле как рабочий инструмент. Уже несколько раз выручал, экономил время/нервы. Даже несколько пересмотрел стратегию разработки/взлома/изучения.
Купить usb осцилограф — анализатор дорого, да и нет их у нас (заказывать нехочу). Задумался сделать отдельную плату для анализатора, чтобы макетку не занимать. У вас есть рисунок печатной платы?
PS. С нетерпением жду снифер I2C протокола. Надеюсь появится.
25th February 2010 в 19:38
Рисунка печатки нету, так как все исправления, которые я вносил в анализатор, делал навесным монтажем. Т.е. та печатка, что есть — старая и не правильная.
Да и вообще, я печатки и исходные файлы проекта платы специально не выкладываю, чтобы народ сам выбирал, какими средствами их делать. Типа я не навязываю софт Только схема в pdf и все.
И еще потому, что почти все детали, которые я использую в своих поделках, уже выпаяны из разных других приборов или забракованных запчастей, и вполне возможно, что у других людей совсем другие детали будут, может даже более подходящие для конкретной задачи, и им все равно придется переделывать плату. Помоему хорошая отговорка. А?
25th February 2010 в 19:38
I2C снифер стоит в очереди задач. Я сейчас разбираюсь со своим вачдогом для сервера.
27th February 2010 в 7:43
Насчет выпаяных деталей это не отговорка, это свобода выбора
Но все же есть некоторые детали (типа меги 128) которые можно найти в любом месте планеты, или девайс где она стоит...
У меня оформилась мысль по анализатору: мега(Ардуина, м8 м168 м328 м128 м644 м1281) + микросхема кэша из старой матери (распиновка у всех одинакова) + маленькая прошивка. Сигнал напрямую пишется в память с последующей передачей на комп.
Скорость сэмплирования в теории 8 Мгц, объем сэмплов = мс кэша.
Вопрос в протоколе передачи на компьютер... какой он? Писать программу на комп с нуля ну никакого желания.
27th February 2010 в 7:51
Только что пришла идея использовать в роли софта LabView. Давно хотел попробовать/заюзать/изучить. Там можно написать все что относится к протоколу обмена, анализа и использовать готовый интерфейс графики/таблички... Только где бы взять время на изучение!?
27th February 2010 в 10:38
Про LabView ничего не скажу — я его только на курсах тут однодневных ознакомительныз пользовал. Да и денег оно стоит (место жительства приучает потихоньку к тому, что за все платить все таки надо , потому стараюсь пользовать бесплатные или GPL-овские вещи).
По анализатору — частота сэмплирования по любому не будет 8 мгц, мне так кажется. Для этого надо ставить ПЛИС, чем я сейчас и занимаюсь, точнее обдумываю такие идеи, готовлю очередной инструмент для этого, обмозговываю схемы и блоки с моим коллегой.
27th February 2010 в 10:47
А протокол вроде как не сильно сложный. Надо как нибудь статейку написать про него, раз интерес есть.
А так — в исходниках прошивки процессора можно глянуть про него:
в файле uart.h есть структура TCommData — это на прием от GUI.
А вот отправка захваченных данных находится в файле main.c начиная со строк 148 по 168 — это в режиме SPI и со строк 171 по 198 — это уже данные анализатора. Ну я подробней как нить опишу это все в очередной статье
27th February 2010 в 17:34
Блуждая в своих мыслях и рассуждениях совсем забыл что на все есть исходники! Очередное спасибо
Посмотрел. действительно ничего сложного в протоколе, без статьи понятно. Хотя когда начинаешь делать что-нибудь вылезает, так что описания это полезно.
На самом деле теперь надобности в анализаторе нет. Меня ваш устраивает. Даже не представляю где более скоростной мне пригодится...
Автономная программа конечно лучше (чем LabView с установкой) воткнул, запустил, увидел.
Фотка анализатора fotki.yandex.ru/users/marshallab/view/229173/
отлично работает.
14th March 2010 в 15:54
Добрый день ! Интересная штука, до этого искал осциллограф не зная даже такого названия ))) «Логический анализатор». Век живи, век учись. Спасибо ! Буду собирать для чтения CAN в авто.
MasterAlexei , есть возможность увеличить частоту дискретизации ?
14th March 2010 в 16:04
День добрый, ditstop!
Именно для этой версии увеличивать уже некуда, так как там Мега на пределе (документированном ) работает — 16 МГц, и таймер на 5 микросекунд идет — это самый минимум, который возможен с этим софтом. Конечно там можно попробовать выжать из нее 4 микросекунды — но оно того не стоит. Я тут параллельно с другими моими проектами работаю в компании с моим коллегой из Москвы над следующей версией ЛогАнализатора, на базе CPLD/FPGA. Вот тот будет пошустрее значительно Так что «не переключайтесь!».
1st April 2010 в 7:37
Привет. Обдумал анализатор с внешней памятью (61256 static RAM из материнки). Скорость сэмплирования по прикидкам около 24 Мгц. Триггеры аппаратные — на триггерах. Протокол...
Но наткнулся на обсуждения kazus.ru/forums/showthrea...;highlight=usbee
Совсем недавно облизывался на USBee AX — 1700$ ... и тут такое!
CY7C68013A + 24CXX и все. Параметры: 24МГц сэмплирования, софт с разными распознавателями. Прошивать проц не надо (не знал что такие процы есть). Вообщем почитайте. Может быть интересно.
1st April 2010 в 8:24
О. Спасибо! Погляжу, почитаю.
4th January 2012 в 12:51
[...] а так как у меня уже был софт Логического анализатора, то думал его немного доделать, чтобы с этой платкой [...]