Що таке JTAG-програматор? Чому вибирають саме програматор JTAG

-Що вони хочуть?

-«Ку» вони хочуть...

(Кін-цза-цза)

Отже, є попит – зробити нескладний (щодо, звичайно) внутрішньосхемний емулятор для AVR. На цей попит є пропозиція.

AVR Studio підтримує JTAG ICE, вміє зашивати до нього оновлення firmware. Цим ми й скористаємося. Звичайно, на коліні зібрати цей пристрій важко, досить багато деталей, але якщо Ви збираєтеся писати програми складніше, ніж Hello Word, то внутрішньосхемник швидко стає предметом першої необхідності.

Підтримувані пристрої.

ATmega16(L), ATmega162(L), ATmega169(L або V), ATmega32(L), ATmega323(L), ​​ATmega64(L), ATmega128(L).

У міру виходу нових версій firmware цей перелік розширюється. Перевірити його можна на сайті www.atmel.com.

Можливості

  • Повністю сумісний з AVR Studio
  • Підтримує всі пристрої AVR з інтерфейсом JTAG
  • Емулює всі цифрові та аналогові функції, реалізовані на кристалі
  • Точки зупинки, у тому числі щодо зміни значення змінних
  • Точки зупинки в пам'яті програм та даних
  • Інтерфейс програматора для flash, eeprom, fuses and lock-bits.
  • USB інтерфейс із комп'ютером (віртуальний COM-порт)
  • Живлення пристрою JTAG ICE від USB
  • Напруга живлення пристрою, що налагоджується, від 1.8 до 6 вольт

Підключення до пристрою, що налагоджується

Висновки AVR, що використовуються для JTAG інтерфейсу, можуть бути використані у схемі як висновки загального призначення. Слід передбачати можливість підключення емулятора, тобто. виключити можливі конфлікти обладнання «вихід на вихід» та враховувати ці особливості конкретної реалізації схеми при налагодженні програми.

Це схема підключення кабелю відладчика до пристрою. SRST можна і не використовувати.

Connecting JTAG ICE до STK500 з ATmega323 або ATmega16

Індикація

На пристрої стоять аж п'ять світлодіодів. Призначення їх таке:

  • VD1, VD2 – індикація обміну з PC
  • VD3 - індикація живлення пристрою, що налагоджується
  • VD4 - живлення JTAG ICE з USB порту
  • VD5 - обмін із пристроєм через JTAG

Реалізація.

Схема, друкована плата, прошивка для U1 – наводяться у додатку. Формат – як завжди, PCAD-2002 ASCII. Є функціональна відмінність від фірмової реалізації - запроваджено перетворювач USB->COM. Взагалі документація не рекомендує такого підключення, але я його користував кілька років, і не бачив додаткових глюків, крім звичайних. AT90S2313 (U1) вже знята з виробництва, але її можна замінити AtTiny2313, не забувши запрограмувати потрібні фузи, щоб забезпечити сумісність. Власне, вона потрібна тільки для програмування D2 (AtMega16), як це зробити – читайте HELP на AVR Studio, розділ JTAG ICE Manual Firmware Upgrade. Можливо, при програмуванні U1 виникнуть проблеми, тоді варто замкнути на землю вхід RESET D2, а може і від'єднати його висновок MISO, щоб не заважав. У будь-якому випадку це одноразовий захід.

Висновок.

Отже, збираємо плату, програмуємо U1 програматором через роз'єм XP1, потім підключаємо все це до USB, ставимо драйвера від FTDIchip (викачуємо останні драйвера віртуального COM-порту з www.ftdichip.com). Програмуємо D2. Підключаємо все це неподобство до пристрою, що налагоджується. Радіємо, радіємо, плюємо у бік недоброзичливців.

Всім пацакам вдягнути намордники! І радіти!

(Кін-цза-цза)


Принципова схема внутрішньосхемного емулятора JTAG ICE

Розміщення елементів на друкованій платі емулятора

Плата друкована - вид з боку компонентів (Comp)

Плата друкована - вид з боку паяння (Solder)

При розробці та налагодженні програм під мікроконтролери виникають питання, пов'язані з програмуванням та налагодженням програми в реальній схемі. Якщо з програмуванням мікроконтролерів AVR особливих проблем не виникає, оскільки існує безліч схем для «заливання» прошивки в кристал, однією з найпростіших таких схем є схема, що отримала назву «п'ять проводів», то з налагодженням програми такого багатого вибору не існує.

Для налагодження програми можливе використання лише двох варіантів – це програмний симулятор та внутрішньосхемний JTAG емулятор-програматор. Програмний симулятор, як правило, не може враховувати всі особливості роботи схеми, таких як зовнішні впливи, спільна робота з іншими пристроями та інше. З апаратними програматорами-відладчиками JTAG з'являється можливість покрокового налагодження програми безпосередньо в самому мікроконтролері встановленому безпосередньо в схему, перегляду та зміни всіх регістрів мікроконтролера, установка breakpoints і звичайно внутрішньосхемного програмування мікроконтролера. Але вартість оригінального AVR JTAG ICE MkII Atmel коливається в районі 300 євро, а його аналога AVRDRAGONщо випускається серійно близько 3000руб., що є дуже дорогим для людей, які займаються створенням пристроїв на мікроконтролерах AVR «для себе».
Але на щастя вдалося створити клон, оригінального AVR JTAG ICE, який коштує істотно дешевше за оригінал і дозволяє проводити програмування та налагодження мікроконтролерів AVR з інтерфейсом JTAG.

Рис 1. Принципова електрична схема клону AVR JTAG ICE

Принципова електрична схема наведено на рис. 1. Основою даного JTAG є мікроконтролер DD3 AVR ATMega16. Мікросхема DD2 MAX232 виконує роль перетворювача інтерфейсу RS232 у ТТЛ рівні UART. Мікросхема DD1 призначена для захисту вхідних та вихідних ланцюгів мікроконтролера DD3 та узгодження напруги логічних рівнів при використанні зовнішнього живлення.

Живлення JTAG може братися від ланцюгів живлення пристрою, що налагоджується через четвертий контакт vTref XP3, а також може використовуватися зовнішнє через роз'єм XP1 і ХР2. Зовнішня напруга може бути в діапазоні від 7 до 15В. При використанні зовнішнього джерела живлення, вивод vTref гнізда XP3можна не підключати.
Світлодіод HL2 відображає наявність живлення, HL1 режим роботи JTAG.

Підключення JTAG до мікроконтролера, що налагоджується, здійснюється через стандартний десяти вивідний роз'єм. Схема підключення якого зображена на рис. 2.


Рис 2. Схема підключення AVR JTAG ICE до пристрою, що налагоджується.

Існує кілька варіантів BootLoader завантажувачів для прошивки JTAG, але, на мій погляд, найбільш вдалий варіант вийшов у Кротевич Віталія (Vit). Його завантажувач найближче повторює фірмовий і дозволяє оновлювати мікропрограму JTAG безпосередньо з AVRStudio без перезавантаження JTAG та входу в режим програмування через BootStart. Якщо не планується проводити оновлення прошивки JTAG`a, то завантажувач можна не прошивати, а «зашити» тільки оригінальну прошивку від .

Щоб "зашити" bootloader в JTAG можна скористатися програматором AVReal, PonyProg, STK200, "п'ять проводів", будь-яким іншим наявним і сумісним з AVR ISP. Підключення програматора здійснюється до ISP роз'єму програмування ХР4. Файл прошивки JTAG_ICE.hex.

Приклад програмування ф'юзів показаний малюнку 3.


Рис 3. Установка ф'юзів для AVR JTAG ICE

Приклад роботи AVR JTAG ICE показаний на малюнку 4. Як приклад зроблено зчитування сигнатури ATMega128


Рис 4. Читання сигнатури мікроконтролера ATMega128 за допомогою AVR JTAG ICE


Рис 5. Зображення верхнього шару трасування друкованої плати з нанесеними елементами


Рис 6. Зображення нижнього шару трасування друкованої плати з нанесеними елементами

Фотографії готового пристрою:

P.S. Схема та трасування друкованої плати розроблено автором статті, завантажувач використаний Кротевич Віталія (ака Vit), прошивка від оригінальної AVRStudio.

При написанні статті використовувалися такі джерела:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Офіційний посібник користувача AVR JTAG ICE JTAGuserguide.pdf

Завантажити прошивку, файли друкованої плати ви можете нижче

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
DD1 ІС буфера, драйвера

CD74AC244

1 До блокноту
DD2 ІС RS-232 інтерфейсу

MAX232

1 ST232BD До блокноту
DD3 МК AVR 8-біт

ATmega16

1 ATmega16-16PI До блокноту
DA1 Лінійний регулятор

LM78L05

1 До блокноту
VD1, VD2 Випрямний діод

SM4007PL

2 До блокноту
VD3 Стабілітрон

BZX55C5V1

1 SMBJ5.0A До блокноту
VD4, VD5 Діод Шоттки

SM5819PL

2 До блокноту
HL1, HL2 СвітлодіодКР-3216-22 До блокноту
C1, C2, C4-C6, C9-C13, C16 Конденсатор0.1 мкФ10 До блокноту
C3 1 До блокноту
C7 Електролітичний конденсатор470 мкФ 10 В1 Танталовий До блокноту
C8 Конденсатор1200 пФ1 До блокноту
C14, C15 Конденсатор22 пФ2 До блокноту
R1 Резистор

36 ком

1 До блокноту
R2 Резистор

150 ком

1 До блокноту
R3-R6 Резистор

10 ком

4 До блокноту
R4, R10 Резистор

4.7 ком

2 До блокноту
R9, R11-R15 Резистор

200 Ом

7 До блокноту
R16 Резистор
  • Офіційний програматор, що випускається фірмою Atmel, коштує приблизно 300 євро(без доставки та розмитнення). Варіант дешевше — можна знайти неофіційні клони за ціною приблизно $150 .
  • Варіант набагато дешевше, але вимагає зусиль, т.к. із розряду «зроби сам»:
    в мережі через пошукову систему ( clone AVR-JTAGICE mkII) без проблем можна знайти схему з прошивкою програматора, що супроводжуються інструкцією зі складання.

Характеристики програматора

  • Повна підтримка JTAG програмування підтримує також інтерфейси ISP і DebugWire.
  • Підключення до PC здійснюється за допомогою USB 1.1 або RS-232 інтерфейсу
  • Точки зупинки за адресами пам'яті програм та пам'яті даних
  • Усі операції та точки зупинки виконуються в режимі реального часу
  • Напруга подається в схему, що налагоджується 1.8-5.5 В
  • Напруга зовнішнього джерела живлення 9-12В, так само відладчик може живитися від USB порту

Програматор AVR-JTAGICE3

Офіційний програматор для мікроконтролерів фірми Atmel сімейства AVR, що підтримують інтерфейс для налагодження та програмування JTAG.

Думаю для налагодження AVR мікроконтролерів у середовищі AVR Studio 5 є найкращим вибором. До речі, неофіційних клонів не зміг знайти. Якщо хтось знає, прошу повідомити в коментарях до сторінки.

На початку експлуатації я відчував деякі труднощі з його використанням - здавалося, що він страшно глючить, при цьому доводилося постійно перезавантажувати середовище AVR Studio, щоб він «ожив».

У принципі, все виявилося просто — не варто під час запущеного налагодження намагатися робити будь-які інші дії з програматором, наприклад викликати вікно з налаштуванням ф'юзів. Згодом я до нього пристосувався і без проблем його використовую.

З переваг виокремлюю його малі габарити (порівняно з його попередником AVR-JTAGICE mkII) та універсальність — крім інтерфейсу JTAG також доступні і aWire, SPI та PDI.

Зі складнощів — його вартість. Вважаю, що вона досить пристойна – близько 15000 рублів через офіційних дилерів у Росії.

Характеристики програматора:

  • Підтримка інтерфейсів JTAG, aWire, SPI та PDI
  • 3 апаратні точки зупинки і 1 маскувана
  • Символьне налагодження складних типів даних
  • До 128 програмних точок зупинки
  • Підтримка мікросхем із напругою живлення від 1.8 до 5.5В
  • Висока швидкість роботи (завантаження 256KB програми ~14 сек. (XMEGA за інтерфейсом JTAG) interface)
  • Живлення від USB.

Програматор AVR-JTAG-USB

Застосовується цей програматор для мікроконтролерів фірми Atmel сімейства AVR, що підтримують інтерфейс для налагодження та програмування JTAG. Цей програматор є клоном оригінального Atmel'євського програматора. Виробляє його фірма Olimex і відрізняється він від офіційного вигіднішою ціною (приблизно 4000 рублів через офіційних дилерів у Росії, і природно, можна дешевше безпосередньо з-за бугра), при цьому за функціональністю цілком надійний і під час роботи з ним нарікань у мене не виникало. Працює та живиться від USB порту комп'ютера.

Єдина особливістю на яку варто звернути заздалегідь - це те, що при використанні в якості засобу розробки AVR Studio працюватиме тільки під AVR Studio 4. Якщо ви збираєтеся працювати на AVR Studio 5, то він для налагодження абсолютно некорисний, тому що це не так. не підтримується. Тому для п'ятої версії я купив інший програматор AVR-JTAGICE3.

Характеристики програматора

  • Програмування всіх AVR мікроконтролерів із підтримкою JTAG інтерфейсу;
  • Цільова напруга 3,0 - 5,0В;
  • Живлення від USB інтерфейсу;
  • JTAG конектор сумісний з Atmel 2×5 пін конектором JTAG;
  • Сумісний з Atmel AVR STUDIO для програмування, емуляції в режимі реального часу, налагодження, виконання програми в покроковому режимі, встановлення точок зупинки, дампа пам'яті і т.д.;
  • Повна емуляція всіх аналогових та цифрових функцій;
  • Повна підтримка програмування через порт JTAG;
  • Оновлення через AVR STUDIO;
  • Роз'єм USB інтерфейсу – типу "А".

Комплектація: програматор/емулятор AVR-JTAG-USB.
Для роботи може знадобитися USB кабель "А-А" - SCUAA-1

1 Опис

AVR JTAG є інструментом для налагодження пристроїв, виконаних на основі мікроконтролерів сімейства AVR фірми Atmel. AVR JTAG є повним аналогом AVR JTAG ICE фірми Atmel. Для отримання додаткових відомостей про роботу AVR Studio з AVR JTAG можна використовувати документацію від Atmel.

Для роботи з AVR JTAG використовується програма AVR Studio від Atmel. AVR JTAG підтримує всі мікроконтролери сімейства, що мають інтерфейс JTAG:

    ATmega16;
    ATmega162;
    ATmega169;
    ATmega32;
    ATMega323;
    ATMega64;
    ATmega128.

Підтримка нових пристроїв здійснюється за рахунок оновлення вбудованого програмного забезпечення AVR JTAG, яке поставляється у складі AVR Studio.

Малюнок 1 Розташування з'єднувачів та індикаторів на платі AVR JTAG

Комплект постачання

У комплект поставки AVR JTAG входять:

  • плата AVR JTAG;
  • мережеве джерело живлення;
  • кабель для підключення AVR JTAG до комп'ютера;
  • кабель для підключення AVR JTAG до пристрою, що налагоджується;
  • компакт-диск з ПЗ та довідковою інформацією.

Малюнок 2 Зовнішній вигляд плати

Підключення

Щоб програма AVR Studio могла автоматично виявити AVR JTAG, необхідно під'єднати AVR JTAG до комп'ютера, пристрою, що налагоджується, і подати живлення на AVR JTAG і пристрій до запуску AVR Studio.

Підключення до комп'ютера

AVR JTAG підключається до стандартного COM порту комп'ютера. Для підключення використовується 9-ти контактний "прямий" кабель (входить до комплекту постачання).

При запуску AVR Studio автоматично шукає пристрої, що підтримуються ним, звертаючись по порядку до всіх COM портів комп'ютера. Пошук припиниться, як тільки знайдено підтримуваний пристрій. Наприклад, якщо до COM1 підключений AVR Prog, а COM2 AVR JTAG, то AVR Studio виявить тільки AVR Prog. Тому при запуску AVR Studio переконайтеся, що інші підтримувані ним пристрої відключені або після запуску AVR Studio вручну задайте порт, до якого підключено AVR JTAG.

Якщо порт COM, до якого підключений AVR JTAG, використовується іншими програмами (наприклад, терміналом), то AVR Studio не зможе виявити AVR JTAG. Завершіть ці програми перед запуском AVR Studio.

Підключення до пристрою, що налагоджується

Для підключення до пристрою, що налагоджується, використовуються 6 ліній: TCK, TDO, TDI, TMS, VTref і GND, підключення цих ліній необхідне для правильної роботи AVR JTAG з налагоджуваним пристроєм.

Додатково до пристрою, що налагоджується, може бути підключена лінія nSRST (використовується для управління і спостереження за лінією скидання мікроконтролера). Використання цього сигналу не є необхідним для налагодження, однак, якщо програма мікроконтролера встановить біт JTD в регістрі MCUCSR, то інтерфейс JTAG буде вимкнений і для його включення потрібно, щоб AVR JTAG міг керувати лінією скидання мікроконтролера.


Рисунок 3 Підключення AVR JTAG до пристрою, що налагоджується

Підключення живлення

AVR JTAG отримує живлення від зовнішнього джерела живлення (входить до комплекту) постійного або змінного струму. Для підключення джерела до AVR JTAG використовується гніздо під штекер 2.5 мм. Полярність джерела постійного струму не має значення.

Для того щоб AVR Studio виявило AVR JTAG необхідно, щоб живлення AVR JTAG і пристрою, що налагоджується, було включено до початку налагодження (кнопкою Start Debugging AVR Studio).

  1. увімкніть живлення пристрою, що налагоджується;
  2. увімкніть живлення AVR JTAG;
  3. запустіть AVR Studio.

Оновлення ПЗ

Оновлення вбудованого програмного забезпечення AVR JTAG може бути проведене або автоматично, або вручну.

Автоматичне оновлення

Автоматичне оновлення відбувається в тому випадку, якщо AVR Studio виявить, що версія вбудованого ПЗ (firmware), що входить до складу AVR Studio, більша за версію firmware AVR JTAG. У цьому випадку AVR Studio видає відповідне повідомлення та пропонує виконати оновлення firmware. Якщо користувач погоджується виконати оновлення програмного забезпечення, то AVR Studio видає діалог з інструкціями з оновлення програмного забезпечення. Для оновлення програмного забезпечення виконайте такі дії:

  1. натисніть кнопку "Ok" у діалозі AVR Studio;
  2. у діалозі AVR Prog, що з'явився, натисніть кнопку "Program";

Оновлення програмного забезпечення AVR JTAG завершено.

Ручне оновлення

Ручне оновлення програмного забезпечення AVR JTAG може виявитися необхідним, якщо автоматичне оновлення програмного забезпечення було перервано з будь-яких причин (збій живлення тощо). У цьому випадку AVR Studio не зможе виявити AVR JTAG, з'ясувати версію ПЗ і почати автоматичне оновлення ПЗ.

Щоб виконати ручне оновлення:

  1. вимкніть живлення AVR JTAG;
  2. зніміть перемичку на платі AVR JTAG;
  3. увімкніть живлення AVR JTAG;
  4. запустіть програму AVR Prog;
  5. виберіть для програмування файл з розширенням.EBN із папки JTAGICE, що знаходиться в папці, в яку встановлено AVR Studio;
  6. натисніть кнопку "Program";
  7. після завершення прошивки firmware закрийте вікно AVR Prog;
  8. встановіть перемичку на платі AVR JTAG;
  9. вимкніть та увімкніть живлення AVR JTAG.

ручне оновлення AVR JTAG завершено.

Існує досить багато конфігурацій різних програматорів, які дозволяють переписати програмні напрацювання в мікроконтролер. Вони можуть бути різними, розрахованими на професіоналів чи, навпаки, мати спрощений інтерфейс. До останніх програматорів належить і герой цієї статті. Ви дізнаєтеся не тільки, що він є, але і як зробити програматор JTAG своїми руками. Ви знайдете схеми та фотографії, як має виглядати результат.

Чим є JTAG-програматор?

Він є спрощеним варіантом професійного AVR JTAG ICE, який, як можна здогадатися за його назвою, призначений для програмування мікроконтролерів сімейства AVR. Його головна відмінність у тому, що зібрати його може навіть непрофесіонал, і кінцева вартість буде значно нижчою, ніж при покупці заводського. По суті, представлений у статті механізм – китайська репліка, тому цей програматор AVR ще можна купити. Тому не кривлячи душею можна сказати, що існує ще й варіант покупки. Але складання своїми руками дозволить уникнути можливих негативних наслідків внаслідок дешевизни та низької якості деталей, що купуються при виробництві.

Чому вибирають програматор JTAG?

Головне - його низька вартість та легкість у складанні. JTAG-програматор може програмувати всі пристрої, що мають інтерфейс JTAG. Для роботи через комп'ютер необхідне середовище розробки AVR Studio 4 або більше версій. З ними цей програматор AVR зможе працювати.

Недоліки програматора

Останні версії сімейств мікроконтролерів, без додаткової роботи, не програмуються. Також існують значні проблеми з тими представниками, у яких менше 40 ніг та 16 Кб пам'яті. Як можна побачити, коло потенційних клієнтів досить обмежене. Але кілька популярних моделей якраз підпадають під нього, так що він стане в нагоді.

Схема

Схема програматора проста, для роботи необхідна ATMega16 і трохи додаткової електроніки. Як інтерфейс може бути використано MAX232 (для роботи з COM) та FT232RL (для роботи з USB). Варто зазначити, що під час використання другого варіанта підключати живлення через USB не рекомендують. У таких випадках через помилку або недогляд можуть отримати напругу захисні діоди, і на висновках FT232RL буде Це може призвести до виходу з ладу або програматора, або об'єкта програмування. Вирішується цей аспект подачею харчування через плату.

Для більшої простоти тим, хто не має достатньої кваліфікації, програматор розрахований на MAX232, але для іншого варіанта потрібно встановити інший роз'єм.

Налаштування

Враховуючи, що є необхідні схеми, слід лише витравити плату. Далі все акуратно приєднується, припаюється на місця, і перевіряється робота програматора шляхом прошивки завантажувача. Потім з AVR Studio оновити прошивку для JTAG-програматора до останньої версії або доти, поки треба. До адаптера підключається програматор. Якщо він працює – значить можна переходити до наступного розділу, в якому змальовані нюанси роботи та програмування. Слід врахувати, що всі необхідні дроти є, вони лише розташовані нестандартно.

Як підготовку до роботи слід виставити Fuse біти. Вони залежать від нотації, в якій виконується робота. Для кращого розуміння представляємо таку таблицю:

Пряма нотація (Даташит, UniProf)

Інверсна нотація (AVR DUDE GUI, PonyProg)

А як зрозуміти яку вибрати? Відповідь на запитання проста: слід підключитися до мікроконтролера і почати читати ці біти. Зверніть увагу на SPIEN - якщо є галочка навпроти нього, це означає, що нотація інверсна. Якщо її немає – значить, вона пряма. Якщо все було зроблено правильно, то програматор готовий прошивати мікроконтролери. Але якщо він надалі не зможе зробити прошивку - перечитайте і перевірте ще раз.

Робота з програматором

Для більшої тямущості буде наведено приклад програмування миготіння світлодіодів. Спочатку слід запустити студію та створити новий проект. Потім вибрати мову програмування (в даному випадку асемблер) і задати ім'я проекту. Програма сама зможе визначити, що ви використовуєте програму JTAG. Як платформу слід вибрати його, а в віконці поруч - програмований мікроконтролер. Далі все досить звичайно – слід лише вбити текст для програми. Щоб читачі могли перевірити працездатність, пропонуємо випробувати JTAG-програматор вказаним у статті кодом. Можна побачити, що діоди почали блимати дуже швидко, що не дивно, адже тут не передбачено затримки. Отже, програматор, інструкція його створення та використання є. Вам залишається лише втілити політ своєї фантазії.

Трохи про практику. Для перевірки підключіть до порту А 3 світлодіод. Потім до плати підключається: чотири дроти інтерфейсу (TCK, TDI, TMS, TDO) і 2 силові Vcc йдуть на плюс, а GND підключається до землі. Все, харчування є, можна йти далі. У студії необхідно провести компіляцію коду та його запуск. Проект швидко скомпілюється, відразу прошитиме і почне працювати. Щоб стежити за виконанням, можна натиснути F11, і тоді можна спостерігати, на якому ряду коду зараз програма. Для цього достатньо піднести курсор до ряду, який включає світлодіод, і він спалахне. Існує ще багато експериментів. Пам'ятайте, що для того, щоб щось зробити, необхідно працювати. Нехай просування буде повільним, але згодом ви зможете отримати саме те, що хочете, головне – не опускати руки і продовжувати експериментування з упором на теоретичну базу (без неї ніяк).