Привет Хабр. Мы хотим вам немного рассказать про один интересный недавний ремонт, а так-же свой опыт и инструкцию скачивания прошивки с ПЛИС ALTERA MAX.
Началось все с прибора Fluorophos FLM200 – прибор для проверки качества пастеризации молока.
Прибор к нам попал с другого ремонта, в котором ребята не смогли разобраться с неработающим дисплеем. Текст он не отображал, а просто моргал раз в секунду курсором (не знаю, уместно ли прикреплять фото/видео абсолютно каждого шага повествования, но фоток и видосов у меня наверное не хватит), при этом сам прибор прекрасно функционировал и без дисплея.
Ниже фото самого снятого дисплея:
Как раз таки слева на второй фотографии мы видим ПЛИС Altera EPM3064, на который у нас и упало главное подозрение. Мы доблестно решили его поменять, заказали новый чип, и далее будет небольшая инструкция по тому, как слить прошивку с Altera ПЛИС, этот метод проверяли на MAX3000 и на MAX7000.
Начнем с программатора. Нужен будет комп с LPT. Шнурки LPT USB (пример будет снизу) тут не покатят, это история для принтеров.

Схема программатора (брал от сюда https://www.rlocman.ru/shem/schematics.html?di=41195&srsltid=AfmBOopvB0MA0Xn95Lhua1sqGRYcjDbUFrGnJyGR_p9R32yeopop-F9V )
DB25 + Витая пара, и продолжаем продолжать.
Спаяв невероятно сложный программатор и подпаявшись к ПЛИС, мы переходим к подготовке нашего ПК (или ноутбука в моем случае). Покупаем😈 и качаем MAX+PLUS2 и устанавливаем драйвер по инструкции (родной ссылки с форума radiokot я найти не смог):
Теперь пойдем поэтапно:
-
Создаем проект Text Editor file. File -> New -> Выбираем Text Editor file
-
Выбираем проект как активный. File -> Project -> Set Project to Current File
-
Assign -> Device . Выбираем свой ПЛИС
-
Пишем минимальный код, чтобы его скомпилировать. Мой пример:
SUBDESIGN untitled2 – нужно заменить на название своего проекта.
Компилим в File->Project->Save Compile.
5. Переходим в программирование.
Теперь у нас доступна кнопка Examine
Она нам и нужна, теперь ПЛИС->ByteBlaster->PC и жамкаем её. В независимости от того, стоял Security Bit при прошивке или нет, что-то скачаться должно в любом случае, и Programmer нам напишет, что все прошло успешно!
6. Долгожданный файлик мы можем сохранить File->Save programming data as
Файл должен быть расширения .pof
Теперь же, чтобы проверить результат, мы должны глянуть, что мы накачали с ПЛИСа, я использую WINHEX.
Пример залоченного ПЛИС, все в FF :
А теперь пример удачно загруженной программы
Думаю, что с залитием прошивки не должно возникнуть вопросов, но кратко, находясь в Programmer, File->Select programming data, выбираем pof file и Program
Сами проворачивали все на старом ноутбуке Toshiba с LPT портом и Windows XP. Метод проверен на EPM3064ATC44 и EPM7128STC100. Ничего нового тут в целом описано не было, все это давно кусками лежит на разных форумах, я просто собрал в кучу)
Так чтозж там с приборчиком и дисплеем то?
Замена ПЛИС не дала абсолютно ничего. Шина данных, приходящей с материнской платы была жива и кидала данные о выводе дисплею, ниже пример с ПО анализатора логики:
И на этом этапе мы не нашли варианта лучше, чем переделать всю логическую часть дисплея) Ну действительно не нашли. Вариантов как для нас больше и не оставалось, мы нашли еще один такой подобный девайс, который нам вежливо разрешили поковырять, а там дисплей другой ревизии, без ПЛИС. Вообщем-то все грустно, но мы ребята непростые, и у мы уже видели Arduino Nano на месте того родных ПЛИС и МК (может быть ее видел только я).
И вот далее последовали два интересных выходных ковыряния этого дисплея и попыток на него что-либо вывести:
Два драйвера на символ и один на колонку. План капкан. Спустя 6 часов первые результаты)
И финальный результат:

Кто имел дело с таким прибором может заметить различие в шрифте, но…
Можно, а зачем?
Итог, все работает, заказчик доволен, и я доволен, потому что весьма интересно провел выходные, программируя эту историю)
Статья на мой взгляд получилась и так довольно большая, не думаю, что уместно здесь еще рассказывать про процесс написания прошивки на ардуино, хотя это тоже на мой взгляд интересный опыт, но чуть что вторую часть никто не отменял)
Так-же мы оставили на память пасхалку на приборе, при запуске на дисплей на 2 секунды выводится сначала название нашей организации YSL Systems. Кстати да, мы компания YSL Systems, и мы делаем много чего интересного, можно почитать тут.
Внимание!
Спасибо за внимание!
ссылка на оригинал статьи https://habr.com/ru/articles/1062848/