В предыдущих частях мы начали дизассемблирование на основе только документации к процессору. Однако, хорошо бы посмотреть как программа управления связана с остальной аппаратурой. Для этого вооружимся тестером с пищалкой, платой WD21000, документацией на микросхемы и начнем рисовать схему электрических соединений.
Так как в данном исследовании мне хотелось бы по максимуму использовать операционную систему Linux, то рисовать схему будем в KiCad.
Исходные файлы схемы доступны на github проекта. Там же все страницы схемы в формате pdf.
Сначала, я добавил в схему все известные микросхемы. Каждую на свою отдельную страницу и объединил их всех на странице верхнего уровня вот так:
Далее, самое простое и понятное — это подключение микросхем ПЗУ и ОЗУ к процессору.
Как видно, ПЗУ подключено к CS0#, а ОЗУ к CS1#.
Интересно, а какие еще CS-сигналы используются?
CS2# — WD61C28C, контроллер интерфейса,
CS3# — WD61C13A,
CS4# — AD7775, серво демодулятор,
CS5# — никуда не подключен.
Теперь видно, что микросхема канала чтения SSI32P4904 не подключена через окно памяти, как остальные микросхемы… Открываем документацию и обнаруживаем, что управление каналом осуществляется через последовательный порт! Теперь видно, что единственный последовательный порт 80196NU задействован именно для связи с SSI32P4904.
С цифровой частью схемы многое прояснилось. Аналоговые микросхемы следующие на очереди для изучения. А на горизонте уже показалась схема замены цифровой части на демонстрационную плату с ARM процессором STM32. До новых встреч!