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

1.        Введение:

Данный логический анализатор предназначен для записи, выдачи и анализа различных последовательностей импульсов и последовательных протоколов с заданным периодом. За аппаратную часть взят мультипрограмматор на FT232

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

Внешний вид программной оболочки показан на рисунке 1.

 

Внешний вид программной оболочки

 Рисунок 1. Внешний вид программной оболочки. 

Анализатор имеет 7 каналов ввода/вывода, которые подключаются к различным исследуемым устройствам по усмотрению пользователя.

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

Канал 6 – только вход. Этот канал используется совместно с каналом 1 и служит для имитации двунаправленного входа/выхода, например, как в шине I2C, то есть направление передачи канала меняется походу работы протокола. Выходные данные подаются на выход 3, а входные данные идут по каналу 6. Более подробно смотрите «реализация протокола I2C».

Канал 7 – только выход. Этот канал на программаторе реализован как мощный выход 12В. Например, он был использован в качестве питания подсветки при работе с дисплеем от нокии 6100 (смотрите примеры использования)

В левой части рабочего окна программы находятся настройки портов анализатора – это:

  • скорость передачи (BoudRate)
  • инверсия каналов (галочка “NEG”)
  • направление порта (IN/OUT)
  • размер выдаваемого массива (допускается размер до 65кбит)
В центральной части окна программы расположено графическое отображение состояния каналов в виде временной диаграммы. А в нижней части поля – дополнительная информация, где отображаются нюансы при использовании различных выбранных режимов анализатора.

В правой части поля программы расположены элементы управления имитируемых протоколов. Имеется: 

  • выпадающее меню выбора протокола
  • 7 выпадающих меню (на каждый канал): выбор назначения канала и сигнала протокола
  • инверсия данных протокола (не путать с инверсией порта)
  • окно для ввода данных (для задания числовой последовательности протокола)
3.        Управление и ввод данных.

Нажатие левой кнопки мыши на панель осциллограммы устанавливает курсор в это место без изменения состояния данного бита.

Нажатие правой кнопки мыши на панель осциллограммы устанавливает курсор в это место и меняет состояние бита в этом месте.

Помимо ввода данных мышкой можно вводить их с клавиатуры. После нажатия клавиши «0» или «1» происходит ввод на место курсора соответственно 0 или 1. Также для удобства продублирована функция кнопки «0» на кнопку «2», то есть при нажатии на клавишу «2» происходит ввод 0.

Ввод данных массивом (только для протокола). Последовательность для протокола можно вводить в десятичной(1 34 987), двоичной (0b100 0b101010 0b1111111111111) и шестнадцатеричной форме (0xFA 0x12C 0x1a2cb). Данные водятся через пробел. Также допускаетсясмешивать форматы данных (123 0b1010 0x12aB).

Данные вводятся с последующим инкрементом адреса. При достижении границы массива его размер будет увеличиваться. Максимальный размер массива данных – 65 кбит

Ввод данных файлом. Для ввода данных файлом необходимо создать файл с любым расширением, например, txt. Формат свободный.

Разделять числа в файле можно точкой, запятой или пробелом. Пояснения в файле делаются через точку с запятой «;».

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

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

0x12F, 0b10101010   ;и т.п.

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

В анализаторе используются специальные функции FT232R, для использования которых необходимо установить специальный драйвер FTD2XX. Установка обычного COM порта не подходит. Драйвер желательно брать у производителя – вот тут, например.

4.        Подключение анализатора:

Внешний вид анализатора показан на рисунке 2.

 

Внешний вид анализатора

Рисунок 2. Внешний вид платы анализатора

J1 – джампер питания (Vcc). Имеет 4 состояния: 1.8В, 3В, 5В и внешнее питание

XT1 – miniUSB. Подключение к ПК.

XT2 – интерфейсный разъём для подключения анализатора к испытуемому. Имеет 10 контактов:

1          канал 1 (вход/выход)
2          питание выходных портов (Vcc) (в зависимости от состояния джампера питания будут входом или выходом)
3          Cbus 4 не используется. Но можно вывести частоту 6,12,24 или 48 МГц (более подробно смотри «использование Cbus»)
5          канал 2 (вход/выход)
7          канал 3 (вход/выход)
9          канал 4 (вход/выход)
4,6,8,10           общ.

ХТ3 – интерфейсный разъём для подключения анализатора к испытуемому. Имеет 10 контактов

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

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

положение 1-2 изменение канала 6 от Vcc до 12В
положение 2-3 изменение канала 6 от 0В до 12В
положение 1-2 используется в программаторе для формирования сигнала MCLR при прошивании PIC контроллеров.

Каналы 1-5 – по умолчанию являются входами и находятся в третьем состоянии (состояние Z). При установке канала в состояние выход, он будет выходом только в момент передачи.

Каждый канал имеет токоограничивающие резисторы 300ом.

Канал 6 является выходом всегда. По умолчанию имеет состояние «0».

5.        Использование сигнала Cbus (разъём ХТ2 контакт 3)

Этот сигнал в анализаторе не отображается, так как идёт не синхронно с выдаваемыми сигналами и имеет частоту выше, чем выходные импульсы. По умолчанию не задействован.

На этот контакт можно вывести частоту 6,12,24 и 48 МГц. Это делается с помощью специальной утилиты MProg, взять можно тут

6.        Краткое описание, что сделать, чтоб подать на Cbus частоту:
  1. устанавливаем утилиту Mprog.
  2. выбираем поиск устройств, нажав на лупу, или в меню Device->Scan, после чего утилита находит устройство и отображает его PID и т.п.
  3. выбираем в закладке Tool функцию Read and Parse, то есть считываем текущие установки и выводим это дело на дисплей.
  4. открываем закладку FT232R (если она сама не открылась), после чего открываются 2 поля. Invert rs232 signzl (нас это не касается, т.к. программа анализатора управляет этими сигналами по-своему) и поле I/O Controls.
    Поле I/O Controls имеет 4 подменю C1-C4.
  5. выбираем меню C4. Это и есть дополнительные функции сигнала Cbus4. Из всех предложенных функций нас интересуют CLK6, CLK12, CLK24 и CLK48. По названию функций должно быть всё понятно J. Остальные функции не влияют (точнее, при их выборе предсказать состояние этого пина не представляется возможным), так как они предназначены для работы в режиме COM порта.
  6. для того, чтоб FT232R задействовала выбранную функцию, надо обязательно сохранить проект (без этого не получится), так уж написана эта утилита.
  7. после сохранения проекта на диске, можно перепрограммировать нашу FT232R. Активизируется кнопочка с молнией. После её нажатия Mprog пропишет наши настройки в чип.
7.        Как описать и использовать собственный протокол

Для создания описания протокола потребуется написать собственный INI файл. Рекомендую копировать какой-нибудь из имеющихся файлов и изменять его. В пример возьмём файл SPI_9BIT. Пояснения в этих файлах необходимо указывать в отдельных строчках!!!

 

;заголовок настройка в этом разделе файла указываются специфические настройки протокола:

[setup]
;количество линий в протоколе. В этом их 4
num_lin = 4
;ниже расписаны линии по номерам и указаны их имена
lin1 = MOSI
lin2 = MISO
lin3 = SCK
lin4 = SS
;количество передаваемых бит
bits = 18
;доп. информация, она будет выводиться в окне дополнительной информации.
waring = канал 6 завязан с каналом 1 аппаратно. Бодрейт делится на 2, так как тактовая передаётся за 2 такта
;заголовок протокол. Ниже будет расписаны последовательности, используемые в протоколе.

[protokol]
SS   = 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

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

ВАЖНО: При описании протокола допускается расхождение в количестве бит, заданных в num_lin и описанных в разделе protocol.

После того как поправили или написали INI файл, необходимо добавить запись в файл protocol.lst. для того чтоб программа могла найти и использовать новый протокол.
 
8.        Пример использования анализатора для анализа шины I2C

Для начала подключаем анализатор к шине I2C (испытуемое устройство – джойстик нунчак от приставки Wii), внешних элементов не требуется. Схема подключения приведена на рисунке 3.Описывать протокол не вижу смысла. Про это подробно написано в инете. 

 

Пример подключения анализатора к шине I2C

Рисунок 3. Пример подключения анализатора к шине I2C

 

Как видно из схемы, для реализации используется 3 канала (каналы 1,4,5), а протокол I2C является двухпроводным. Суть в том, что анализатор не имеет возможности менять направление шины по ходу передачи сигналов, поэтому разделение входного сигнала и выходного происходит на транзисторе (см. схему). Таким образом, канал 1 является выходным: он выдаёт данные в I2C. А канал 5 является входным: он принимает данные по I2C.

Настройка анализатора и сигналов протокола.

Для настройки выбираем в меню выбора интерфейса «I2C» и устанавливаем следующие галочки и кнопочки:

Канал 1        NEG(инверсный выход)             OUT SDA_OUT данные на выход

Канал 4                                                              OUT SCL           тактовый сигнал

Канал 5                                                              IN   SDA_IN      входные данные

Также необходимо установить джампер питания в положение 3.3В, так как питание устройства пойдёт от анализатора.

9.        Пример использования анализатора для анализа шины SPI (9bit)

В этом примере рассмотрена имитация последовательного протокола для управления дисплеем от nokia6100. Схема подключения дисплея к анализатору приведена на рисунке 4. Из внешних элементов необходим только токоограничивающий резистор для подсветки дисплея. Особенностью является передача по SPI не 8 бит, как обычно, а 9.

Для работы этого протокола в анализаторе создан отдельно 9битный SPI

 

Схема подключения дисплея от Nokia 6100 к анализатору

Рисунок 4. Схема подключения дисплея от Nokia 6100 к анализатору

 

Настройка анализатора и сигналов протокола.

Для настройки выбираем в меню выбора интерфейса «SPI_9BIT» и устанавливаем следующие галочки и кнопочки:

Канал 1          OUT      ;этот сигнал пропишем вручную. Его нет в протоколе

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

Канал 3          OUT    SCK    ;тактовый сигнал протокола

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

Поскольку у нас нет принимаемых данных, все сигналы настроены как выход и не используется сигнал протокола MISO.

Также необходимо установить джампер питания в положение 3.3В, так как питание устройства пойдёт от анализатора.

 

 

Автор:  Сергей Меньшиков , e-mail для связи -    


Обсуждение на форуме: Логический анализатор