Программирование 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 (слепок регистров)
- Настройте все регистры во вкладке Terminal так, как они должны быть при старте микросхемы.
- Create BOTP — приложение сформирует файл
rom_BOTP.hexиз текущих значений регистров. - Prog BOTP — запишет слепок в BOTP (с подачей VPP).
- Verify BOTP — перечитает BOTP и сравнит с ожидаемым.
После этого при каждом включении или сбросе микросхема сама загрузит сохранённые значения.
Программирование UOTP (PLL_config, INIT_conf)
- Create U22b — сформирует
rom_u22b.hex(значения PLL_config и INIT_conf). - Prog UOTP — запишет их в UOTP (с подачей VPP 9V).
OTP-программирование рассчитано на ограниченное число перезаписей. Перед прожигом обязательно проверяйте конфигурацию и выполняйте Verify.
Если микросхема перестала отвечать
Если после установки бита INIT_on (инициализация из OTP при старте) микросхема не отвечает — скорее всего, неверно задан делитель тактирования OTP (BOTP_clkdel) и чип не смог инициализироваться. В этом случае:
- Найдите адрес микросхемы, перебирая в регистре
BUS_addrзначения 1…255 до отклика (см. Методика подключения → Обнаружение микросхемы). - Скорректируйте BOTP_clkdel так, чтобы частота тактирования OTP не превышала 1 МГц.
- Перезапишите OTP.
Подробно — в разделе ПЗУ.
Связанные ресурсы
- ПЗУ — структура BOTP/UOTP и таблица ячеек
- Описание протокола программирования BOTP по SPI — файл
workstation4ad3s/PROG_BOTP_SPI_WRITE.mdрепозитория DCsoyuz/ad3s.