Едноканален логически анализатор от компютър. Усъвършенстване на логически анализатор от Китай

Arduino е уникален микроконтролер, който ви позволява да създавате всяко устройство, ограничено само от въображението на инженера. Днес ще говорим за един от тези проекти и ще анализираме антенния анализатор на Arduino, както и всички нюанси, с които ще трябва да се справите, когато го запоявате и програмирате.

Всъщност спектрален анализатор на Arduino е доста прост проект, но идеален за начинаещи и тези, които искат да добавят това устройствокъм вашия инструментариум. Нека да разгледаме какво представлява логическият анализатор на Arduino и какви клопки ви очакват при проектирането и запояването му.

Схема на логически анализатор, базирана на Arduino MK

Първо трябва да проектираме какво ще запояваме. Логическият анализатор е прост инструмент, чиято цялостна работа е да чете и анализира двоичен код (цифров сигнал), предаван чрез прилагане на електричество.

С други думи, всеки 5 волта, подадени към устройството, са единица, липсата на такава е нула. Този двоичен код се използва при кодиране на данни и в много устройства, включително тези, базирани на Arduino. Четенето започва, като правило, с един. И за да проверите проекта си с двоично кодиране, ще ви трябва логически анализатор.

Най-лесният начин е да изпробвате устройството на I2C шината, която се използва в повечето електронни устройства и до днес. За да разберем какво трябва да проектираме, нека разгледаме основните характеристики на устройството:

  1. 4 канала за логически анализ на входящите сигнали.
  2. Променливостта на честотите на сигнала е до 400 kHz; този диапазон ще покрие повечето съвременни устройства, с изключение на специализираните.
  3. Входното напрежение трябва да бъде до +5 волта, както вече беше описано, това е стандартът, взет за единица (наличие на сигнал).
  4. LED дисплей за показване на информация. Особено сложни програмисти могат да закупят няколко светодиода и да изградят собствен дисплей с необходимия им диагонал, но за всички останали писането на софтуер за такова устройство ще бъде твърде трудоемко и ще се окаже ненужна стъпка. Затова тук ще разгледаме версия на устройството с LCD дисплей.
  5. 4 батерии за захранване, 1.2 V at максимално напрежениена 4,8 волта.
  6. RAM. Препоръчително е да вземете две разновидности - високоскоростни (3,6 ms на сигнал) и нискоскоростни (36 s), това решение ще ви позволи да покриете целия диапазон от сигнали.
  7. Контролен панел или чифт бутони.
  8. Всяка черупка за закрепване на конструкцията. Можете да го отпечатате на 3-D принтер, можете да вземете ненужна пластмасова кутия или изобщо без калъф. Тук съвети няма да даваме, устройството работи, дали с черупка или без, изборът е ваш.

За захранване трябва да изберете батерии, тъй като 4 батерии от 1,5 волта могат да повредят Arduino и да изгорят платката. Да не говорим за опасността за LCD дисплея. Ето защо не пестете и вземете качествени компоненти. В крайна сметка качеството на крайния продукт е равно на параметъра на най-лошия му компонент.

Не забравяйте да добавите превключвател S1 към крайната верига, който ще се използва за захранване и изключване на устройството, така че батериите да не се разреждат просто.

Ще са необходими и специални издърпващи резистори, които ще елиминират неверните данни, които могат да се появят поради електромагнитното поле на пръстите на сигналната сонда. В резултат на това шумът и изкривяването на цифровите входове ще бъдат минимални.

Можете да вземете LED както желаете, необходимо е да се посочи наличието на цифров сигнал и той може да бъде напълно заменен от софтуер за LCD дисплея. Това решение е удобно само като индикатор за запис цифрови сигналив паметта, но във всеки случай ще активирате устройството ръчно, така че такава индикация, ако е необходимо, може да бъде премахната.

Препоръчителни периферни устройства за създаване на логически анализатор, базиран на микроконтролера Arduino

От всичко по-горе вече сте съставили груб списък с периферни устройства за покупка, но нека изясним този момент. В логическия анализатор ще ви трябва:

  1. Самият микроконтролер Arduino. Няма значение кой ще изберете, това ще се отрази само на крайния размер на устройството. Софтуерът за всяка версия изглежда еднакво. Използвана е платката на горната снимка.
  2. ЛСД дисплей. Ако имате стар бутонен телефон, можете да го премахнете и да настроите „безотпадно“ производство.
  3. Резистори с различен капацитет.
  4. Сензор за ток.
  5. 4 батерии.
  6. Един или два светодиода.
  7. Карта с памет, но това не е задължително.

Освен това естествено ще ви трябва поялник, спойка и други аксесоари. По-добре е предварително да намерите място, където ще съберете всичко това. И ако работите с поялник за първи път, проучете правилата за пожарна безопасност и характеристиките на неговата работа, за да не запоявате отново всяка част 10 пъти.

Програмиране на Arduino MK при внедряване на проекта "логически анализатор".

Благодарение на популярността на Arduino, вече има готови библиотеки и функции за логически анализатори на този MK. Всичко, което трябва да направите, е да изберете правилния и да пренапишете програмния код за вашето устройство. В крайна сметка платките, сензорите и другите входове са различни за всеки и за да работи вашето устройство без проблеми, ще трябва да настроите кода на някой друг според вашите нужди. Ако не искате да се занимавате и имате опит в програмирането на C++, можете да използвате всяка среда, която желаете.

Кодът за веригата на снимката по-горе може да бъде като този:

/************************************ 128 на 64 LCD логически анализатор 6 канала и 3Mb/s от Bob Дейвис използва универсална 8-битова графична библиотека, http://code.google.com/p/u8glib/ Copyright (c) 2012, [имейл защитен] Всички права запазени. ************************************************ ****/ #include "U8glib. h" // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 // U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // **** ЗАБЕЛЕЖКА **** Преместих трите контролни щифта !!! U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 1, 2, 3); int проба; int вход=0; int OldInput=0; int xpos=0; void u8g_prepare(void) ( u8g.setFont(u8g_font_6x10); u8g.setFontRefHeightExtendedText(); u8g.setDefaultForegroundColor(); u8g.setFontPosTop(); ) void DrawMarkers(void) ( u8g.drawFrame (0,0,128,64); u8g .drawPixel(20,1); u8g.drawPixel(100,62); изчакайте задействане на положителен вход Input=digitalRead(A0); while (Input != 1)( Input=digitalRead(A0); ) // събиране на аналоговите данни в масив // Без цикъл е около 50% по-бърз Образец=PINC; Образец=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; Проба=PINC; // показване на събраните аналогови данни от масив for(int xpos=0; xpos<128; xpos++) { u8g.drawLine (xpos, ((Sample&B00000001)*4)+4, xpos, ((Sample&B00000001)*4)+4); u8g.drawLine (xpos, ((Sample&B00000010)*2)+14, xpos, ((Sample&B00000010)*2)+14); u8g.drawLine (xpos, ((Sample&B00000100)*1)+24, xpos, ((Sample&B00000100)*1)+24); u8g.drawLine (xpos, ((Sample&B00001000)/2)+34, xpos, ((Sample&B00001000)/2)+34); u8g.drawLine (xpos, ((Sample&B00010000)/4)+44, xpos, ((Sample&B00010000)/4)+44); u8g.drawLine (xpos, ((Sample&B00100000)/8)+54, xpos, ((Sample&B00100000)/8)+54); } } void setup(void) { pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, INPUT); pinMode(A5, INPUT); // assign default color value if (u8g.getMode() == U8G_MODE_R3G3B2) u8g.setColorIndex(255); // RGB=white else if (u8g.getMode() == U8G_MODE_GRAY2BIT) u8g.setColorIndex(3); // max intensity else if (u8g.getMode() == U8G_MODE_BW) u8g.setColorIndex(1); // pixel on, black } void loop(void) { // picture loop // u8g.firstPage(); do { draw(); } while(u8g.nextPage()); // rebuild the picture after some delay delay(100); }

Не забравяйте да изтеглите библиотеки за работа с Arduino. И също така вземете предвид, че изходът отива към LCD екрана. Когато приключите с писането на софтуера, просто го заредете на платката с помощта на специален USB адаптер.

Може да се случи така, че поради начина, по който се показва информацията на LCD дисплея, няма да имате достатъчно постоянна памет на устройството. В този случай има смисъл да закупите флаш устройство и да го прикрепите към системата. За щастие, това се прави доста просто и всичко, от което се нуждаете, е специален адаптер за вашия физически диск.

Доста често в домашните електронни занаяти има нужда да се разгледа този или онзи сигнал и неговото цифрово представяне е достатъчно - какво предава MK чрез I2C, дали PWM е конфигуриран правилно и т.н. Ако имате добър осцилоскоп на работа, тогава закупуването на такъв за вашия дом е твърде скъпо, особено когато нуждата възниква само от време на време.
Напоследък се появиха евтини (около $50) логически анализатори, но една мисъл винаги ме спираше да ги купя: нещото е изключително просто, защо не го направите сами от скрап материали?
В тази статия ще ви кажа как да направите прост логически анализатор с минимални финансови разходи - всичко, от което се нуждаете, е платката за отстраняване на грешки Stm32F4Discovery.

Логически анализатор (наричан по-долу LA)– устройство, предназначено за запис, преглед и анализ на сигнали в цифрови схеми. Подобно на осцилоскоп, LA е свързан с една или повече сонди към анализираната верига, но за разлика от осцилоскопа, той записва само две състояния на сигнала "0" и "1". Важна функция на самолета е способността за автоматично дешифриране на записани сигнали, например за анализиране на обмена на данни по I2C или SPI шината. Освен това LA се отличават с по-голям брой анализирани линии в сравнение с осцилоскопите: от 8 в прости анализатори до стотици в промишлени проби.
Описаният тук проект - LogicDiscovery - е SUMP-съвместим логически анализатор, направен във формат на USB приставка за компютър. Има доста скромни характеристики: 20MHz, 16 канала, 24kB памет. Това обаче е достатъчно за много широк спектър от задачи: анализ на UART, I2C, SPI линии (в рамките на няколко мегахерца), паралелни шини, измерване на времеви характеристики на сигнала и др.

Да започваме

И така, всичко, от което се нуждаем, е:
  • Платка за разработка Stm32F4Discovery. От 500 рубли в Москва на дребно или може би вече е във вашите кошчета? Всяка друга платка, базирана на STM32F4 или STM32F2, също ще работи, но тогава ще трябва да коригирате източниците.
  • Няколко проводника за свързване към анализираната верига.
  • Готовият за използване фърмуер е наличен в Google.Code. Източниците също са там.
  • Освен това ви трябва клиент за компютър, препоръчвам OLS.
Клиентът е написан на Java, така че полученото решение е независимо от операционната система. Теоретично можете да използвате всеки SUMP-съвместим клиент, но по-долу ще опиша работата с тази конкретна програма.
Stm32F4Discovery се захранва от mini-USB порт, през който се флашва. За да използвате функциите на самолета, бордът е свързан към компютър чрез micro-USB порт. За да захранвате платката от същия порт, свържете щифтовете с джъмпер PA9И 5V. PA9 е свързан директно към Vbus на micro-USB порта, а 5V е входът на стабилизатора, който генерира захранване за платката. За да проверите работата, свържете портовете PA2И PD0. На PA2 се генерира тестов сигнал, а PD0 е първият вход на самолета.

Платката се разпознава от компютъра като COM порт; за Linux драйверите са стандартни и вече трябва да са в ядрото; за Win драйверите се изтеглят от сайта на ST. След като платката бъде идентифицирана, можете да стартирате клиента и да се захванете за работа.
Но първо, муха в мехлема.

Ограничения

Проектът използва отворения протокол SUMP. Този протокол първоначално е разработен за самолети, базирани на FPGA, и тъй като микроконтролерите все още са по-ниски от тях по отношение на запис на входни сигнали и анализ на потока от данни, не всички функции, реализирани в клиента, ще бъдат достъпни за нас:
  • Максимална честота на запис – 20 MHz, в оригинал до 200 MHz
  • RLE компресия и филтриране на шум не се поддържат.
  • Не можете да избирате произволни групи канали, само първата (8 канала) или първата + втората (16 канала).
  • Тригерите работят не по стойност, а по ръб (обаче според мен това вече е предимство).
  • Няма поддръжка за разширени (комплексни) тригери.
Тези ограничения трябва да се имат предвид при конфигурирането на клиента. Той не знае нищо за тези ограничения и ще ви позволи да изберете всякакви настройки. Полученият резултат в този случай ще бъде неправилен.

Ние използваме

Стартираме клиента чрез файла run.bat или run.sh, в зависимост от използваната ОС. Можете да прочетете за функциите на клиента на неговата страница; тук ще опиша процеса на получаване на първите проби и тези настройки, които са обект на ограничения.

В менюто "Улавяне", като изберете елемент „Започнете заснемането“, отворете прозореца с настройки за запис. На първата страница в полето ""Порт на анализатора"избираме порта, на който седи нашият самолет, нищо друго не трябва да се променя. Бутон „Показване на метаданните на устройството“Можете да проверите връзката:

На втората страница посочваме параметрите за улавяне. Не докосваме първите две точки,
"Честота на дискретизация"не по-висока от 20 MHz (ако посочите повече, платката все още използва 20 MHz, но клиентът ще мисли, че се използва посочената стойност, като цяло ще бъде глупост).
„Групи канали“: 0 – използваме една група канали, това са линии PD0-PD7, или 0 и 1 – използваме две групи канали – линии PD0-PD15.
"Размер на запис": за една група канали – произволна стойност, за две групи – не повече от 12kB (клиентът ще предупреди, ако в това поле е избрана неправилна стойност).
Ние не докосваме квадратчетата за отметка на тази страница, те не се поддържат:

Страница "Тригери"- Най-интересното. Отбелязваме първото квадратче, за да активираме тригерите.
„Съотношение преди/след“ви позволява да посочите, в проценти, колко данни да запазите, преди да се задейства буферът. След щракване "Улавяне"Самолетът незабавно започва да записва данни, като ги добавя към цикличен буфер и когато спусъкът се задейства, той отчита процента от времето, посочен в полето After, и изпраща данните към компютъра.
"Тип"- Само “Прост”, “Сложен” - не се поддържа.
"Режим"- Само “Паралелно”.
"Маска"- това са линиите, на които тригерът ще изчака падане на сигнала, поставете флага в нулева позиция, за да задейства на линията PD0
"Стойност"- границата на сигнала, при която тригерът ще се задейства. Флагът е отметнат – преден ръб. Без отметка – отзад:

За да проверите работата, свържете портовете PD0 и PA2 (тестовият UART сигнал се извежда на този порт) с джъмпер.

Това е всичко, щракнете "Улавяне"и погледнете получения сигнал (Ctrl+F - прегледна скала):

Ако нищо не се случи, това означава, че сте настроили тригера да задейства на грешни линии или изобщо няма сигнал - проверете настройките и връзките на платката. Тригерът може да се стартира ръчно чрез натискане на потребителския бутон (син бутон).

Мерки за безопасност

Помня:свързвате директно към портовете на микроконтролера! Няма защита освен диодите вградени в МК на платката. Затова първо се уверете, че изследваният сигнал има максимално напрежение от 3,3 V, в краен случай 5 V, но след това е препоръчително да добавите защитен резистор между източника на сигнала и самолета.

Когато се свързвате към анализираната верига, не забравяйте първо да свържете заземяването и едва след това сигналните линии. Особено когато анализираната верига се захранва от собствено захранване, а не от същия компютър, към който е свързан самолетът.

0

Василис Серасидис Логическият анализатор е инструмент, който ви позволява да видите и анализирате последователността от логически 0 и 1 в цифров сигнал. Например, можете да изучавате цифровия сигнал от IR демодулаторния приемник TSOP-1736, изходните и входните сигнали на чипа MAX232, както и I2C шината (часовник и линия за данни) в много електронни устройства. В тази статия ще разгледаме дизайна на миниатюрен 4-канален логически анализатор с LCD дисплей от мобилен телефон Nokia 5110/3110. В основата на дизайна е микроконтролерът Atmel ATmega8, в допълнение към него се използват още няколко дискретни компонента. Основни характеристики на устройството: 4-канален логически анализатор; възможност за изучаване на сигнали с честота до 400 kHz; входно напрежение до +5 V; LCD дисплей с резолюция 84 × 48 пиксела; захранва се с 4 батерии 1.2 V, максимално захранващо напрежение 4.8 V; памет: от 3,7 ms за високоскоростни сигнали до 36 s за нискоскоростни сигнали; бутони за управление; прост дизайн. Принципна диаграма Фигура 1 показва принципна диаграма на устройството. Веднага трябва да се отбележи, че устройството се захранва от 4 батерии с напрежение 1,2 V всяка.
Кликнете за уголемяване Внимание!!! Захранването от 4 батерии с напрежение 1,5 V е неприемливо за тази верига на устройството, тъй като напрежение от 6 V може да повреди микроконтролера и LCD дисплея.
Превключвател S1 е проектиран да захранва. Изтеглящите резистори R2-R5 са инсталирани, за да предотвратят появата на фалшиви данни на цифровите входове на устройството поради влиянието на електромагнитни полета или когато пръстите докоснат сигналните сонди. LED1 е предназначен да показва наличието на сигнал на цифровите входове на устройството и следователно началото на запис на сигнали в паметта. Веригата използва LCD индикатор от мобилен телефон Nokia 3310/5510, той е проектиран да работи със захранващо напрежение от 3,3 V - 5,0 V, но максималното напрежение за подсветката на дисплея е 3,3 V, така че веригата съдържа три 1N4007 диоди, свързани последователно (D1-D3) чрез захранващата линия на подсветката на дисплея. Благодарение на диодите, напрежението ще падне до 2,7 V и ще бъде напълно достатъчно за захранване на подсветката. Процес на събиране на данни и софтуер Трябва да се отбележи, че авторът е подготвил две версии на фърмуера на микроконтролера. Първоначално за версия 1.00 на логическия анализатор е използвана интегрираната среда за разработка AVR Studio 4.18, но след това авторът прекомпилира изходния код за AVR Studio 5 - версия 1.01. След прекомпилиране за версия 5 на средата за разработка и допълнително тестване на устройството беше забелязано подобрение в стабилността на уловените сигнали. Сигналите се записват във вътрешния буфер на RAM паметта, който е предназначен за 290 проби. Буферът за данни се формира от 870 байта (за версия 1 на програмата на микроконтролера), от които 2 байта се използват за брояч и 1 байт за информиране за входния канал. Във версия 1.01 буферът за данни беше намален до 256×3=768 байта, за да се увеличи скоростта на улавяне на данни, т.к. Променливата за размера на буфера е 8-битова, вместо 16-битова, която беше използвана в първата версия на софтуера. След подаване на захранване микроконтролерът преминава в режим на изчакване на импулс на всеки от 4-те входа на устройството. Когато бъде открит входен импулс, микроконтролерът започва да брои времето до пристигането на следващия импулс на някой от 4-те входа. Продължителността на семпла се съхранява в 16-битовата променлива "брояч". След препълване на тази променлива информацията за състоянието на 4-те входа и стойността на брояча се съхраняват в буфер и стойността на адреса му се увеличава с три (2 байта за брояча и 1 байт за информация за входния ред). Този процес се повтаря, докато микроконтролерът запълни целия буфер (870/3=290 проби или импулси). Процесът на запис на сигнали в паметта на микроконтролера е показан на Фигура 2. След запълване на буфера всички натрупани данни се показват на LCD дисплея под формата на осцилограма. Потребителят може да контролира формата на вълната - преместете я наляво (бутон S3) или надясно (бутон S4), за да видите цялата запазена импулсна последователност. Ако са записани сигнали с ниска скорост, потребителят може да промени мащаба с 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 или 8192 чрез натискане на бутона S2. Когато програмирате микроконтролера, трябва да зададете битовете Fuse в съответствие с фигурата. Тип печатна платка и разположение на компонентите

1. Въведение:

Този логически анализ Аторът е предназначен за запис, издаване и анализ на различни последователности от импулси и последователни протоколи със зададен период. Взет за хардуерамултипрограматор на FT232

2. Кратко описание

Анализаторът има 7 входно/изходни канала, които се свързват към различни изследвани устройства по преценка на потребителя.

Канали 1-5 съответстват на вход/изход. Тези канали могат да бъдат изходни или входни в зависимост от настройката на канала. Канал 5 не е насочен към никакъв конектор, но има контактна площадка на платката.

Канал 6 – само вход. Този канал се използва във връзка с канал 1 и служи за симулиране на двупосочен вход/изход, например, както в I2C шината, т.е. посоката на предаване на канала се променя, когато протоколът работи. Изходните данни отиват към изход 3, а входните данни преминават през канал 6. Вижте „Внедряване на I2C протокол“ за повече подробности.

Канал 7 е само изходящ. Този канал на програматора е реализиран като мощен 12V изход. Например, използван е като захранване за подсветка при работа с дисплея на Nokia 6100 (вижте примери за използване)

От лявата страна на работния прозорец на програмата има настройки за портовете на анализатора - това са:

  • скорост на предаване (BoudRate)
  • инверсия на канала (маркирайте „Н.Е.Г."
  • посока на пристанището (ВХОД/ИЗХОД)
  • размер на изходния масив (разрешен е размер до 65kbit)

В централната част на прозореца на програмата има графичен дисплей за състоянието на каналите под формата на времева диаграма. А в долната част на полето има допълнителна информация, която показва нюансите при използване на различните избрани режими на анализатора.

От дясната страна на програмното поле има контроли за симулираните протоколи. На разположение:

  • падащо меню за избор на протокол
  • 7 падащи менюта (на канал): изберете присвояване на канал и протоколен сигнал
  • инверсия на данните на протокола (да не се бърка с инверсия на порта)
  • прозорец за въвеждане на данни (за задаване на цифровата последователност на протокола)

3. Управление ивъвеждане на данни.

Кликнете с левия бутон на мишкатанастройва курсора на това място в панела с форма на вълната, без да променя състоянието на този бит.

Кликнете с десния бутонна панела с форма на вълната, поставя курсора на това място и променя състоянието на бита на това място.

Освен да въвеждате данни с мишката, можете да ги въвеждате от клавиатурата. След натискане на клавиша “0” или “1” на мястото на курсора се въвежда съответно 0 или 1 Също така за удобство функцията на бутона “0” се дублира на бутона “2”, т.е. при натискане на клавиша “2” се въвежда 0.

Въвеждане на данни в масив(само за протокол). Последователността на протокола може да бъде въведена в десетичен (1 34 987), двоичен (0b100 0b101010 0b1111111111111) и шестнадесетичен (0xFA 0x 12C 0x 1a 2cb). Данните се въвеждат разделени с интервали.Също така е възможно да се смесват формати на данни (123 0b1010 0x12aB).

Данните се въвеждат, последвани от нарастване на адреса. При достигане на границата на масива размерът му ще се увеличи. Максимален размер на масива от данни – 65 kbit

Въвеждане на данни по файл.За да въведете данни по файл, трябва да създадете файл с произволно разширение, например txt. Безплатен формат.

Можете да разделяте числата във файл с точка, запетая или интервал. Обясненията във файла са разделени с точка и запетая “;”.

Примерно съдържание на файла:

123 343, 234 ; тук са обясненията след точка и запетая

0x12F, 0b10101010; и така нататък.

Драйвер за анализатора.

Анализаторът използва специални функции на FT232R, за които трябва да инсталирате специалния драйвер FTD 2XX. Инсталирането на обикновен COM порт не е подходящо.Препоръчително е да вземете драйвера от производителя - напр.

4. Свързване на анализатора:

Външният вид на анализатора е показан на фигура 2.

J 1– захранващ джъмпер (Vcc). Има 4 състояния: 1.8V, 3V, 5V и външно захранване

XT1– miniUSB. PC връзка.

XT 2– интерфейсен конектор за свързване на анализатора към изследваното лице. Има 10 контакта:

1 канал 1 (вход/изход)
2 порта за изход на захранване (Vcc) (в зависимост от състоянието на джъмпера за захранване, захранването ще бъде входно или изходно)
3 Cbus 4 не се използва. Но можете да изведете честота 6,12,24 или 48 MHz (за повече подробности вижте „използване на Cbus“)
5 канал 2 (вход/изход)
7 канал 3 (вход/изход)
9 канал 4 (вход/изход)
4,6,8,10 общо

XT3– интерфейсен конектор за свързване на анализатора към изследваното лице. Има 10 контакта

1 изходни портове за захранване (Vcc) (в зависимост от състоянието на захранващия джъмпер захранването ще бъде входно или изходно).
3 канал 3 (вход/изход)
5 канал 4 (вход/изход)
7 канал 6 (само вход)
9 канал 7 изход 12V сигнал!!!
2,4,6,8,10 общо

J2– джъмпер за 2 позиции. Променя функцията на канал 6.

позиция 1-2 променя канал 6 от Vcc на 12V
позиция 2-3 променя канал 6 от 0V на 12V
позиция 1-2 се използва в програмиста за генериране на MCLR сигнал при мигане на PIC контролери.

Канали 1-5 са входове по подразбиране и са в трето състояние (състояние Z). Когато даден канал е настроен да извежда, той ще се извежда само по време на предаване.

Всеки канал има резистори за ограничаване на тока 300 ома.

Канал 6 винаги е изход. Състоянието по подразбиране е „0“.

5. Използване на Cbus сигнала (XT2 конектор пин 3)

Този сигнал не се показва в анализатора, защото е не е синхроненс изходни сигнали и е с честота по-висока от изходните импулси. Не е активирано по подразбиране.

Честоти от 6, 12, 24 и 48 MHz могат да бъдат изведени към този щифт. Това се прави с помощта на специална помощна програма MProg, която можете да вземете

6. Кратко описание какво да направите, за да изпратите честота на Cbus:

  1. инсталирайте помощната програма Mprog.
  2. изберете търсене на устройство, като щракнете върху лупата или в менюто Устройство->Сканиране, след което помощната програма намира устройството и показва неговия PID и т.н.
  3. изберете функцията Четене и анализиране в раздела Инструмент, тоест четем текущи настройкии покажете този въпрос на дисплея.
  4. отворете отметката FT 232 R (ако не се е отворил сам), след което се отварят 2 полета.Обърнете rs 232 signzl (това не ни засяга, тъй като програмата на анализатора управлява тези сигнали по свой начин) и полето I/O контроли.
    Полето I/O Controls има 4 подменюта C1-C4.
  5. изберете меню C4. Това е, което е допълнителни функции Cbus4 сигнал. От всички предложени функции се интересуваме от CLK6, CLK12, CLK24 и CLK48. Всичко трябва да е ясно от имената на функциитеДж . Останалите функции нямат ефект (по-точно, когато ги избирате, не е възможно да се предвиди състоянието на този щифт), тъй като те са предназначени да работят в режим на COM порт.
  6. За да може FT232R да използва избраната функция, трябва да запазите проекта (без това няма да работи), така е написана тази помощна програма.
  7. След като запазите проекта на диск, можете да препрограмирате нашия FT232R. Бутонът за мълния е активиран. След като го натиснетеМ prog ще запише нашите настройки в чипа.

7. Как да опишете и използвате свой собствен протокол

За да създадете описание на протокола, ще трябва да напишете свой собствен INI файл. Препоръчвам да копирате един от съществуващите файлове и да го промените. Да вземем за пример файла SPI_9BIT. Обясненията в тези файлове трябва да бъдат посочени на отделни редове!!!

;Заглавието на настройките в този раздел на файла определя специфични настройки на протокола:


;брой редове в протокола. В този има 4 от тях
num_lin = 4
;по-долу редовете са изброени по номера и са посочени имената им
lin1 = MOSI
lin2 = MISO
lin3 = SCK
lin4 = SS
;брой предадени битове
битове = 18
;добавете. информация, тя ще се покаже в прозореца с допълнителна информация.
предупреждение = канал 6 е свързан с канал 1 в хардуера. Скоростта на предаване се дели на 2, тъй като часовникът се предава в 2 тактови цикъла
;заглавка на протокола. Последователностите, използвани в протокола, ще бъдат описани по-долу.


SS = N N N N N N N N N N N N N N N N N N N N
SCK = N O N O N O N O N O N O N O N O N O
MOSI = 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8
MISO = N N N N N N N N N N N N N N N N N N N

В този раздел номерът на бита 0 1 2 14 34 и т.н. е посочен като предавани битове. Като предавано 1, напишете O (от английски One), като предавано 0, напишете N (т.е. Null).

ВАЖНО: Когато описвате протокол, може да има разлика в броя на битовете, посочени в num_lin, и тези, описани в раздела за протокола.

След като коригирате или напишете INI файла, трябва да добавите запис към файла protocol.lst. така че програмата да може да намери и използва новия протокол.

8. Пример за използване на анализатора за анализ на I2C шината

Първо, свързваме анализатора към I2C шината (тестваното устройство е нунчук джойстик от конзолата Wii), не са необходими външни елементи. Диаграмата на връзката е показана на фигура 3. Не виждам смисъл да описвам протокола. Това е написано подробно в интернет.

Както се вижда от диаграмата, за реализация се използват 3 канала (канали 1,4,5), а I2C протоколът е двупроводен. Долната линия е, че анализаторът няма възможност да променя посоката на шината по време на предаване на сигнала, така че разделянето на входния и изходния сигнал се извършва на транзистор (виж диаграмата). По този начин канал 1 е изходът: той извежда данни в I2C. И канал 5 е входен: той получава данни чрез I2C.

За да конфигурирате, изберете „I2C“ в менюто за избор на интерфейс и поставете следните квадратчета и бутони:

Канал 1 NEG (инверсен изход) OUTSDA _OUT изходни данни

Канал 4 OUTSCL часовников сигнал

Канал 5 IN SDA _IN входни данни

9. Пример за използване на анализатор за анализ на шинаSPI (9малко)

Този пример демонстрира имитация на серийния протокол за управление на дисплея от Nokia6100. Схемата за свързване на дисплея към анализатора е показана на фигура 4. От външните елементи е необходим само токоограничаващ резистор за подсветка на дисплея. Особеност е, че SPI предаването не е 8 бита, както обикновено, а 9.

За да работи този протокол, в анализатора е създаден отделен 9-битов SPI.

Конфигуриране на анализатора и протоколните сигнали.

За да конфигурирате, изберете „SPI _9BIT“ в менюто за избор на интерфейс и поставете следните квадратчета и бутони:

Канал 1 OUT ще регистрира този сигнал ръчно. Не е в протокола

Канал 2 OUT SS; сигнал за избор на чип

Канал 3 OUT SCK;протоколен часовник

Канал 4 OUT MOSI; сигнал за данни

Тъй като нямаме получени данни, всички сигнали са конфигурирани като изход и не се използва сигнал на MISO протокол.

Също така е необходимо да поставите джъмпера за захранване на позиция 3,3 V, тъй като устройството ще се захранва от анализатора.

Логическият анализатор е незаменим помощник при отстраняване на грешки в цифрови схеми. Нека да разгледаме основните техники за работа с логическия анализатор Saleae и неговите китайски аналози.

За работа ще ни трябва:

  • свързващи проводници (препоръчвам този комплект);
  • макет.

1 Спецификации на логическия анализаторЛогически анализатор Saleae

Логическият анализатор е инструмент за синхронизиращ анализ на цифрови сигнали. Това е незаменим, наистина незаменим инструмент при отстраняване на грешки в цифрова електроника. Оригинални анализатори от реномирани производители на цена големи пари. Можете да закупите такова устройство от нашите китайски приятели за стотинки. Ето защо, ако все още го нямате, не забравяйте да го купите. Характеристики на това малко устройстводоста впечатляващо.

В таблицата са изброени основните параметри на логическия анализатор, моето китайско копие на анализатора на компанията Saleae.

2 Инсталиране на драйвериза логически анализатор Saleae

За щастие, за този логически анализатор - китайско копие - драйверът от оригинала е подходящ. Отидете на официалния уебсайт, изтеглете програмата за вашия операционна системаи го инсталирайте. Драйверите ще бъдат инсталирани заедно с програмата. Между другото, преглед на възможностите на програмата под формата на инструкции за английски езикприложен в края на тази статия.

Ако имате копие на друга компания, например USBee AX Pro, тогава с голяма степен на вероятност драйверите от производителя на оригиналния анализатор също ще бъдат подходящи за него.

3 Примери за работас логически анализатор

За първия експеримент нека вземем USB-UART конвертор на чипа FTD1232. Нека свържем анализатора към USB порт. Свързваме щифтовете на канали от 1 до 6 към щифтовете на USB-UART конвертора. Като цяло най-много ни интересуват само две линии - Rx и Tx, можем да минем само с тях. Конверторът се идентифицира в системата като COM порт. Нека стартираме всеки терминал (тук например е добра програма за работа с COM порт) и се свържете с порта.


Свързване на USB-UART конвертор на чипа FTD1232 към логически анализатор

Стартирайте програмата Saleae Logic. Ако драйверите за анализатора са инсталирани правилно, заглавието на програмата ще покаже Свързан- свързан. Да кажем, че не знаем на кой канал ще има сигнал и на кой не, така че няма да зададем тригер, за да започнем да улавяме сигнала. Просто кликнете върху стрелките на големия зелен бутон Започнете(Старт) и го поставете в полето Продължителност(Продължителност) да речем 10 секунди. Това е времето, през което логическият анализатор ще събира данни, идващи от всичките 8 канала след натискане на бутона "Старт". Стартираме заснемането и едновременно с това изпращаме съобщение до COM порта. След 10 секунди анализаторът ще приключи със събирането на данни и ще покаже резултата в полето за преглед на сигнала. В този случай сигналът ще бъде само на един канал, който е свързан към щифта Tx (предавател) на USB-UART конвертора.


За по-голяма яснота можете да конфигурирате декодерприхванати данни. За да направите това, в дясната колона намираме полето Анализатори, щракнете върху иконата плюс - „Добавяне“, посочете типа - Асинхронен сериен. Ще се появи прозорец с молба да изберете настройки. В първото поле въведете номера на канала, за който имате данни. Нека оставим останалото както е. След натискане на бутона Запазване(Запазване), ще се появят сини маркировки над съответното поле на канала, показващо стойностите на байтовете, които са били прихванати. Като щракнете върху зъбното колело в този декодер, можете да зададете режима на показване на стойностите - ASCII, HEX, BIN или DEC. Ако сте изпратили низ към COM порта, изберете ASCII режим и ще видите текста, който сте изпратили до порта.


Точно там, в дясната колона на програмата Saleae Logic, можете да добавяте отметки към прихванатите данни, да измервате закъснения и времетраене, да задавате всякакви маркери и дори да търсите в данни за декодирани протоколи.

Нека свържем логическия анализатор към USB-RS485 конвертора по същия начин. Има само две линии за данни, така че можете да зададете тригер, който да задейства на ръба на всеки от каналите: сигналът в протокола RS-485 е диференциален и фронтовете на импулса се появяват едновременно на всеки от каналите, но в противофаза.


Щракнете върху бутона "Старт" в програмата за анализатор. Използвайки нашия терминал, ще се свържем с USB-RS485 конвертора и ще прехвърлим някои данни. Когато тригерът се задейства, програмата ще започне да събира данни и след приключване ще ги покаже на екрана.


Saleae Logic ви позволява да експортирате запазени данни под формата на изображения и текстови данни, да запазвате програмни настройки, анотации и декодери на канали.

Последният пример в това малък преглед- заснет кадър от данни, предаван чрез серийния SPI протокол. Канал 2 показва сигнала за избор на подчинен, канал 0 показва тактовите импулси, а канал 1 показва действителните данни от главния към подчинения.


заключения

Логическият анализатор може да бъде много полезен при разработване и конфигуриране на всякакви електронни устройства, при писане софтуер, работейки във връзка с хардуера, когато работите с микроконтролери, FPGA и микропроцесори, за анализиране на работата различни устройстваи протоколи за обмен на данни, както и за много други приложения. Освен това е преносим и не изисква отделно захранване.

Изтеглете инструкции за използване на програмата за логическия анализатор Saleae

  • Изтеглете инструкции за използване на програмата за логическия анализатор Saleae от Depositfiles.com
  • Изтеглете инструкции за използване на програмата за логическия анализатор Saleae от File-upload.com
  • Изтеглете инструкции за използване на програмата за логическия анализатор Saleae от Up-4ever.com
  • Изтеглете инструкции за използване на програмата за логическия анализатор Saleae от Hitfile.com

Публикации по темата