nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 13:29



Reply to topic  [ 110 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 8  Next
Advanced MicroMachine на AT91RM9200 
Author Message
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
Рекомендую сразу закладывать VS1053B-L. Тогда точно мечты сбудутся!


15 Oct 2007 00:55
Profile
Junior
User avatar

Joined: 14 Oct 2007 19:46
Posts: 7
Location: Russia
Reply with quote
Post 
Different wrote:
Рекомендую сразу закладывать VS1053B-L. Тогда точно мечты сбудутся!


Ну так какая разница - ножка DREQ есть и там и там. Вопрос остаётся в силе.


15 Oct 2007 16:07
Profile
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
Так ведь есть 4 свободных GPIO. Запрограммировать любую на прерывание - и все. Ведь внутри полноценный DSP.


15 Oct 2007 19:45
Profile
Junior
User avatar

Joined: 14 Oct 2007 19:46
Posts: 7
Location: Russia
Reply with quote
Post 
Different wrote:
Так ведь есть 4 свободных GPIO. Запрограммировать любую на прерывание - и все. Ведь внутри полноценный DSP.


в смысле запрограммировать? разве можно VS'ке указать, чтобы она зануляла GPIO по окончанию передачи блока?


15 Oct 2007 20:22
Profile
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
А для чего ешё GPIO существуют? :)
Пользовательский код можно подгружать с внешней EEPROM во внутреннюю RAM и выполнять. Типовой плеер с демо платы так и сделан.


16 Oct 2007 01:38
Profile
Junior
User avatar

Joined: 14 Oct 2007 19:46
Posts: 7
Location: Russia
Reply with quote
Post 
Different wrote:
А для чего ешё GPIO существуют? :)
Пользовательский код можно подгружать с внешней EEPROM во внутреннюю RAM и выполнять. Типовой плеер с демо платы так и сделан.


вы что-то путаете. GPIO нужны, чтоб режимы работы микросхемы выбирать(дань совместимости с предыдущими версиями). Тем более попробуйте встрять в исходный код мп3-декодера и добавить туда код дергания ножек GPIO по окончанию пересылки блока


16 Oct 2007 16:39
Profile
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
Эти выводы могут работать и как выходы, что и сделано в версии плеера. На них даже SD-карта висит и EEPROM.


16 Oct 2007 19:53
Profile
Junior
User avatar

Joined: 14 Oct 2007 19:46
Posts: 7
Location: Russia
Reply with quote
Post 
Different wrote:
Эти выводы могут работать и как выходы, что и сделано в версии плеера. На них даже SD-карта висит и EEPROM.


о каком плеере речь? ссылка? желательно в том месте, где сказано, что GPIO можно программировать


16 Oct 2007 21:06
Profile
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
egypt wrote:
о каком плеере речь? ссылка? желательно в том месте, где сказано, что GPIO можно программировать

Простейший плеер: http://www.vlsi.fi/player_vs10xx_proto/player.shtml
Там же и описалово нечеловеческих экспериментов над декодером. :)
Там кстати, даже 8 GPIO.


17 Oct 2007 01:26
Profile
Junior
User avatar

Joined: 14 Oct 2007 19:46
Posts: 7
Location: Russia
Reply with quote
Post 
всёравно мутно это всё - программировать вручную GPIO
ходят слухи, что можно через DREQ сделать прерывание


22 Oct 2007 20:42
Profile
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
egypt wrote:
ходят слухи, что можно через DREQ сделать прерывание

Не понял. Это как через DREQ? DREQ - это выход VS-ки и тем более не с открытым коллектором. На кого прерывание нужно подавать, на м/к или VS-ку?


23 Oct 2007 10:15
Profile
Junior
User avatar

Joined: 14 Oct 2007 19:46
Posts: 7
Location: Russia
Reply with quote
Post 
с ножки DREQ сигнал поступает на ножку контроллера
VS'ка посылает сигнал прерывания, а контроллер - принимает


23 Oct 2007 22:12
Profile
Doomed

Joined: 18 Feb 2007 11:40
Posts: 408
Reply with quote
Post 
egypt wrote:
с ножки DREQ сигнал поступает на ножку контроллера
VS'ка посылает сигнал прерывания, а контроллер - принимает

Так это стандартный режим работы VS-ки. Посмотрите диаграммы сигналов.


24 Oct 2007 12:10
Profile
Banned

Joined: 12 Oct 2006 16:44
Posts: 608
Reply with quote
Post 
    01.09.07 Переделал отладочную плату для OLED дисплея. Поставил разьём OMRON 30pin
    04.09.07 IRQ от YMF721 завёл на IRQ0, так как у FIQ не меняется приоритет.
    07.09.07 Написаны наброски IMF-декодера.
    08.09.07 Заменил LM358 на NE5532. Хрипота в наушниках исчезла. Подобрал оптимальное усиление для YMF721 и VS1003.
    Задействовал IRQ6 для VS1003 вместо прерывания системного таймера. Проверил совместно с IRQ0 YMF721.
    09.09.07 Заставил одновременно работать: IRQ0(OPL), IRQ6(MP3), прерывание системного таймера(каждую 1с)
    и отрисовку графики в цикле.
    14.09.07 Запихал MIDI-декодер в прерывание таймера на IBM PC (усовершенствовал декодер).
    15.09.07 Навешал на прерывание таймера MIDI-композицию для YMF721. Сравнивал звучание миди на VS1003 и YMF721
    20.09.07 Пришла SRAM 1M x 16 CY7C1061AV33-10ZXI
    22.09.07 Сграбил ROM от YMF721 (с помощью MMC, AT91RM9200 и IBM PC). Семплы 8bit и 12bit Signed
    Сделал и собрал плату с SRAM 1M x 16 CY7C1061AV33-10ZXI
    23.09.07 Успешно подключена SRAM 1M x 16
    24.09.07 Успешно пройдены тесты SRAM 1M x 16 по всем адресам
    26.09.07 Подключил через транзисторный ключ подтягивающий резистор к USB. Ключ управляется сигналом сброса супервизора.
    Это позволяет избегать в Винде неудачное определение USB (видится после отработки супервизора питания)
    04.10.07 Наконец-то откопал причину зависания МикроМашины при многократном включении-выключении мощных потребителей в
    тройник, от которого берётся питание на МикроМашину(через комп от USB 5V).
    Ножка ~WAIT у YMF721 залипает навеки в 0.
    07.10.07 Устранил три причины "зависния" YMF721:
    а) Статический разряд через при подсоединении наушников (колонок). Спасает резистор 10 Ом + кондёр 10нФ на землю.
    б) Кратковременные импульсные помехи(дельта-импульсы) в цепях питания, USB, COM-порта и
    УНЧ (если включены активные колонки). Ферритовые бусинки поглощают эти выбросы.
    в) Перекос потенциала земли (напряжение на корпусе компа 110В) с возникновением градиента потенциала и
    его скачки при многократном подключении-отключении мощных потребителей.
    Подключение общих выводов USB-шнура, COM-шнура и наушников(колонок) в ОДНОЙ точке.
    Все методы устранения трёх причин применены, исключение хотя-бы одного из них ведёт к
    "повисанию" YMF721 или VS1003
    15.10.07 Вместо клавиатуры 3x4 решил использовать Joystick от SEGA MD. Разобрался с ним и успешно подключил
    16.10.07 Освоил Таймер-Счётчик 0 в режиме генерации сигнала. Повешал опрос джойстика на прерывание по
    переполнению Таймера-Счётчика 0, так как мультиплексирование на прерывание от PIO завязать нельзя
    19.10.07 Разобрался, почему шумел усилитель на NE5532. Резисторы в обратной связи выбраны неверно (очень большие)
    Кроме этого, усилитель был чувствителен к наводкам. Коэффициент усиления по напряжению определялся некорректно
    из-за маленького входного сопротивления NE5532 (30 кОм). Уменьшил резисторы на порядок. Оказалось, что
    усиления по напряжению не нужно - пришлось ослабить сигналы с выходов VS1003 и YAC516. Подобрал суммирующие
    резисторы и резисторы в обратной связи усилителя. Шумы и отсечка сигнала по входу и выходу исчезли
    21.10.07 Попытка расширить динамический диапазон усилителя звука закончилась неудачно.
    Из-за того, что MPU в YMF721 имеет малый уровень сигнала, требуется большое усиление, которое
    в свою очередь ведёт к искажениям сигнала VS1003 и OPL. Попытка применить более высокое напряжение питания
    на усилитель - 5V от USB закончилась провалом - требуется RC-фильтр для фильтрации USB-шных 5V,
    фильтр вносит падение напряжения - в итоге снова сужение динамического диапазона и возникновение искажений.
    DC/DC преобразователь на 12V применять нельзя - слишком много шумов вносит в аудиотракт, фильтрование которых
    внесёт падение напряжения питания - значит возникновению искажений. Изменил схемотехнику усилителя - схему
    усиления по напряжению с ООС заменил на повторитель (единичное усиление по напряжению). Из-за ограничивающих
    встречно-параллельных диодов на входе NE5532 сигнал режется на входе (а это снова искажения).
    Пробовал снова вернуться к LM358 - очень сильно хрипит в наушниках, особенно когда входной сигнал слабый.
    Вывод: обе микросхемы (LM358 и NE5532) совершенно не годятся для предусилителя звука.
    Понял, почему подглючивает VS1003 при касании её земли - она не терпит на своей земле импульсных помех.
    22.10.07 Купил NJM4580 и дорогостоящий OPA2134. NJM4580 - хрипит, если уровень сигнала на выходе максимален.
    OPA2134 идеально подошёл - малый уровень собственных шумов, слабо прослушиваются шумы YAC516 в режиме
    молчания. При любом уровне сигнала с выходов YAC516 искажений нет, ни на входе, ни на выходе.
    23.10.07 Заменил мелочь на элементы поверхностного монтажа. Стабилитрон Zener 2.7V с ограничивающим резистором плохо
    стабилизирует напряжение для VS1003 - оно скачет от 2.3V до 2.9V, что недопустимо для DSP-ядра.
    Диод SM4007 обеспечил нужное падение напряжения для того, чтобы из 3.3V получить 2.6V-2.7V
    27.10.07 Заменил мелочёвку на SMD-компоненты. Пришёл к выводу, что нужно поставить более мощный Voltage Regulator на 3.3V
    28.10.07 Переразвёл цепи питания и земли. Обнаружил, что общий и земля USB-шнура замыкаются при подключении
    к IBM PC, что мной не учитывалось при разводке земли, которую впоследствии скорректировал.
    29.10.07 Заменил SPX1117M3L-3.3 (грелся до кипятка) на LM1085IS-3.3 (тёплый). Вход стабилизатора на 1.8V подключил
    к 3.3V, чтобы меньше грелся. Для лучшего подавления статических разрядов поставил диодные сборки BAV99
    (на левый и правый каналы аудиовыхода) дополнительно к RC-цепочкам.
    30.10.07 Проанализировал работу Joystick'а в динамике (управление игровым персонажем).
    Замерил токи потребления. Ядро ARM9 и PLL на 200MHz потребляют 0.1A (ток на входе стабилизатора 1.8V),
    вся МикроМашина в целом от USB потребляет 0.28A (ток на входе стабилизатора 3.3V)
    10.11.07 Успешно запустил WaveTable синтезатор YMF721
    17.11.07 Нашёл причину неравномерного воспроизведения MIDI-файлов во времени. В обработчике прерывания нужно отсчитывать
    дельты, а MIDI-композицию играть в основном цикле или в прерывании с более низким приоритетом, чем прерывание
    счёта дельты. Шлифовал схему,поставил SMD-шные ферритовые бусинки. Возле разъёмов USB, COM, Audio оставил мощные


19 Nov 2007 02:47
Profile
Banned

Joined: 12 Oct 2006 16:44
Posts: 608
Reply with quote
Post 
Переделанная плата с дисплеем:
Image

Адресное пространство:
Image

Краткая стр. схема(обновлена):
Image

И наконец, подробная:
http://www.nedopc.org/nedopc/upload/Str_new.rar


19 Nov 2007 02:54
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 110 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 8  Next

Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.