Утилиты UART & Logic Tool

К комплекте инструментов 'Tools' находятся весьма полезные утилиты, позволяющие превратить программатор PICkit2 в:

  • терминал обмена данными по UART-протоколу;
  • пробник логических сигналов;
  • трехканальный логический анализатор.

Утилиты

Для чего это нужно?

В режиме 'UART Tool…' к разъёму внутрисхемного программирования ICSP подключаем линии RX и TX отлаживаемого устройства. Затем в окнах управляющей программы задём:

  • произвольную скорость обмена (от 300 до 38400 Бод);
  • несколько строк для передачи по линии TX (до 4-х строк по 60 символов);
  • способ отображения принятых данных (ASCII/HEX);
  • файл записи протокола обмена (Log).

И наблюдаем в окне приема поступающие по линии RX данные!

В режиме 'Logic Tool…/Logic I/O' к разъёму внутрисхемного программирования ICSP подключаем линии ввода/вывода отлаживаемого устройства. Затем в окнах программы:

  • задаём тип линии (ввод или вывод);
  • переключаем логические уровни выводов;
  • наблюдаем логические уровни на входах.

Это особенно полезно на этапе разработки простых интерфейсов ввода/вывода (вместо припаивания к отлаживаемому устройству тестовых кнопок и светодиодов).

В режиме 'Logic Tool…/Analyzer' к разъёму внутрисхемного программирования ICSP можно подключать линии последовательных интерфейсов (например, UART, SPI, I2C). Для начала анализа в окнах программы устанавливаем:

  • частоту записи отсчетов (от 5 кГц до 1 МГц) - Simple Rate;
  • условие начала записи (по уровню/перепаду сигнала) - Trigger;
  • задержку начала записи (предыстория/задержка) - Trigger Position.

Запускаем анализ нажатием 'Run' и наблюдаем результат в окне «виртуального трехканального осциллоскопа»! Пригодится для анализа любых последовательных протоколов обмена.

Начало работы

Для корректной работы примеров в главном окне программы установим величину напряжения питания и выберем его подачу на разъём ICSP от PICkit2.

Установка_питания

Напряжение установленной величины (у нас «5,0В») будем при необходимости включать для питания внешних (малопотребляющих!) устройств.

Напоминание
Максимальный ток, потребляемый внешними цепями, при питании от PICkit2, не должен превышать 25 мА!

Далее:

  1. Подаём напряжение питания на разъём ICSP (VDD On);
  2. Включаем режим цифрового пробника (Logic I/O);
  3. Разрешаем работу портов ввода/вывода (Enable I/O).

Окно_пробника

Использование выводов разъёма ICSP:

  1. PIN1 - только цифровой выход;
  2. VDD - напряжение питания 2,5…5,0 В (от PICkit2 или внешнего устройства);
  3. GND - общий провод (должен соединяться с «землёй» внешнего устройства);
  4. PIN4 - цифровой выход или вход (c «подтяжкой» к земле 4.7 кОм);
  5. PIN5 - цифровой выход или вход (c «подтяжкой» к земле 4.7 кОм);
  6. PIN6 - цифровой выход или вход (с триггером Шмитта).
Замечания
Уровень логической «1» на выводах PIN4-PIN6 определяется программой при первоначальном нажатии кнопки «Enable I/O» в зависимости от величины напряжения VDD (уровень на выводе PIN1 формируется от внутреннего регулируемого источника напряжения).
Повторное нажатие «Enable I/O» переводит все линии вывода в высокоимпедансное состояние.

Входные линии PIN4, PIN5 содержат встроенные резисторы «подтяжки» к земле (они требуются для работы PICkit2 в режиме отладчика). Входные буферы совместимы по уровням с логикой ТТЛ, могут работать с сигналами вплоть до напряжения 2,5 В.

Входная линия PIN6 совместима по уровням с логикой ТТЛШ (ТТЛ с триггером Шмитта) и может работать с сигналами вплоть до напряжения 3,6 В. При меньшем напряжении не гарантируется корректное отображение сигналов высокого логического уровня.

Эксперименты с логическим пробником

Настроим линию PIN4 на выход выбором 'Output':

Настройка_выхода

Переключать состояние выводов можно двояко:

  • нажатием клавиш «A», «S», «D», «F» (легко запомнить - они все рядом на клавиатуре);
  • щелчком левой кнопкой мыши по окошкам «Outputs» напротив каждого вывода.

Определение исправности диода

  1. Подключим между выводами PIN4 и PIN5 тестируемый диод и резистор 1 кОм, соединённые последовательно.
  2. Нажатием клавиши «S» переключаем уровни «1»/«0»/«1»… на выходе PIN4.
  3. Наблюдаем за сигналом на входе PIN5 - если его уровень переключается синхронно, то к этому входу подключен катод («минус»).
  4. Перенастроим PIN4 на вход 'Input', а PIN5 на выход 'Output'.
  5. Нажатием клавиши «D» переключаем уровни «1»/«0»/«1»… на выходе PIN5.
  6. Наблюдаем за уровнем на входе PIN4 - если уровень переключается синхронно, то к этому выводу подключен катод («минус»).

Если диод «звонится» или «молчит» в обоих направлениях - что-то с ним не так…
Двухцветный (двунаправленный) светодиод обязан «звониться» о обоих направлениях.

Замечание
Настоятельно рекомендуется включать последовательно с диодом резистор 1 кОм для ограничения тока в случае ОДНОВРЕМЕННОЙ настройки выводов PIN4 и PIN5 на выход.

Определение расположения сегментов ЖК индикаторов

При начале использования ЖК инидкаторов с драйвером на стекле (Chip-On-Glass) часто возникает вопрос: как определить, какой сегмент индикатора к какому выводу драйвера подключен? Конечно же, можно открыть даташит на ЖКИ, проследить разводку драйвера индикатора и определить порядок подключения сегментов (т.е. составить таблицу знакогенератора).
PICkit2 в режиме логического пробника позволяет это сделать гораздо быстрее!

Рассмотрим для примера проверку ЖК индикатора с драйвером на стекле TIC8148 (или TIC55).

TIC8148-цоколёвка

  • Подключаем ЖКИ к PICkit2 по таблице:
Вывод PICkit2 Вывод TIC8148 Назначение Клавиша управления
1 -
2 1 VDD
3 2 GND
4 3 LOAD «S»
5 4 DATA «D»
6 5 CLOCK «F»
- 6
  • Запускаем логический пробник PICkit2
  • Подаем питание на индикатор (VDD On)
  • Настраиваем выводы PIN4, PIN5, PIN6 на выход
  • Устанавливаем «1» на линии DATA (нажатием клавиши «D»)

Настройка_пробника

Драйвер индикатора TIC8148 по сути представляет собой сдвиговый регистр, защелкивание данных в индикатор осуществляется сигналом LOAD. Для того, чтобы зажечь первый сегмент, нужно сформировать:

  • «1» на линии DATA (в нашем примере уже установлена);
  • импульс на линии CLOCK (дважды нажать «F»);
  • импульс на линии LOAD (дважды нажать «S»).

TIC8148-первый_сегмент

Для того чтобы «сдвинуть» данные (зажечь следующий сегмент), нужно снова выдать импульс на линию CLOCK и затем затем импульс на линию LOAD:

  • дважды нажимаем «F» (импульс CLOCK);
  • дважды нажимаем «S» (импульс LOAD).

TIC8148-первый_и_второй_сегменты

…И так далее до тех пор, пока не определим очередность всех сегментов одного знакоместа.

TIC8148-первые_9_сегментов

В нашем примере для отображения одного знакоместа потребовалось 9 тактовых CLOCK-ов и один импульс LOAD. Для отображения 8 знакомест в оконечном изделии рекомендуется сначала выдать 72 импульса данных и тактирования, а напоследок «защелкнуть» их импульсом LOAD - все необходимые сегменты зажгутся одновременно.

Логический анализатор

Продолжим изучение утилиты 'Logic Tool' в режиме логического анализатора:

  1. Переключаемся на режим логического анализатора (Analyzer);
  2. Подаём напряжение питания на разъём ICSP (VDD On).

Подключаем...

Назначение выводов разъёма ICSP:

  1. VPP - не используется;
  2. VDD - напряжение питания 2,5…5,0 В (от PICkit2 или внешнего устройства);
  3. GND - общий провод (должен соединяться с «землёй» внешнего устройства);
  4. CH1 - цифровой вход 1 (c «подтяжкой» к земле 4.7 кОм);
  5. CH2 - цифровой вход 2 (c «подтяжкой» к земле 4.7 кОм);
  6. CH3 - цифровой вход 3 (с триггером Шмитта).
Замечания
На выводе VDD ОБЯЗАТЕЛЬНО должно присутствовать напряжение питания (нужно установить галочку 'VDD On' или подать питание от внешней схемы), иначе цифровые входы фактически окажутся «притянуты» к «земле».

Вывод VDD можно не соединять с цепью питания внешней схемы, ТОЛЬКО ЕСЛИ установленное на нём напряжение превышает уровень логической «1» внешней схемы.

Каналы CH1 и CH2 содержат входные буферы TTL и могут работать вплоть до напряжения питания 2,5 В. Канал CH3 содержит входной буфер с триггером Шмитта и может корректно работать до напряжения питания 3,6 B.

Изучаем возможности

Окно анализатора состоит из 3 секций:

  1. Дисплей - для наблюдения формы и измерения параметров сигналов;
  2. Синхронизация ('Trigger') - для установки условия начала измерений;
  3. Параметры ('Acquisition') - для установки временной развертки и запуска измерений.

Окно_анализатора

На дисплее помимо формы сигналов отображаются:

  • метка начала измерений (вертикальная КРАСНАЯ линия);
  • метки времени (вертикальные СЕРЫЕ линии);
  • '50 us/Div' - временной масштаб деления;
  • 'Cursors' - положения меток от начала измерений:
    'X' (изменяем нажатием левой кнопки мыши),
    'Y' (изменяем нажатием правой кнопки мыши),
    'Y-X' интервал времени между метками (частота);
  • 'Zoom' - кнопки выбора масштаба по оси времени;
  • 'Save' - кнопка сохранения изображения в файл *.bmp.

Размер дисплея по горизонтали составляет 500 точек, и в масштабе '1xZoom' мы видим картинку с разрешением 1 отсчёт/пиксель (с полосой прокрутки внизу). Выбором масштаба можно «сжать» картинку в 2 раза либо «растянуть» её в 2 или 4 раза. При сохранении картинки в файл временной масштаб деления (с учетом Zoom-а) накладывается на изображение снизу.

В секции синхронизации 'Trigger' можно установить условия начала запуска измерений по сигналам на цифровых входах CH1CH3:

  • '*' - не влияет на условия запуска;
  • '1' - по высокому уровню;
  • '0' - по низкому уровню;
  • '/' - по фронту сигнала;
  • '\' - по спаду сигнала;
  • '(1-256)' - число совпадений условия.

Измерения запускаются, если все выбранные условия выполнятся ОДНОВРЕМЕННО и заданное число раз.

Секция параметров 'Acquisition' позволяет задать:

  • 'Sample Rate' - частоту выборки отсчетов (интервал «окна» данных);
  • 'Trigger Position' - положение метки синхронизации:
    'Start of Data' - в начале «окна» данных;
    'Center of Data' - посередине «окна» данных;
    'End of Data' - в конце «окна» данных;
    'Delay 1…3 Windows' - с задержкой на 1000…3000 отсчетов данных;
  • 'Run' - ЗАПУСТИТЬ логический анализатор.

В памяти логического анализатора может сохраняться 1024 отсчета по 3 цифровым входам. Для установки параметров удобно пользоваться следующей таблицей.

Sample Rate
Частота выборки,
кГц
Интервал
между выборками,
мкс
Интервал
«окна» данных,
мс
Предельная
частота сигнала,
кГц
1000 1 1 500
500 2 2 250
250 4 4.1 125
100 10 10.2 50
50 20 20.5 25
25 40 41 12.5
10 100 102.4 5
5 200 204.8 2.5

Из таблицы видно, что с увеличением интервала наблюдения («окна» данных), снижается частота выбрки данных. Поэтому возможна ситуация, когда сигнал между измерениями дважды (или даже более раз!) измененяет свое состояние, т.е при наблюдении мы увидим его искаженную форму.
Во избежание этого эффекта «наложения» ('aliasing') нужно выбирать частоту выборок как минимум в 2 раза выше частоты переключения сигнала (см. первый и последний столбцы таблицы).

Ожидание_синхронизации

После запуска кнопкой 'Run' анализатор ожидает срабатывания заданных условий синхронизации, зажигает светодиод 'Busy' на корпусе PICkit2 и выдаёт окно сообщения 'Wating for Trigger'.

Замечание
В режиме ожидания синхронизации 'Wating for Trigger' не следует извлекать программатор PICkit2 из USB-разъёма, иначе программа анализатора может «подвиснуть».

Если условие синхронизации «срабатывает», светодиод 'Busy' гаснет, окно сообщения закрывается и на дисплее появляются записанные в память сигналы.

Прервать «затянувшееся» ожидание синхронизации можно нажатием кнопки на корпусе PICkit2, в этом случае картинка на дисплее не обновляется.

Используем!

Плата-бегущие_огни

Для эксперимента возьмем демо-плату из комплекта DV164120 на микроконтроллере PIC16F690. С помощью PICkit2 прошьём пример 07 «бегущие огни» (Reversible.HEX), который поочередно зажигает светодиоды на выводах RC0RC3.
Выкрутим потенциометр платы до упора по часовой стрелке (для максимальной скорости переключения) и соединим перемычками выводы управления светодиодов со входами анализатора RC0-RA1 (канал СH2) и RC1-RA4 (канал CH3).

Переключаемся на режим логического анализатора (Analyzer):

  • подаём напряжение питания на плату (VDD On);
  • выбираем синхронизацию по фронту на канале CH2;
  • устанавливаем максимальное время анализа ('5 kHz - 200 ms Windows');
  • нажимаем 'RUN' - готово!

Анализатор-бегущие_огни

Канал CH1 соединён с потенциометром платы (который мы «выкрутили» на максимум), поэтому на нём постоянно присутствует высокий уровень.

Измеряем!

Плата-потенциометр

Проведём другой опыт - на этой же плате, но без контроллера. Установим перемычку между каналами CH1 и CH2, т.е. RA0-RA1. Теперь, при вращении потенциометра платы одновременно на 2 канала будет подаваться аналоговое напряжение от 0 до VDD.
Выкрутим потенциометр платы до упора против часовой стрелки (для установки минимального напряжения).

В режиме логического анализатора (Analyzer):

  • подаём напряжение питания на плату (VDD On);
  • выбираем синхронизацию по фронту на канале CH2;
  • устанавливаем минимальное время анализа ('500 kHz - 2 ms Windows');
  • нажимаем 'RUN'…
  • РЕЗКО поворачиваем потенциометр по часовой стрелке - готово!

Анализатор-потенциометр

На дисплее видим прекрасную иллюстрацию эффекта «дребезга», при котором происходит многократное переключение логических схем (когда входное напряжение находится около порогового значения, между «0» и «1»).

Измерим продолжительность действия эффекта «дребезга»:

  • выберем подходящий масштаб кнопками 'Zoom' и полосой прокрутки внизу окна дисплея;
  • установим галочку 'Cursors';
  • установим метку 'X' щелчком левой кнопки мыши;
  • установим метку 'Y' щелчком правой кнопки мыши.

Дисплей-растяжка_по_2_каналу Дисплей-растяжка_по_1_каналу

Выводы из нашего простейшего эксперимента:

  • максимальная длительность эффекта «дребезга» 'Y-X' 124 мкс;
  • пороговое значение, при котором проявляется эффект «дребезга», у канала CH2 ниже, чем у канала CH1 (т.к. проявляется раньше по времени).
Продолжение следует...

Дискуссия

Michail, 26/03/2010.15:21

Здравствуйте. Воможен ли непрерывный сбор данных в режиме логического анализатора? Так, чтобы собирались пакеты 1024 байт без пропусков.

Спасибо.

pickit2, 26/03/2010.15:53

в стандартном функционале нет, но ПО открыто, поэтому возможны различные эксперименты…

статьи/logic.и.uart.tool.txt · Последние изменения: 27/11/2022.20:47 (внешнее изменение)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0