Перевод этой страницы:
ru

Low-frequency counter (LFO) или Frame Counter - это специальный таймер внутри APU, который по определению работает на сравнительно низкой частоте, приближенной к кадровой частоте PPU.

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

Возможности LFO

Сейчас мы разберём схему (не помню какой по счёту раз :-):-):-) )

Программная модель

Управляется LFO регистром 4017 (write-only):

  • 4017.6 : маскирует прерывание от LFO (1-LFO interrupt disable, 0-enable)
  • 4017.7 : Запись в этот бит выбирает режим NTSC/PAL (0/1).

Разряд регистра 4015.6 содержит статус прерывания. Как очищается статус прерывания пока хз.

Аппаратный интерфейс

lfo_hwi.jpg

  • PHI: на самом деле представлен двумя линиями PHI1/PHI2, те самые, которые выходят наружу из ядра 6502. PHI1 - это низкий уровень CLK, а PHI2 - высокий.
  • ACLK: также на самом деле 2 линии, соответствующие двум полутактам: /ACLK - соответствует PHI1, ACLK - соответствует PHI2.
  • /R4015 и W4017 : приходят из селектора регистров при чтении 4015 и записи в 4017 регистры соответственно
  • D6 и D7 : 6й и 7й биты внутренней шины данных
  • /LFO1 и /LFO2 : выходные низкочастотные сигналы
  • LFOINT : прерывание от LFO
  • RES : внутренний сигнал сброса (получается из контакта /RES)

Схема генерации ACLK

Изначально схема предполагалась такой:

lfo_aclk_circuit_1.jpg

То есть во время сброса (/RES=0) все внутренние схемы APU (кроме ядра 6502) бездействуют (ACLK не тактируется). Но по какой-то причине от этого решения отказались и добавили небольшую заплаточку (скорее всего потому что внутренний сигнал RES идёт в прямой логике, а для задуманной схемы нужна инверсная, такая же, как на контакте /RES):

apu_aclk_reset_fix.jpg

Которая всегда игнорирует факт сброса и схема работает в обычном режиме:

/ACLK = PHI1
ACLK = PHI2

lfo_aclk_circuit.jpg

Два D-latch которые присутствуют в схеме возможно предполагалось использовать как дополнительный делитель для тактового сигнала ACLK, от которого также отказались. Таким образом все тональные генераторы и прочие устройства APU работают на тактовой частоте ядра 6502 (PHI).

apu/lfo.txt · Последние изменения: 2014/05/31 21:03 — org
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki