Содержание
Интернет-магазин
К комплекте инструментов 'Tools' находятся весьма полезные утилиты, позволяющие превратить программатор PICkit2 в:
В режиме 'UART Tool…' к разъёму внутрисхемного программирования ICSP подключаем линии RX и TX отлаживаемого устройства. Затем в окнах управляющей программы задём:
И наблюдаем в окне приема поступающие по линии RX данные!
В режиме 'Logic Tool…/Logic I/O' к разъёму внутрисхемного программирования ICSP подключаем линии ввода/вывода отлаживаемого устройства. Затем в окнах программы:
Это особенно полезно на этапе разработки простых интерфейсов ввода/вывода (вместо припаивания к отлаживаемому устройству тестовых кнопок и светодиодов).
В режиме 'Logic Tool…/Analyzer' к разъёму внутрисхемного программирования ICSP можно подключать линии последовательных интерфейсов (например, UART, SPI, I2C). Для начала анализа в окнах программы устанавливаем:
Запускаем анализ нажатием 'Run' и наблюдаем результат в окне «виртуального трехканального осциллоскопа»! Пригодится для анализа любых последовательных протоколов обмена.
Для корректной работы примеров в главном окне программы установим величину напряжения питания и выберем его подачу на разъём ICSP от PICkit2.
Напряжение установленной величины (у нас «5,0В») будем при необходимости включать для питания внешних (малопотребляющих!) устройств.
Напоминание |
---|
Максимальный ток, потребляемый внешними цепями, при питании от PICkit2, не должен превышать 25 мА! |
Далее:
Использование выводов разъёма ICSP:
Замечания |
---|
Уровень логической «1» на выводах PIN4-PIN6 определяется программой при первоначальном нажатии кнопки «Enable I/O» в зависимости от величины напряжения VDD (уровень на выводе PIN1 формируется от внутреннего регулируемого источника напряжения). Повторное нажатие «Enable I/O» переводит все линии вывода в высокоимпедансное состояние. Входные линии PIN4, PIN5 содержат встроенные резисторы «подтяжки» к земле (они требуются для работы PICkit2 в режиме отладчика). Входные буферы совместимы по уровням с логикой ТТЛ, могут работать с сигналами вплоть до напряжения 2,5 В. Входная линия PIN6 совместима по уровням с логикой ТТЛШ (ТТЛ с триггером Шмитта) и может работать с сигналами вплоть до напряжения 3,6 В. При меньшем напряжении не гарантируется корректное отображение сигналов высокого логического уровня. |
Настроим линию PIN4 на выход выбором 'Output':
Переключать состояние выводов можно двояко:
Если диод «звонится» или «молчит» в обоих направлениях - что-то с ним не так…
Двухцветный (двунаправленный) светодиод обязан «звониться» о обоих направлениях.
Замечание |
---|
Настоятельно рекомендуется включать последовательно с диодом резистор 1 кОм для ограничения тока в случае ОДНОВРЕМЕННОЙ настройки выводов PIN4 и PIN5 на выход. |
При начале использования ЖК инидкаторов с драйвером на стекле (Chip-On-Glass) часто возникает вопрос: как определить, какой сегмент индикатора к какому выводу драйвера подключен? Конечно же, можно открыть даташит на ЖКИ, проследить разводку драйвера индикатора и определить порядок подключения сегментов (т.е. составить таблицу знакогенератора).
PICkit2 в режиме логического пробника позволяет это сделать гораздо быстрее!
Рассмотрим для примера проверку ЖК индикатора с драйвером на стекле TIC8148 (или TIC55).
Вывод PICkit2 | Вывод TIC8148 | Назначение | Клавиша управления |
---|---|---|---|
1 | - | ||
2 | 1 | VDD | |
3 | 2 | GND | |
4 | 3 | LOAD | «S» |
5 | 4 | DATA | «D» |
6 | 5 | CLOCK | «F» |
- | 6 |
Драйвер индикатора TIC8148 по сути представляет собой сдвиговый регистр, защелкивание данных в индикатор осуществляется сигналом LOAD. Для того, чтобы зажечь первый сегмент, нужно сформировать:
Для того чтобы «сдвинуть» данные (зажечь следующий сегмент), нужно снова выдать импульс на линию CLOCK и затем затем импульс на линию LOAD:
…И так далее до тех пор, пока не определим очередность всех сегментов одного знакоместа.
В нашем примере для отображения одного знакоместа потребовалось 9 тактовых CLOCK-ов и один импульс LOAD. Для отображения 8 знакомест в оконечном изделии рекомендуется сначала выдать 72 импульса данных и тактирования, а напоследок «защелкнуть» их импульсом LOAD - все необходимые сегменты зажгутся одновременно.
Продолжим изучение утилиты 'Logic Tool' в режиме логического анализатора:
Назначение выводов разъёма ICSP:
Замечания |
---|
На выводе VDD ОБЯЗАТЕЛЬНО должно присутствовать напряжение питания (нужно установить галочку 'VDD On' или подать питание от внешней схемы), иначе цифровые входы фактически окажутся «притянуты» к «земле». Вывод VDD можно не соединять с цепью питания внешней схемы, ТОЛЬКО ЕСЛИ установленное на нём напряжение превышает уровень логической «1» внешней схемы. Каналы CH1 и CH2 содержат входные буферы TTL и могут работать вплоть до напряжения питания 2,5 В. Канал CH3 содержит входной буфер с триггером Шмитта и может корректно работать до напряжения питания 3,6 B. |
Окно анализатора состоит из 3 секций:
На дисплее помимо формы сигналов отображаются:
Размер дисплея по горизонтали составляет 500 точек, и в масштабе '1xZoom' мы видим картинку с разрешением 1 отсчёт/пиксель (с полосой прокрутки внизу). Выбором масштаба можно «сжать» картинку в 2 раза либо «растянуть» её в 2 или 4 раза. При сохранении картинки в файл временной масштаб деления (с учетом Zoom-а) накладывается на изображение снизу.
В секции синхронизации 'Trigger' можно установить условия начала запуска измерений по сигналам на цифровых входах CH1…CH3:
Измерения запускаются, если все выбранные условия выполнятся ОДНОВРЕМЕННО и заданное число раз.
Секция параметров 'Acquisition' позволяет задать:
В памяти логического анализатора может сохраняться 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), который поочередно зажигает светодиоды на выводах RC0…RC3.
Выкрутим потенциометр платы до упора по часовой стрелке (для максимальной скорости переключения) и соединим перемычками выводы управления светодиодов со входами анализатора RC0-RA1 (канал СH2) и RC1-RA4 (канал CH3).
Переключаемся на режим логического анализатора (Analyzer):
Канал CH1 соединён с потенциометром платы (который мы «выкрутили» на максимум), поэтому на нём постоянно присутствует высокий уровень.
Проведём другой опыт - на этой же плате, но без контроллера. Установим перемычку между каналами CH1 и CH2, т.е. RA0-RA1. Теперь, при вращении потенциометра платы одновременно на 2 канала будет подаваться аналоговое напряжение от 0 до VDD.
Выкрутим потенциометр платы до упора против часовой стрелки (для установки минимального напряжения).
В режиме логического анализатора (Analyzer):
На дисплее видим прекрасную иллюстрацию эффекта «дребезга», при котором происходит многократное переключение логических схем (когда входное напряжение находится около порогового значения, между «0» и «1»).
Измерим продолжительность действия эффекта «дребезга»:
Выводы из нашего простейшего эксперимента:
Дискуссия
Здравствуйте. Воможен ли непрерывный сбор данных в режиме логического анализатора? Так, чтобы собирались пакеты 1024 байт без пропусков.
Спасибо.
в стандартном функционале нет, но ПО открыто, поэтому возможны различные эксперименты…