EdigE
← ЛЕНТА

Старый Philips PM5139 научили новым сигналам, сначала запустив его 8051 в эмуляторе

У измерительного генератора есть два тела: аналоговый тракт, который формирует напряжение на BNC-разъёме, и маленький контроллер, который решает, какую ручку пользователь повернул и какие узлы надо переключить. В Philips PM5139 этот второй слой оказался гораздо доступнее первого. Два 64-KiB дампа EPROM позволили заглянуть в прибор через его 8051, хотя полного service manual для модели почти нет.

Прошивка как стенд для самого прибора

Проект doctormord не остановился на дизассемблировании. Оригинальная прошивка исполняется в Python- и JavaScript-эмуляторах 8051; исследователь вызывает подпрограммы с контролируемыми входами и смотрит, что меняется в RAM и какие телеграммы уходят по C-bus к аналоговым микросхемам. Так были разобраны пути установки частоты, амплитуды и смещения, режимы AM/FM, sweep, burst и symmetry. Эмулятор превратил старый EPROM в стенд, где гипотезу можно проверить без бесконечного цикла «стереть ПЗУ — прошить — включить прибор — ловить сигнал осциллографом».

У цифрового пульта нашлась вполне конкретная физика. Внутри описаны PCB80C652/8051, EPROM 27512, I²C-периферия, LCD-драйвер PCF8576, NVRAM PCF8570 и EEPROM X28C64, хранящая пользовательские формы. Сам PM5139 штатно работает от 0.1 mHz до 20 MHz. Контроллер не рисует синус самостоятельно: он координирует память, интерфейсы и аналоговые узлы, поэтому трассировка его решений даёт карту прибора даже при пробелах в схеме.

Где на самом деле появились новые формы

doctormord / Philips-PM-5139-5138A-5136-Firmware-Project

Исправленная V2.0 меняет две встроенные ROM-таблицы: одна стала логарифмическим chirp, другая очищена и вычислена заново. Скрипт сборки также правит идентификационную строку, индикацию версии и контрольную сумму. Шесть действительно новых ARB-форм лежат в отдельном образе для X28C64: sinc, затухающий звон с Q около 6, ECG, 16-ступенчатая лестница, выпрямленный синус и пятитоновый multitone. Здесь проходит важная граница: один ROM V2.0 не добавляет памяти для новых сигналов; для них требуется прошить отдельную EEPROM D310.

Автор сообщает, что V2.0 запущена на одном реальном PM5139, а шесть слотов работают. Это сильнее красивого дизассемблера, но ещё не полноценный отчёт о качестве выхода: независимых осциллограмм, спектров и измерений THD для модифицированных форм нет. Сам эмулятор не моделирует waveform RAM и аналоговый тракт, поэтому порядок байтов, режим записи и уровень выхода приходилось сверять на железе.

Что эмулятор ещё не способен доказать

Отдельная opt-in сборка умеет проигрывать мелодию первого уровня DOOM. Этот бонус хорошо показывает масштаб вмешательства: прибор сохранил свою измерительную роль, но его тридцатилетний контроллер теперь исполняет код, которого на заводе Philips для него не существовало. Для ремонта и расширения старой лабораторной техники вывод полезнее мелодии: сначала можно заставить микроконтроллер объяснить свои действия, и лишь потом идти в плотный лес аналоговых переключателей, ЦАП и формирующих каскадов.