Запись изменений в память трансивера


Wiki

Как записать изменения в память трансивера?

Чтобы осуществить запись, необходимо выполнить следующие действия:

  1. Подключите программатор к компьютеру и запустите программу SFPTotal Wizard;
  2. Подключите трансивер в порт программатора;
  3. Выберите соответствующий тип трансивера в выпадающем меню Module Type;
  4. Выберите область памяти для чтения в меню Address table;
  5. Убедитесь, что в области редактора содержится корректный код;
  6. Нажмите кнопку записи изменений в память трансивера — Write code to module;

Программа вернет результат операции после завершения записи.


Как работает запись?

Стандартная запись данных осуществляется программатором путем выполнения последовательности сигналов на шине данных IIC для передачи блоков размером 8 байт каждый. Характеристики сигналов и временные интервалы подобраны таким образом, чтобы обеспечить успешное программирования большинства представленных на рынке трансиверов.

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

Если фрагмент кода, который был записан, совпадает с фрагментом, который был возвращен программатором в результате выполнения контрольного чтения, то считается, что запись произведена успешно. Программа вернет результат контрольного чтения и подтверждение — WRITE OK.

В противном случае, программа вернет результат WRITE FAIL — запись была неудачной.

При возникновении необрабатываемого прерывания на шине данных программой будет возвращен код ошибки QERR.


Почему программа возвращает ошибку?

Основная причина возникновения ошибки записи заключается в том, что изменения не сохраняются в памяти трансивера. Как правило это связано с присутствием в трансивере механизмов защиты от записи. Для программирования трансиверов с защитой от записи в соответствии со стандартом MSA необходимо использовать пароль.

Ознакомьтесь с материалами Запись с использованием пароля, а также Виды трансиверов по типу защиты от записи и способы их программирования.

Также, ошибка записи будет возвращена, если в момент записи данные сохранились только частично, либо после завершения записи внутренними механизмами модуля были внесены изменения в данные страницы до момента, когда программатор выполнит контрольное чтение. В этом случае рекомендуется изменить настройки программатора, чтобы подобрать оптимальные параметры скорости тактирования шины данных, размера блока данных и паузы между блоками при записи изменений.


Примечание

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

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

Используйте функцию резервного копирования для автоматического сохранения исходной прошивки трансивера.