Важная информация

User Tag List

Страница 1 из 14 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 138

Тема: MagicSound для Aleste 520

  1. #1
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb MagicSound для Aleste 520

    Тема будет посвящена звукой плате 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
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	LowPassFilter.jpg 
Просмотров:	166 
Размер:	21.3 Кб 
ID:	62405   Нажмите на изображение для увеличения. 

Название:	LowPassFilterAC.PNG 
Просмотров:	126 
Размер:	17.2 Кб 
ID:	62403  
    Последний раз редактировалось Sherlock; 05.10.2017 в 19:13.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Решение номиналов R33 и R34

    Из документации на DAC следует что выходное напряжение зависит от Vref (тоесть разницы потенциалов на выводах 10,11 DAC ) и Rload (R33,R34).

    Нажмите на изображение для увеличения. 

Название:	Capture.jpg 
Просмотров:	199 
Размер:	19.7 Кб 
ID:	62416

    По схеме Vref = 2.5V (примерно так как реальность разочаровывает)
    Получается что для того чтобы при значении A (входа DAC) раном 128 (половина диапазона) на выходе было 2.5V (потенциал GND2). Сопротивление RL = ((Vo - Vs) * Rref * 16) / (Vref * 128) = (2.5 * 3100 * 16) / (2.5 * 128) = 387.5 ом.

    Сомневаюсь в том что R32 необходим. Но об этом в следующем посте.

    Итог: R33 и R34 могут быть быть 387.5 ом

    Достаточно поставить с точностью ближайший имеющийся. Так как есть потенциометр R36
    Последний раз редактировалось Sherlock; 04.10.2017 в 16:30.

  4. #3
    Member Аватар для Patison
    Регистрация
    03.02.2017
    Адрес
    с. Троицкое, Омская обл.
    Сообщений
    105
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наши подтягиваются на огонек!!!
    Приветствую, Валерий. Надеюсь, теперь ты про Aleste и MagicSound полностью прояснишь ситуацию.

  5. #4
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ЦАП громкости и номинал R32

    Не совсем понимаю логику R32. Очевидно был найден опытным путем. Но сегодня, на мой взляд, стартовая точка для экперимента могла быть такой:

    1) R25..R30 = 32K..1K (каждый резистор х2 раза болше соседа) минимальное сумарное сопротивление такого DAC сэмла (DACS) равно 500ом. Тогда R32 скорее должен быть 250ом (в два раза меньше).
    2) На мой взляд R32 должен быть между Z1 и GND2. (в настоящий момент он между Z1 и D21/16.)

    Рекмендую, сначала спаять плату некапитально, запустить, подобрать номиналы. Затем собрать красиво.

    Смысл GND2 в том, чтобы обойтись однополярным питанием. Если все сделано правильно то в момент когда DACS имеет значение 128 (половина максимума) на его выходе должен быть уровень GND2 (2.5V) формируемый выпрямителем на стабилитроне.

    Еще о том почему R32 может быть подключен "не туда". Начать с того что DACS формирует токи. А изменение нагрузки DACS путем изменения сопротивления громкостного DACV, влияет на результат DACS. Возможно изменение точки R32 компенсировало проблему. Точней сказать не могу. Экспериментируйте! "Только смелым покоряются моря"

    P.S. Если за номинал R30 испольовать 2К, тогда R32 будет 500ом. Увеличение сопротивления позволяет уменьшить влияние DACV на DACS. Но при этом уменьшает токи заряда емкостей в ФНЧ.

    Жаль на фото платы не видно хотябы одного номинала резистора DACs или R32.
    Последний раз редактировалось Sherlock; 04.10.2017 в 17:19.

  6. #5
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цепочка C2 R4

    Формирует импульс записи в память сэмпла D7-D8. На входе сингнал /IOWR от DMA. В момент перехода /IOWR в 1 триггер D25.2 формирует импульс записи в память.

    DMA формирует достаточной длинный сигнал записи, достаточный чтобы записывать в память платы. Однако на протяжении этого импулься, особенно в начале может быть момент времени, в котором значение шины данных не определено. Например происходит выборка данных из памяти и уровни на шине данных еще не установились. Но дело в том что память платы является регистром-защелкой и пропускает на выход все что на входе пока сигнал записи равен нулю. Таким образом если записывать в память сигналом /IOWR на выходе памяти могут образоваться невалидные данные, которые в последствии заменятся на верные, но этот короткий миг будет влиять на результат DAC. Соотвественно запись в память карты должна быть только по переднему фронту /IOWR, а для этого достаточно сформировать короткий импульс записи по переднему фронту /IOWR.

    Минимальное время записи в D7-D8 примерно 15-25ns. Исходя из этого, считаю, резистор R4 должен быть 500ом. Тогд при различных емкостях С2 будут формироваться импульсы следующих длин:
    Код:
     20pf ->  25ns
     33pf ->  30ns
     47pf ->  38ns
     68pf ->  49ns
    100pf ->  65ns
    200pf -> 120ns
    Лучше начать с 33pf, затем проверить осцилограмму на шине адреса и данных памяти вместе с сигналом записи в память. Убедиться что не требуется большей длины. Возможно наоборот потребуется использовать меньшую длину (но это врядли)

    Не правильное значение цепочки может вызвать отсутсвие звука или искаженный звук, но не может повлиять на работоспосомность DMA обмена или программы которая воспроизводит музыку.

    - - - Добавлено - - -

    О режиме по постоянному току ФНЧ

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

    1) До сих пор мной был рассотрен вариант при котором половина максимално возможного значеня сэмпла (назову S/2) была равна половине 5 вольт. То есть сэмпл со значением 128 имеет напряжение 2.5 вольта. Для этого R33 и R34 равны 387.5 ома. И вот к чему это приводит: На входе ФНЧ 2.5 вольта, тогда на эмитере VT3 будет 1.8 вольт, а на эмитере VT7 будет 1.1 вольта. Это достаточно для формирования амплитуды 500мв.

    2) Алтернативно изменением резистора R33-R34 можно выставить S/2 равное 3/4 от 5 в. Тоесть 3.75 вольта. Тогда и VD3 должен быть на 3.75 вольта.
    Тогда на входе ФНЧ будет 3.75, на эмитере VT3 будет 3.05, а на эмитере VT7 будет 2.3 вольта. Лично мне это нравится больше.

    В этом случае DAC формирует значения лишь от 5 до 2.5 вольт. Но это не имеет значения ибо на выходе требуется гораздо меньше. Амплитуда результата определяется отношением R32 к R25..R30

    Фактически R32 определяет мыксимальную выходную амплитуду сигнала для выранного набора резисторов R25..R30

    И еще... вероятно R42-R43 вообще не нужны.

    - - - Добавлено - - -

    Это интересно.

    Текстовый редактор PowerWriter, написаный на Aleste имел режим при котором скролирование фрагментов изображения производилось с помощью DMA на плате MagicSound. Это давало заметное, ощутимое, хоть и не большое ускорение. Примерно плюс 50%
    Последний раз редактировалось Ewgeny7; 07.10.2017 в 18:18.

  7. #6
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цепочка R3,С1 и сигнал READY для DMA

    DMA конроллер находится в режиме ожидания пока сигнал READY на входе равен нулю.

    Одновибратор на тригере режиме ожидания находится в состоянии 1, а значит на его инвесном выходе и входе READY на DMA нулевой уровень. Срабатывая одновибратор формирует единичный импульс длиной RxC, сообщающий DMA о завершении транзакции.

    Импульс READY* для одновибратора формируется логическим AND из двух сигалов: /DIS, READY

    Очевидно первый X1.B29 означает: при 0 уровне идет доступ к видеопамяти контроллером CRT. При 1-ом уровне, идет доспуп CPU или DMA.

    Не удалось проследить на схеме Aleste источник сигнала READY на разьеме X1.A20. Если кто знает сообщите
    Возможно, вероятней всего, это сигнал /WAIT на процессоре. Этот сигнал равен 1 каждый нечетный случай когда RAS равен 0.

    Код:
    ALESTE
    XATL   ГLГLГLГLГLГLГLГLГLГLГLГLГLГLГLГL  
    8M     __--__--__--__--__--__--__--__--
    4M     ____----____----____----____----
    2M     ________--------________--------
    1M     ________________----------------
    VCLK   ________--------________--------
    RAS    --____----____----____----____-- DELAY 4M 
    CAS    ----____----____----____----____ DELAY RAS
    /WAIT  __________----____________----__
    
    MAGIC SOUND
    READY* __________----____________----__
    READY  __________--------________------
                    t = R * C
    Если это верно тогда READY равный 1 означает процесс передачи данных из памяти процессору.

    Зачем вообще нужен одновибратор?

    Существуют две возможности. Сделать импулсь короче чем READY, или сделть длинней. Вероятне вторая версия. Тогда небходимо удлиннить импульс (скажем до периода RAS).

    Частота сигнала RAS равна 2мгц или 4мгц в зависимости от режима графики. Максимально возможный Период 0.5us.

    Вывод R1,C3 -> 500om, 1nF
    Последний раз редактировалось Sherlock; 05.10.2017 в 20:43.

  8. #7
    Master
    Регистрация
    10.02.2014
    Адрес
    г. Тула
    Сообщений
    538
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sherlock Посмотреть сообщение
    Не удалось проследить на схеме Aleste источник сигнала READY на разьеме X1.A20. Если кто знает сообщите
    Возможно, вероятней всего, это сигнал /WAIT на процессоре.
    Да, в качестве сигнала READY используется сигнал /WAIT на процессоре. Это видно по сохранившимся фоткам печатных плат в интернете. На разьем X1.A20 кинут проводок с сигнала /WAIT процессора.

  9. #8
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дмитрий, спасибо. Это логично. Думаю у вас теперь есть все что нужно. Если будут вопросы пишите. Возможно в реальности, что то из выше перечисленного потребует корректировки. По сути сегодня я просто провожу reverse engineering сделанного 25 лет назад.

    P.S. У меня было предположение что DAC громкости был какой то не стандартный, который в совокупности с внутренним устройством DAC делал логарифмическую шкалу. Но сегодня как не кручу ничего кроме обычного resistor ladder не выходит. Пробуйте. Если не понравятся огибающие громкости, придумем что нибудь.

    P.S. Фойлы печатной платы в первом посте

  10. #9
    Master
    Регистрация
    10.02.2014
    Адрес
    г. Тула
    Сообщений
    538
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Валерий, спасибо за такое подробное описание MagicSound и помощь в восстановлении номиналов деталей. Теперь то с такой информацией будет намного проще собрать платку За файлы печатной платы отдельное спасибо!!! это я так понял печатка оригинальной карточки? в какой программе можно открыть и посмотреть файлы? может кто поможет из них сделать гербер файлы для заказа платки?

  11. #10
    Activist Аватар для Sherlock
    Регистрация
    03.10.2017
    Адрес
    г. Санкт-Петербург
    Сообщений
    217
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Дмитрий2012 Посмотреть сообщение
    Валерий, спасибо за такое подробное описание MagicSound и помощь в восстановлении номиналов деталей. Теперь то с такой информацией будет намного проще собрать платку За файлы печатной платы отдельное спасибо!!! это я так понял печатка оригинальной карточки? в какой программе можно открыть и посмотреть файлы? может кто поможет из них сделать гербер файлы для заказа платки?
    Да, файлы оригинальные. PCAD 4.5 кажется. Но насколько они (файлы) полезны или нет я не знаю.

Страница 1 из 14 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Компьютер "Aleste 520EX"
    от Sayman в разделе Разное
    Ответов: 513
    Последнее: 03.08.2023, 18:46
  2. Aleste 520EX в корпус УКНЦ
    от Павел Рябцов в разделе Разное
    Ответов: 178
    Последнее: 28.05.2021, 11:06
  3. Куплю компьютер Aleste 520EX (Алеста)
    от Nickolas в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 23.10.2009, 05:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •