Команды протокола управления устройством 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