Перейти к основному содержимому

Программирование OTP-памяти

Микросхема содержит энергонезависимую память (OTP) для хранения конфигурации, которая автоматически загружается в регистры при подаче питания или сбросе. После программирования OTP микросхема самостоятельно инициализируется — ПК-приложение для штатной работы больше не требуется.

OTP состоит из двух независимых частей (подробно — в разделе ПЗУ):

  • BOTP (последовательная, 512 слов) — загружает при старте все конфигурационные регистры и память микровычислителей. Это «слепок» настроек преобразователя (соответствие ячеек и регистров).
  • UOTP (параллельная, 2 ячейки) — хранит PLL_config и INIT_conf (настройки тактирования и инициализации, описание).

Программирование выполняется из вкладки Terminal (кнопки в области Memory Editor).

Важно: две разные кнопки записи в чип

Обычная Write to IC записывает только настройки преобразователя и не затрагивает регистры тактирования и OTP-управления — PLL_config, INIT_conf, UOTP_ctrl, BOTP_addr/data/ctrl. Чтобы эти значения попали в чип (а затем в OTP), их записывают отдельной кнопкой Write ctrl OTP. Если вы меняли тактирование или параметры инициализации, а после Write to IC они «не применились» — используйте Write ctrl OTP.

Подготовка к программированию

Для записи OTP на вывод VPP подаётся высокое напряжение — в приложении это делает кнопка VPP 9V. Перед программированием убедитесь, что:

  • микросхема не в standby (кнопка Standby не активна);
  • сброс отпущен (кнопка nReset не удерживается);
  • подано VPP 9V (кнопка VPP 9V активна).

Программирование BOTP (слепок регистров)

  1. Настройте все регистры во вкладке Terminal так, как они должны быть при старте микросхемы.
  2. Create BOTP — приложение сформирует файл rom_BOTP.hex из текущих значений регистров.
  3. Prog BOTP — запишет слепок в BOTP (с подачей VPP).
  4. Verify BOTP — перечитает BOTP и сравнит с ожидаемым.

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

Программирование UOTP (PLL_config, INIT_conf)

  1. Create U22b — сформирует rom_u22b.hex (значения PLL_config и INIT_conf).
  2. Prog UOTP — запишет их в UOTP (с подачей VPP 9V).
Однократность

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

Если микросхема перестала отвечать

Если после установки бита INIT_on (инициализация из OTP при старте) микросхема не отвечает — скорее всего, неверно задан делитель тактирования OTP (BOTP_clkdel) и чип не смог инициализироваться. В этом случае:

  1. Найдите адрес микросхемы, перебирая в регистре BUS_addr значения 1…255 до отклика (см. Методика подключения → Обнаружение микросхемы).
  2. Скорректируйте BOTP_clkdel так, чтобы частота тактирования OTP не превышала 1 МГц.
  3. Перезапишите OTP.

Подробно — в разделе ПЗУ.

Связанные ресурсы