Тема будет посвящена звукой плате MagicSound (MS), и будет полезна тем кто хочет повторить это устройство. Так же, этой ветке хочу собрать всю имеющююся информацию о плате.
Как мне стало известно, и как многие уже заметили, на схемах с сайта aleste520.narod.ru нет номиналов.
Поэтому ко мне обратились с просьбой помочь, востановить номиналы элементов. Что на мой взгляд не так уж и трудно сделать.
Для начала, приведу обще описание устройства.
Aleste 520EX в отличии от ее предшестенника без буквок EX фактически была спроектирована вместе с этой платой. Для этого память компьютера сделали 512КБ. А на разьеме расширения добавили пины прямого доступа ко всей памяти компьютера. Компьютер в режиме MSX использует систему управления памяти известную как mapper (аналог MSX маппера). Для тех кто не в курсе это устройство которое позволяет процессору с 16 битной адресной шиной управлять до 4МБ памяти.
Memory_Mapper
Контроллер DMA (D5) на звуковой плате также имеет 16 битную адресню шину. И также как и процессор он имеет свой mapper (D11, D12). Из за экономии пинов разьема расширения, компьютер и карта используют только 19 битную шину адреса. Что позволяет обеспечивать доступ к 2^19 байт, что и обозначено цифрой 520 в названии компьютера. Теоретически Aleste может быть модифицированна для поддержк 4МБ. На сколько мне известно, ПО Алесты определяет доступный обьем пространсва автоматически. Регистр D16 хранит старшие 8 бит адресов DMA. На первой MS плате стоял DMA 580 серии, у него есть недостаток, он адресуется только к 16Кб памяти. Поэтому в плате для Aleste EX был применет DMA из серии 1810, эта микросхема не имеет такого недостатка. На мультиплексоре D16 собран генератор адреса для маппера, когда к мапперу доступается процессор на маппер поступают адресные линии A0-3, а когда к памяти идет DMA доступ тогда на маппер поступают адреса A14-15 и номер анала NUMBER0-1. На D4 дешивратор доступа к регистрам платы. Остальные микросхемы выполняют связующе утилитарные функции.
Четыре таймерных канала на (D3,D4) генерируют четыре частоты четырех каналов DMA (D5). На каждый импульс, один из каналов DMA передает байт данных из памяти компьютера в память звуковой карты, а затем в DAC. Такое устройство определяет следующее:
1) Размер одного сэмпла равен одному байту. Не меньше и не больше.
2) Если требуется воспроизвести звуковую волну в разы быстрее частоты дискретизации, система не будет "пропускать" не нужные сэмплы, или производить интерполяцию как это делают софтверные проигрыватели. Все сто процентов байтов звуковой волны передадуться на выходной DAC.
3) Выходной DAC должен быть достаточно быстр для того чтобы успевать без потерь воспроизводить весь поток данных.
Память звуковой карты имеет 4 ячейки памяти по одной на каждый канал (D7,D8). Еще 4 ячейки памяти хранят громксть каждого канала (D9,D10). Громкость устанавливается процессором.
Для того чтобы смешать значение сэмплов небходима следующая фуекция: Sout = S1 * V1 + S2 * V2 + S3 * V3 + S4 * V4 Где Sn значение сэмпла, Vn значение громкости.
А для того чтобы сделать это, минимальным числом элеметов можно с несущей частотой Fn, которая примерно в 4 раза большей чем частота дискретизации Fd, делать лишь одну операцию: Sout = Sn * Vn; n = ++n % 4
Частота Fn (см. сигнал D/A0) генерируется одним каналом таймера D4. Делится на 2 триггером D15.1 для получения Fn/2 (сигнал D/A1). Две эти частоты формируют адрес ячейки памяти сэмплов и громкостей. Сэмпл поступает на вход DAC D21, а 6 бит громкости на DAC на D23,D24. Аналоговое произведене обоих DAC конверторов (сигал Z1) поступает на вход мультиплексора D22. Который отправляет сэплы каналов 1,2 в левый канал D22/13, а каналы 3,4 в правый канал D22/3. На выходе мультиплексора стоит ФНЧ задача которого срезать частоты выше 20кгц.
Во время проектирования платы. к сожалению, не было качественных, быстрых, цифронаналоговых преобразователей совместимых с TTL. Поэтому был использован ортодоксалный MECL DAC 1118PA1 (аналог MC10318) Высокоскоростной, высокоточный 8битный ЦАП со скоростью до 25МГц. Устройства серии MECL должны питаться отрицательным напряжением -5 вольт. В MagicSound этот DAC тупо стоит "перевернутым". Его Vss подключент к +5В а его Vcc к "земле". Если желающие захотят спроектировать свою плату (MS) То первое о чем стоит подумать, это заменить этот ЦАП на другой. Во вторую очередь, всю мелочь можно засунуть в небольшую ПЛМ (ПЛИС или что угодно).
Выходной ФНЧ может быть заменен версией на ОУ. Кроме того на плате может быть установлен интегральный усилитель для головных телефонов.
Дополнительные данные я буду прикреплять к этому посту. Если есть вопросы и пожелания обращайтесь. В данный момент времени я не планирую проектировать или собирать Алесту или звуковую плату, просто нет времени. Но если есть такие люди которые готовы этим заняться я помогу консультацией или советом.
Сылки
На CPC wiki есть схема платы с аккуратными и точными ремарками (синим цветом) Magic_Sound_Board
Адреса устройств платы
Код:
Port A10 A9 A8 A5 A3 A2 A1 A0 RW Expl.
FXDX 0 X X 0 X X X X The board selected.
F8DX 0 0 0 0 r r r r RW DMA Controller 8237
rrrr is reg number
D[7..0] Data
F9DX 0 0 1 0 (1) 0 r r -W TIMER 8254 CHANNELS 0,1,2
rr is reg number
D[7..0] Data
F9DY 0 0 1 0 0 (1) r r -W TIMER 8254 CHANNELS 3, and DAC
nn is reg number
D[7..0] Data
FADX 0 1 0 0 X X c c -W VOLUME CONTROL
cc is channel number
D[5..0] Volume
FBDX 0 1 1 0 c c m m -W MAPPER
cc is channel number
mm is mapper's page register
D[5..0] inverted page number
After reset timers do not work until first write to it's regs
After dma end ('tc' signal) the NMI to Z80 generated
Перечень и номиналы дискретных компонентов
Код:
R1,R2,R6 - 100ом // согласовывание импеданса
R3,С1 - 1K, 500om, 1nf // 500us
R4,C2 - 500om, 33pF // 30ns
R5 - 2.2K // pullup
R7 - 4.7K // LED
R8-R23 - 500 om - 1K // желательно потестировать. 1К уменьшит потребление, 500 ом выше быстродействие DAC. На старой фото вижу эти резисторы не запаяны, с этого стоит начинать.
С3 - 220uF
R24 - 4.7K // LED
// Фильтр половины питания (можт быть заменен на MC1403)
R38 - 220ом // для диода 1N5222B
VD3 - 2.5V // Половина питания к примеру 1N5222B (читайте ниже О режиме по постоянному току ФНЧ)
C7 - 10uF или 22uF
// Фильтр питания ФНЧ
VT2 - КТ503А // или аналог
C9 - 50uF
R39 - 10K или 22K
// Фильтр питания
C8 - 220uF
// Фильтр питания DAC
VT1 - КТ503А // или аналог
C4 - 50uF
C5 - 220uF
R31 - 10K или 22K
// DAC громкости
R25-R30 - 1k ... 32k // набор резисторов 1 к двум. При этом R25 самый большой а R30 самый маленький
R32 - 10K // требуется тестирование. Определяет максимальную амплитуду выходного сигнала. Увеличивайте для того чтобы убрать искажения в ФНЧ. (читайте ниже О режиме по постоянному току ФНЧ)
// DAC сэмпла
R33 - 387.5 ом // (читайте ниже О режиме по постоянному току ФНЧ)
R34 - 387.5 ом // ближайший к этому номиналу. точность не существена
R35 - 200ohm
R36 - 3K
R37 - 3.1K
C6 - 0.01uF
// ФНЧ
R42,R43 // скорее всего не нужны
R40,R41,R44,R45,R60,R61 - 10K
R48,R49,R62,R63 - 2.2K
R46,R47 - 100ohm
С10,С11 - 470pF
С12,C13 - 1.5nF // по фото видно что на плате стоит 1nF но 1.5 будет лучше.
C14,C15 - 470pF
C16,C17 - 470pF
C18,C19 - 10..100uF // 10uF, 22uF, 50uF или 100uF ставте по габаритам
Файл печатной платы.
Имеется два файла. Разбирайтесь, что к чему. Отпишитесь в эту ветку о результате
Magic Sound.7z