RSS
people

Meine Werkzeuge: Logic Analyzer V. 3.0

Es ist noch kein halbes Jahr vorbei, und ich bin wieder da.

Wie ich versprochen habe, habe ich die 3. Version von meinem Logic Analyzer released.

Und, wie ich gesagt habe, dies mal ist das ganze GUI Interface mit der Hilfe der wxWidgets Bibliothek Version 2.8.10 geschrieben wurde.

So siech es jetzt aus:

Logic Analyzer LA Window

Logic Analyzer SPI Window

Logic Analyzer Options

Logic Analyzer Comm Port Settings

Also, falls Jemand irgendwas ändern will, kann er es selber machen. Man muss nur die Entwicklungsumgebung einrichen ;-)  

Die Entwicklungsumgebung besteht aus volgender Komponenten: 

Die  wxWidgets wird als Sourcecode geliefert, bzw. runtergeladen und muss erst kompiliert werden. Es gibt viele Möglichkeiten das zu machen. Mir ist es gelungen mit der Hilfe des Kompilers MinGW alle configurationen zu kompilieren: Debug, Release, Unicode, Ansi, Debug Unicode, Debug Ansi, dynamic und static.

Wenn jemand die Schwierigkeiten bei der Kompilierung hat, ich kann die Binaries auf irgend eine Dateitauschbörse aufladen. Es sind nur 244 Megabytes drinn ;-)

IDE Code::Blocks ist eigentlich — must have. For allem, in der letzen Versionen kann man damit sogar die Projekte für AVR´s erstellen.

Und die IDE hat auch viele andere interessante Features. Und alles kostelos. Also — empfelenswert.

Die letzte Version kann man von nightly builds runterladen (prekompilled), oder von SVN und selber kompilieren, was ich auch gemacht habe. Und es fuktioniert!

GUI Editor wxFormBuilder wird als Binary geliefert und kann sofort gestartet werden.

Cygwin braucht man für Frimware — Kompillvorgang, es wird make Utility benutzt. Und das ist auch nutzvolles Ding. Zum Beispiel Shell.

Und MinGW Kompiller ist schon in dem Code::Blocks dabei.  

die Firmware für Logic Analyzer ist auch ein bisschen geändert. Und zwahr in dem SPI Master Mode SS pin deint jetzt als Chip Select. Letztes mal habe ich dieses Punkt fergessen.

So. Jetzt fehlt nur die kleinichkeit, und zwahr das Archiv mit dem ganzen: logicanalyzer_v_3_0.rar

Dort sind drei verzeichnisse - AVR, wxWidgets, Common.

In der Verzeichniss Common liegen einige Code-Teile, die ich in allen meinen Projekten ohne Änderungen nutze. 

In der Verzeichniss AVR liegen Sourcecodes für Firmware und die Binary-Datei der Frimware.

In der Verzeichniss wxWidgets\LogicAnalyzer liegen die sourcescodes des GUI Programms. In der Verzeichniss bin\Release lieget schon kompilierte ausführbare Datei. Sollte keine andere Bibliotheken gebraucht werden. Falls es nicht der Fall ist, meldet euch — ich lege die dazu.

So. Wer hat geschafft, bis hierher zu lesen, krieget was schöneres, und zwahr die Beschreibung der neuen Features des Tools. 

Also:

  1. In dem Logic Analyzer Modus gibt es jetzt die Möglichkeit die erfasste Daten zu speichern und wieder laden.
  2. In das selben Modus gibt es jetzt die Möglichkeit zu schauen, was für ein Wert stellen die Signale dar. Dafür muss man nur das Häckhen Value at cursor einschalten. Der Wert wird aus der Mausposition erfasst. Mann kan den Wert als HEX oder als DEC darzustellen. Mann kann auch die Reihenfolge der Bits umdrehen, falls die Probes falscherweise angeschlossen sind.
  3. Jetzt kann man das Fenster des Analyzators in alle mögliche Farben setzen.
  4. In dem SPI Modus gibt es die Möglichgeit, den CRC Wert (erst mal 16-Bit lang) der zusendenden Daten mitzusenden. Falls das CRC Häckhen ein ist, und der Anzahl zusendenden Bytes mehr als 2 ist, dann die letzte 2 Bytes werden mit dem CRC Wert ersetzt.
  5. Genau so, bei dem eingeschalteten CRC Häckhen, wird es den CRC Wert der empfangenen Bytes (ausser letzten 2) kalkuliert. Und falls der kalkulierte CRC Wert gleich ist mit der empfangenen 2 letzten Bytes, dann wird der Zähler CRC OK inkrementiert. Sonst — CRC BAD Zahler wird inkrementiert. 
  6. Und auch für die Statistiks werden gesendene Pakete gezählt.

Alles ande ist, eigentlich gleich geblieben.

Also, ich habe alles gezeigt. Falls es die Fragen geben werden, schreib einfach in den Kommentaren rein. Falls man einen Fehler entdekt, wäre nicht schlecht eine genaue Beschreibung bekomnen, wie man zu dem Fehler gekommen ist. 

A. Für die weitere Interesse, ich habe eine Gedanke, zu dem Analyzator noch einen I2C (TWI) Logger einzufühgen. Desswegen, nicht entspannen! Es wird noch was geben. Ich verspreche nicht, dass es sehr bald wird, aber irgendwann mal ;-)

Und ein bisschen Werbung:

Falls es eine Interesse besteht, dieses Werkzeug in gefertigter Ausführung zu bekommen, diese Möglichkeit gibt. Schreib einfach ein Komment da unten, ich werde über das Preis überlegen, und auch über die Fertigungsmöglichkeite, eintweder bein einem Werk, oder selber mit dem Laserdrucker und Bügeleisen, falls es die Menge nicht zu gross wird. Auch wird es möglich den Tool als Bastel-Set zu bekommen.

Und wie immer, ein paar Links, was mann braucht um den Wunderwerk zu bauen: 

20 комментариев к “Meine Werkzeuge: 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 пишет:

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

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

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