Команды протокола управления устройством SFPTotal поддерживаются программаторами серий Mini, Plus, Plus New, Plus X.
Список команд актуален для устройств с версией встроенной прошивки SW 1.3.5 или новее.
Команда чтения позволяет обращаться по шине данных к устройствам с использованием 8-битных параметров адреса и смещения, и считывать данные из страниц размером до 256 байт.
R1A000807F
Команда чтения состоит из следующих параметров:
R
+ 1
+ A0
+ 00
+ 80
+ 7F
Код команды
Команда чтения начинается с кода команды — символа R (сокращение от Read).
Регистр кода команды влияет на формат вывода результата чтения.
Номер порта
Числовой идентификатор порта на плате программатора.
Если установлен параметр CMODPRST=01
, программатор будет проверять подключение трансивера в указанный порт перед выполнением операции чтения. Отключите данный параметр, чтобы игнорировать номера порта.
Адрес страницы
Адрес страницы ведомого устройства на шине данных. Записывается в формате HEX в верхнем регистре. Например: A0
или A2
.
Ознакомьтесь с материалом Структура памяти трансивера, чтобы узнать больше о поддерживаемых адресах страниц в памяти трансивера.
Номер дополнительной страницы
Номер дополнительной страницы в HEX формате для трансиверов с поддержкой динамического адресного пространства.
Пример значений: 00
, 01
, 02
, 03
.
Если установлен параметр AWRADTBL=01
, программатор будет выполнять запись номера дополнительной страницы в область Page Select byte при обращении к верхней памяти модулей XFP и QSFP, тем самым выбирая какая именно доп. таблица будет представлена трансивером в области A0h по смещению 80h:
T00
или T01
или T02
или T03
.
Чтобы игнорировать параметр номера дополнительной страницы, установите AWRADTBL=00
.
Смещение
Параметр задает смещение, по которому производится чтение или запись.
Например:
00
- нижняя область памяти, с 0 байта80
- верхняя область памяти, со 128 байта5F
- читать с 95 байтаКоличество байт чтения/записи
Параметр задает количество байт, которые необходимо прочитать или записать в память трансивера. Параметр записывается в HEX формате в верхнем регистре символов. С учетом разрядности регистра количество байт чтения в параметре должно быть уменьшено на единицу.
00
- прочитать/записать 1 байт7F
- прочитать/записать 128 байт03
- прочитать/записать 4 байтаВвод и исполнение команды
Для исполнения команды в конце необходимо передать символ переноса строки \x0D
.
Форматированный вывод области чтения:
r1A000007F
## 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 : 03 04 07 00 00 00 01 20 40 0C 15 01 2A 00 00 00
01 : 0F 07 00 00 46 49 4E 49 53 41 52 20 43 4F 52 50
02 : 32 33 34 20 00 00 90 65 46 54 4C 46 38 35 32 34
03 : 50 32 42 4E 56 20 20 20 41 20 20 20 03 52 00 9C
04 : 00 32 00 00 50 42 39 31 59 5A 57 20 20 20 20 20
05 : 20 20 20 20 30 37 30 32 32 37 20 20 68 D8 01 0B
06 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
07 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Стандартное выполнение команды чтения.
R1A000007F
0304070000000120400C15012A0000000F07000046494E4953415220434F5250323334200000906546544C46383532345032424E56202020412020200352009C0032000050423931595A57202020202020202020303730323237202068D8010B0000000000000000000000000000000000000000000000000000000000000000
Чтение 128 байт страницы T03h трансивера QSFP28 из адресного пространства A0h по смещению 80h.
R4A003807F
11CC07800000000000000003FF00020000000040484953494C49434F4E20202020202020000000004F4D333535394358313030202020202030316658051446E60607FFDE30333448545831304D3930303333383832313039333032300C1067A60000000000000000000000000000000000000000000000000000000000000000
Результат выполнения команды завершается символами переноса строки и возврата каретки.
Команда записи позволяет обращаться по шине данных к устройствам с использованием 8-битных параметров адреса и смещения, и записывать данные в страницу размером до 256 байт.
W4A002800F11223344556677889900AABBCCDDEEFF
Команда чтения состоит из следующих параметров:
W
+ 4
+ A0
+ 02
+ 80
+ 0F
+ 11223344556677889900AABBCCDDEEFF
Код команды
Команда записи начинается с кода команды — символа W (сокращение от Write).
Регистр кода команды влияет на возврат результата после выполнения записи.
Для подтверждения записи необходимо сравнить данные, переданные в команде записи, с данными, которые были возвращены программатором после выполнения команды.
Номер порта
Числовой идентификатор порта на плате программатора.
Если установлен параметр CMODPRST=01
, программатор будет проверять подключение трансивера в указанный порт перед выполнением операции записи. Отключите данный параметр, чтобы игнорировать номера порта.
Адрес страницы
Адрес страницы ведомого устройства на шине данных. Записывается в формате HEX в верхнем регистре. Например: A0
или A2
.
Ознакомьтесь с материалом Структура памяти трансивера, чтобы узнать больше о поддерживаемых адресах страниц в памяти трансивера.
Номер дополнительной страницы
Номер дополнительной страницы в HEX формате для трансиверов с поддержкой динамического адресного пространства.
Пример значений: 00
, 01
, 02
, 03
.
Если установлен параметр AWRADTBL=01
, программатор будет выполнять запись номера дополнительной страницы в область Page Select byte при обращении к верхней памяти модулей XFP и QSFP, тем самым выбирая какая именно доп. таблица будет представлена трансивером в области A0h по смещению 80h:
T00
или T01
или T02
или T03
.
Чтобы игнорировать параметр номера дополнительной страницы, установите AWRADTBL=00
.
Смещение
Параметр задает смещение, по которому производится чтение или запись.
Например:
00
- нижняя область памяти, с 0 байта80
- верхняя область памяти, со 128 байта5F
- читать с 95 байтаКоличество байт записи/чтения
Параметр задает количество байт, которые необходимо записать в память трансивера. Параметр записывается в HEX формате в верхнем регистре символов. С учетом разрядности регистра количество байт записи в параметре должно быть уменьшено на единицу.
00
- прочитать/записать 1 байт7F
- прочитать/записать 128 байт03
- прочитать/записать 4 байтаДанные
Данные для команды записи указываются вводятся в конце команды в формате HEX строки в верхнем регистре символов без пробельных символов и символов переноса строки.
11223344556677889900AABBCCDDEEFF
Длина набора данных для записи должна соответствовать параметру Количество байт записи, указанному в параметрах команды.
Ввод и исполнение команды
Для исполнения команды в конце необходимо передать символ переноса строки \x0D
.
CLI
Переключает возможность отображения символов в окне терминала при вводе. Выключено по-умолчанию. Состояние возвращается в дефолтное после сброса питания.
Запрос текущего состояния
? CLI
CLI=0
Включение
CLI=1
Выключение
CLI=0
Запрос информации о версии устройства.
SFPTotal Plus New (c) 2023
HW: 1.3
SW: 1.3.7
SN: SFPT-P1323122800
ACTIVE
CMODPRST
Проверка подключения трансивера в порт перед выполнением операций чтения и записи.
Запрос текущего состояния опции:
? CMODPRST
CMODPRST=01
Включить отслеживание подключения трансивера в порт:
CMODPRST=01
Выключить отслеживание подключения трансивера в порт:
CMODPRST=00
После включения опции программатор при подключении более одного трансивера в порты возвращает ошибку:
QERR: MTDOC
При выполнении операций чтения и записи и при отсутствующем трансивере в порту программатор возвращает соответствующий код ошибки:
QERR: SFP_EMPTY
AWRADTBL
Команда включает автоматическую запись номера дополнительной страницы в регистр Page Select byte при обращении к адресным пространствам страниц T00h, T01h, T02h, T03h.
Запрос текущего состояния опции:
? AWRADTBL
AWRADTBL=01
Включение функции записи номера дополнительной страницы:
AWRADTBL=01
Отключение функции записи номера дополнительной страницы:
AWRADTBL=00
Состояние вводов и выводов портов программатора.
STATUS
GBIC : 1; 0; 0; 1;
SFP : 1; 1; 1; 1;
XFP : 1; 1; 1; 1; 1;
QSFP : 1; 1; 1; 1;
Позиции значений параметров соответствует следующей карте:
GBIC : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS; SFP : MOD_ABS; TX_FAULT; RX_LOS; TX_DIS; XFP : MOD_ABS; RX_LOS; INTERRUPT; MOD_SEL; P_DOWN/RESET; QSFP : MOD_ABS; INTL; MOD_SEL; RESETL;
Команда управляет состоянием линии TX_DIS, отвечающей за включение режима пониженного энергопотребления. По-умолчанию, активно.
Включение лазера, отключение режима Low power mode
TX_DIS=0
Выключение лазера, включение режима Low power mode
TX_DIS=1
На плате программатора может присутствовать перемычка для аппаратного управления режимом Low power mode. Замкнутая перемычка имеет приоритет.
Устанавливает скорость тактирования программатора на шине данных в режиме master.
Параметр представлен шестнадцатеричным регистром.
I2CRATE=12 # Частота тактирования 100 kHz
I2CRATE=40 # Частота тактирования 30 kHz
I2CRATE=C6 # Частота тактирования 10 kHz
Для запроса текущего значения скорости используйте команду ? I2CRATE
? I2CRATE
I2CRATE=C6
Может принимать значения от 01h
до FFh
.
Скорость тактирования рассчитывается по формуле:
16 000 000 / (2 * I2CRATE * I2CPRESC + 16) = Speed Rate Hz
Предделитель значения частоты тактирования программатора на шине данных в режиме master.
Параметр представлен шестнадцатеричным регистром. Значение по-умолчанию: 04h
I2CPRESC=04
Для запроса текущего значения скорости используйте команду ? I2CPRESC
? I2CPRESC
I2CPRESC=04
Может принимать значения 00h
, 04h
, 10h
, 40h
.
I2CPAUSE
Задержка перед выводом результатов чтения на шине. Значение в миллисекундах.
Значение по-умолчанию: 64h
или 100ms
? I2CPAUSE
I2CPAUSE=64
I2CPAUSE=32
I2CPAUSE=32
I2CDELAY
Устанавливает задержку перед выполнением условия ReSTART c шагом 0.1 ms.
Значение по-умолчанию: 0Ah
? I2CPAUSE
I2CPAUSE=0A
I2CPAUSE=64
I2CPAUSE=64
I2CRESET
Программный сброс шины данных. Перезапускает интерфейс и генерирует 9 тактов на линии SCL шины данных, чтобы убрать возможное зависание ведомых устройств.
Сброс шины данных:
I2CRESET
Включаем триггер. При подключения трансивера в порт сброс шины данных будет выполнен автоматически.
I2CRESET=01
Отключить триггер.
I2CRESET=00
I2CSTATE
Возвращает состояние линий шины данных.
I2CSTATE
SCL=01 SDA=02
USBDELAY
Задержка перед отправкой байта данных от устройства компьютеру через виртуальный серийный порт.
? USBDELAY
USBDELAY=0A
USBDELAY=10
USBDELAY=10
Поддерживается только на программаторах с доступной функцией программного управления питанием.
PWRRST
Сброс питания портов для подключения трансиверов.
PWRRST
Значение I2CPAUSE влияет на длину интервала сброса шины данных с шагом 10 мс.
PWRCTRL
Команда управления питанием портов.
Выключить питание.
PWRCTRL=0
Включить питание.
PWRCTRL=1
Изменение состояния питания должно сопровождаться соответствующей светодиодной индикацией.
Программатор поддерживает функцию аппаратного поиска паролей в диапазоне от 00000000
до FFFFFFFF
Поиск работает в цикле с инкрементом значения пароля на единицу. На каждой итерации программатор выполняет ввод пароля и осуществляет запись контрольного слова SFPTOTAL
длиной 8 байт. После чего производит чтение контрольного слова.
Поиск считается успешным, когда программатор смог прочитать контрольное слово из памяти трансивера.
BFCWADR
Адрес страницы, в которую будет записываться контрольное слово.
BFCWOFT
Смещение при записи контрольного слова.
BFSET
Команда запуска аппаратного поиска паролей. Имеет следующие параметры:
Команда запускает поиск с вводом паролей в область страницы A2h
по смещению 7Bh
в диапазоне от 41414141h
до 5A5A5A5Ah
, начиная с позиции 45454545h
.
BFSET A2 7B 41414141 5A5A5A5A 45454545
Device=A2
Offset=7B
From 41 41 41 41
To 5A 5A 5A 5A
Start 45 45 45 45
45 45 45 46
BFSTOP
Команда останавливает поиск паролей.
BFSTOP
STOP
Device=A2
Offset=7B
From 41 41 41 41
To 5A 5A 5A 5A
Current 45 45 47 5A
BFSTART
Запускает поиск паролей с места, на котором процесс был остановлен.
BFPASS
Команда ? BFPASS
возвращает текущее значение.
? BFPASS
45 45 47 5A