Некоторые обладатели Xbox360 желающие установить на своих консолях Reset Glitch Hack сталкиваются с проблемой отсутствия в пределах досягаемости порта LPT для программирования CPLD чипа (как я сам).
Есть различные решения этой проблемы — самый очевидный но не самый простой — достать компьютер, имеющий LPT порт, как я и поступил, но при этом меня не покидала уверенность что должен существовать иной, более современный способ программирования CPLD, без использования архаичного LPT порта.
Второй способ решения проблемы намеренно или нет предложили the Matrix team. Их Matrix Glitcher v2 оснащен возможностью изменения таймингов посредством переключателей на самом чипе, что исключает необходимость программирования как таковую. Выпущен этот чип был в декабре 2011 года и по сути представляет собой самое простое решение проблемы.
Однако стоимость этого чипа составляет около 29 долларов на ebay, что в принцпе не сильно бьет по карману если цель одна единственная консоль, и делать все читающий планирует самостоятельно. Если же предстоит модифицировать несколько консолей (друзей соседей, либо клиентов) требуется отыскать способ программировать более дешевые чипы, в частности Matrix Glitcher v1 или x360glitch стоимость которого колеблется в районе 13-18 долларов.
Оригинальный usb jtag программер от xlinx я отмел сразу опять же в связи с его неоправданной дороговизной — почти что 50 долларов на том же ebay.
После продолжительных поисков по вражеским сайтам была обнаружена обширная статья под названием Bit Bang JTAG Programming of Xilinx CPLD using FT232 – Homebrew SVF Player на небезивестном сайте openschemes.com.
Данная статья объясняет принципы програмирования микроконтроллеров на языке svf, а также содержит подробную инструкцию как с помощью данного метода программировать именно CPLD и рекомендуется к прочтению всеми жаждущими познания.
Собственно настоящая статья — это упрощенный, лишенный теории и лирических отступлений перевод практической части указанной статьи на openschemes о создании самого программатора.
Итак, что для этого нужно.
TTL конвертер на основе чипа FT232. можно приобрести во многих местах. на ebay по запросу FT232 usb можно найти целую массу вариантов в основном китайского производства средняя цена 10-15 долларов.
Прошивка под нужную консоль. Архив можно скачать тут.
стоит заметить, что конвертер можно собрать и своими руками, вот пользователь ресурса rgloader.spiffy360.com с ником rz2k предложил вот такую схему: и само его устройство выглядит так:
Однако, я не увидел действительной необходимости собирать конвертер своими руками. Стоимость чипов составила в моем городе около 150-180 рублей, при этом некоторых не было в наличии, так что проще оказалось заказать у китайцев.
Все необходимое заполучили, можно приступать к задуманному.
Подключаем наш конвертер-программатор к компьютеру.
Если windows запросит драйвер, указываем ему на соответствующий файл .inf в папке Drivers архива с софтом. Выбираем в зависимости от архитектуры вашего процессора.
Запускаем Openschemes FT232 Bit Bang SVF Tool
В левом верхнем углу видим кнопку Find All FTDI interfaces. нажимаем. в списке снизу выбираем наш программатор.
Нажимаем кнопку которая расположена сразу под выпадющим списком — open interface и ставим галку Max CLK.
Забегая вперед, в случае возникновения сложностей при программировании это первый параметр, который следует регулировать. но поскольку пока проблем нет, оставляем на мах.
Ниже расположены четыре выпадающих окна, которые регулирую распиновку платы. здесь — как кому удобно, но лучше оставить как есть. при стандартной распиновке, следующие пины соответствуют друг другу:
TMS — RxD
TCK — RI
TDO — DCD
TDI — DSR
Соединяем CPLD и Программатор в соответствии с выбранной распиновкой. VCC к 3.3 V GND соответствует маркировке.
вот для примера схема соединения Digilent C-MOD и Sparkfun Breakout Board for FT232RL USB to Serial.
Теперь когда мы установили эти параметры нажимаем кнопку — Start BitBang Mode. Все, программатор готов к передаче информации!
Особенно приятно что при использовании данного устройства для программирования CPLD не нужно мудрить с дополнительным питанием чипа. питания от USB достаточно.
В правой верхней части окна расположен файловый браузер в котором нужно выбрать соответствующую прошивку и запустить процесс программирования дважды кликнув на нем. Или нажав кнопку Process SVF file.
Вот в принципе и все. Если вывод внизу окна не показал ошибок значит ваш чип прошит должным образом, в случае ошибок, проверяем пайку, играем со значением CLK, пробуем прошивать svf с отмеченной галкой single step чтобы определить на каком этапе ошибка.
Отмечу что даже сами авторы называют свой софт недороботанным мусором, с кучей багов который они писали на коленке. так что отнесемся с пониманием к возможным сбоям в работе.