Скачивание прошивки с ПЛИС Altera MAX, ну и немного про ремонт

от автора

Привет Хабр. Мы хотим вам немного рассказать про один интересный недавний ремонт, а так-же свой опыт и инструкцию скачивания прошивки с ПЛИС ALTERA MAX.

Началось все с прибора Fluorophos FLM200 – прибор для проверки качества пастеризации молока.

Фото прибора Fluorophos FLM200 (уже немного разобраного)

Фото прибора 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 я найти не смог):

Инструкция установки драйвера

Инструкция установки драйвера

Теперь пойдем поэтапно:

  1. Создаем проект Text Editor file. File -> New -> Выбираем Text Editor file

  2. Выбираем проект как активный. File -> Project -> Set Project to Current File

  3. Assign -> Device . Выбираем свой ПЛИС

  4. Пишем минимальный код, чтобы его скомпилировать. Мой пример:

Пример кода для комплиляции

Пример кода для комплиляции

SUBDESIGN untitled2 – нужно заменить на название своего проекта.

Компилим в File->Project->Save Compile.

Компиляция завершена успешно

Компиляция завершена успешно

5. Переходим в программирование.

Вид кнопки, если кто-то не найдет

Вид кнопки, если кто-то не найдет

Теперь у нас доступна кнопка Examine

Окно Programmer

Окно Programmer

Она нам и нужна, теперь ПЛИС->ByteBlaster->PC и жамкаем её. В независимости от того, стоял Security Bit при прошивке или нет, что-то скачаться должно в любом случае, и Programmer нам напишет, что все прошло успешно!

6. Долгожданный файлик мы можем сохранить File->Save programming data as
Файл должен быть расширения .pof


Теперь же, чтобы проверить результат, мы должны глянуть, что мы накачали с ПЛИСа, я использую WINHEX.

Пример залоченного ПЛИС, все в FF :

Security bit установлен

Security bit установлен

А теперь пример удачно загруженной программы

Security bit не установлен. Программа у нас)

Security bit не установлен. Программа у нас)

Думаю, что с залитием прошивки не должно возникнуть вопросов, но кратко, находясь в Programmer, File->Select programming data, выбираем pof file и Program

Сами проворачивали все на старом ноутбуке Toshiba с LPT портом и Windows XP. Метод проверен на EPM3064ATC44 и EPM7128STC100. Ничего нового тут в целом описано не было, все это давно кусками лежит на разных форумах, я просто собрал в кучу)


Так чтозж там с приборчиком и дисплеем то?

Замена ПЛИС не дала абсолютно ничего. Шина данных, приходящей с материнской платы была жива и кидала данные о выводе дисплею, ниже пример с ПО анализатора логики:

Тут вроде он пишет “Standby   15”

Тут вроде он пишет “Standby   15”

И на этом этапе мы не нашли варианта лучше, чем переделать всю логическую часть дисплея) Ну действительно не нашли. Вариантов как для нас больше и не оставалось, мы нашли еще один такой подобный девайс, который нам вежливо разрешили поковырять, а там дисплей другой ревизии, без ПЛИС. Вообщем-то все грустно, но мы ребята непростые, и у мы уже видели Arduino Nano на месте того родных ПЛИС и МК (может быть ее видел только я).

И вот далее последовали два интересных выходных ковыряния этого дисплея и попыток на него что-либо вывести:

Тут только успел припаяться к драйверам, чтобы начать изучать их роль в схеме

Тут только успел припаяться к драйверам, чтобы начать изучать их роль в схеме

Два драйвера на символ и один на колонку. План капкан. Спустя 6 часов первые результаты)

Тут дисплею питания не хватает немного)

Тут дисплею питания не хватает немного)

И финальный результат:

Новая плата уже в приборе

Новая плата уже в приборе

Кто имел дело с таким прибором может заметить различие в шрифте, но…

Можно, а зачем?

Итог, все работает, заказчик доволен, и я доволен, потому что весьма интересно провел выходные, программируя эту историю)

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

Так-же мы оставили на память пасхалку на приборе, при запуске на дисплей на 2 секунды выводится сначала название нашей организации YSL Systems. Кстати да, мы компания YSL Systems, и мы делаем много чего интересного, можно почитать тут.

Внимание!

Спасибо за внимание!

ссылка на оригинал статьи https://habr.com/ru/articles/1062848/