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

User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 63

Тема: Самодельный USB-магнитофон для ретро-компьютера

  1. #41
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Год назад купил музыкальный центр "мини". Есть такие разных фирм, там CD, DVD, USB радио и т.п., короче все есть, есть даже линейный вход с обычного наушникового джека. Ко всему этому он еще и видево может проигрывать, есть тюлпаны для подключения к телику. Ну для чего я это все пишу? Приколитесь, там есть одна дека для кассеты... причем все "мини" этим страдают. Зачем их производители туда лепят? Наверное лишние деки на складах завалялись, но вот такая фишка на полном серьезе. Возможно, спеки и другие хоум компы стали опять популярны и дека совсем теперь нелишняя...

    http://video.wikimart.ru/audio/disc_...0726151945%3As

  2. #42
    Guru Аватар для Totem
    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Клон Посмотреть сообщение
    Год назад купил музыкальный центр "мини". Есть такие разных фирм, там CD, DVD, USB радио и т.п., короче все есть, есть даже линейный вход с обычного наушникового джека. Ко всему этому он еще и видево может проигрывать, есть тюлпаны для подключения к телику. Ну для чего я это все пишу? Приколитесь, там есть одна дека для кассеты... причем все "мини" этим страдают. Зачем их производители туда лепят? Наверное лишние деки на складах завалялись, но вот такая фишка на полном серьезе. Возможно, спеки и другие хоум компы стали опять популярны и дека совсем теперь нелишняя...

    http://video.wikimart.ru/audio/disc_...0726151945%3As
    Если уж совсем припрет настольгировать

    http://www.ebay.com/itm/NEW-Sony-TCM...item414a235ad7
    с друзьями.
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

  3. #43
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Начало экспериментов с модулем USB-HOST V2DIP2-48.

    Сначала посмотрим, как работает модуль при связи через интерфейс UART.
    Для этого подключим его к компьютеру через немного доработанный адаптер USB-UART:



    Для связи используются сигналы RXD, TXD, RTS, CTS, +5V, GND. Перемычка на модуле USB-UART запаяна в положение 3-4 для того, чтобы сигналы UART были размахом 3.3V. Хотя в документации написано, что можно подавать и размахом 5V.

    Небольшая платка около спички - это модуль программатора-отладчика.

    Команды в USB-HOST будем подавать с помощью программы-терминала. Ниже приведены ответы модуля.

    После подключения кабеля от PC к адаптеру USB-UART с подключенным модулем V2DIP2-48 и нажатия кнопки Connect в терминале:

    Ver V2DAP2.0.0-SP1 On-Line:
    Device Detected P2
    No Upgrade
    D:\>


    После подачи команды DIR<ENTER>:

    PDF DIR
    ZXKIT DIR
    VNC2 DIR
    ZX DIR
    MIX DIR
    D:\>

    Скриншот программы-терминала:



    Как видно из этого примера, модуль после включения сам выдает некоторую информацию (версию прошивки, что флешка подключена, что на ней нет файла обновлений). Эту информацию нужно принять, чтобы освободить буфер и потом можно было принимать полезную информацию - ответы на команды или данные с USB FLASH DRIVE.

    Наверно, можно будет подключить модуль и через параллельный интерфейс к Z80? Принцип управления будет аналогичен. Думаю у Z80 хватит аппаратных возможностей для связи с флешкой с помощью таких команд.

    Для подключения нужно выбрать адреса портов для чтения состояния буфера FIFO и сигналов управления чтением и записью.

    После отключения или подключения флешки модуль сообщает об этом, даже если его не спрашивают. Надо будет закладывать логику в программу, чтобы пропускать эти сообщения, чтобы они не мешали приему полезных данных.
    Последний раз редактировалось zx-kit; 27.07.2012 в 21:38.
    "L-256"

  4. #44
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Запись данных на флешку:



    ================================================== ======================
    После подключения кабеля от PC к адаптеру USB-UART с подключенным модулем V2DIP2-48 и включения программы терминала в режиме AutoConnect:

    Ver V2DAP2.0.0-SP1 On-Line:
    Device Detected P2
    No Upgrade
    D:\>

    ================================================== ======================
    DIR [<ENTER> в терминале вставляется автоматически, так как поставлена соответствующая галочка]

    TRASH-~1 DIR
    TMP DIR
    PDF DIR
    ZXKIT DIR
    VNC2 DIR
    ZX DIR
    MIX DIR
    D:\>

    [Перед списком папок и файлов добавилась пустая строка.
    ================================================== ======================
    [Зайдем в папку VNC2:]
    CD VNC2
    D:\> [как видим, в приглашение к вводу не добавилось название папки]
    ================================================== ======================
    [Посмотрим содержимое папки VNC2]
    DIR

    TERMINAL DIR
    V2DAP DIR
    VNC2_1~1.ODT
    D:\>

    [Имена и расширения файлов выдаются большими буквами.
    Длинные имена файлов, как и в MSDOS не отображаются, только 8 символов + 3 символа расширения]
    ================================================== ======================
    [откроем/создадим файл Hello.txt для записи]
    OPW Hello.txt
    D:\>
    ================================================== ======================
    [Перейдем в режим ввода и отображения чисел в символьном виде]
    IPA
    D:\>
    ================================================== ======================
    [Запишем в файл 19 символов]
    WRF 19
    [светодиод на флешке начал мигать]
    Hello ZX World !!![19-й символ #0D вставится автоматически]
    D:\>
    [светодиод на флешке мигать перестал]
    ================================================== ======================
    [Запишем в файл еще 43 символа]
    WRF 43
    [светодиод на флешке не мигает]
    Кто с паяльником сидит - тот паяет ZXkit !
    D:\>
    ================================================== ======================
    [закроем файл]
    CLF Hello.txt
    D:\>
    ================================================== ======================
    [Посмотрим содержимое папки VNC2]
    DIR

    TERMINAL DIR
    V2DAP DIR
    HELLO.TXT
    VNC2_1~1.ODT
    D:\>

    [добавился файл «HELLO.TXT» Имя и расширение файла получилось большими буквами]
    ================================================== ======================
    [Посмотрим содержимое файла]
    RD Hello.txt
    Hello ZX World !!!
    Кто с паяльником сидит - тот паяет ZXkit !
    D:\>

    ================================================== ======================

    Как видим, записывать очень просто. Сначала открываем файл для записи.
    Затем даем команду, в которой указываем число байтов для записи. Потом посылаем эти байты.
    Так повторяем нужно количество раз. В конце закрываем файл.


    Команду DIR давать не обязательно - это я для наглядности использовал.
    Последний раз редактировалось zx-kit; 28.07.2012 в 00:48.
    "L-256"

  5. #45
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию



    Проверка работы в HEX-кодах. Попробуем запись в середину файла:

    --------------------------------------------------------------
    [перейдем в режим коротких HEX команд]
    SCS
    >
    --------------------------------------------------------------
    [В терминале отключим автоматическое добавление 0D
    и включим отображение принятых данных в HEX-виде.
    В строке терминала добавляем $ для HEX-чисел.
    Z80 или микроконтроллер может просто посылать байты]
    --------------------------------------------------------------
    [Откроем для записи файл 1.tmp]
    $09$201.tmp$0D

    3E 0D
    --------------------------------------------------------------
    [Запишем в этот файл 16 байтов в HEX-коде]
    $08$20$00$00$00$10$0D
    [светодиод на флешке начал мигать]
    [числа от 00 до 0F]
    $00$01$02$03$04$05$06$07$08$09$0A$0B$0C$0D$0E$0F
    3E 0D
    [светодиод на флешке мигать перестал]
    --------------------------------------------------------------
    [Теперь установим указатель в файле на позицию +3 от начала файла]
    $28$20$00$00$00$03$0D
    3E 0D
    --------------------------------------------------------------
    [Заменим байты 03 и 04 на AA и BB.
    Это понадобится для записи в начало WAV-файла длины звуковых данных]
    $08$20$00$00$00$02$0D
    $AA$BB
    3E 0D
    --------------------------------------------------------------
    [Закроем файл 1.tmp]
    $0A$201.tmp$0D
    3E 0D
    --------------------------------------------------------------
    [Посмотрим содержимое файла 1.tmp]
    $04$201.tmp$0D
    00 01 02 AA BB 3E 0D
    [Вывод - байты в нужном месте поменялись, но после них все обрезалось
    Значит, после изменения нескольких байтов в середине файла,
    нужно указатель установить на смещение последнего записанного
    байта + 1]
    --------------------------------------------------------------
    [Опять откроем для записи файл 1.tmp]
    $09$201.tmp$0D

    3E 0D
    --------------------------------------------------------------
    [Допишем в конец файла 11 байтов в HEX-коде]
    $08$20$00$00$00$0B$0D
    [числа от 05 до 0F]
    $05$06$07$08$09$0A$0B$0C$0D$0E$0F
    3E 0D
    --------------------------------------------------------------
    [Теперь установим указатель в файле на позицию +3 от начала файла]
    $28$20$00$00$00$03$0D
    3E 0D
    --------------------------------------------------------------
    [Заменим байты AA и BB на 33 и 44.
    Это понадобится для записи в начало WAV-файла длины звуковых данных]
    $08$20$00$00$00$02$0D
    $33$44
    3E 0D
    --------------------------------------------------------------
    [Теперь установим указатель в файле на конец файла = 16]
    $28$20$00$00$00$10$0D
    46 49 0D
    [ошибка]
    --------------------------------------------------------------
    [Теперь установим указатель в файле на конец файла = 15]
    $28$20$00$00$00$10$0D
    46 49 0D
    [ошибка]
    --------------------------------------------------------------
    [Закроем файл 1.tmp]
    $0A$201.tmp$0D
    3E 0D
    --------------------------------------------------------------
    [Посмотрим содержимое файла 1.tmp]
    $04$201.tmp$0D
    00 01 02 33 44 3E 0D
    [Вывод - байты в нужном месте поменялись, но после них все обрезалось. Получается, что после изменения в середине файла — хвост обрезается!]

    Как же тогда изменить длину в параметрах WAV-файла после записи ? Можно добавить поддержку еще одного формата - писать просто данные в файлы 00.dat - 99.dat. А воспроизводить и WAV и DAT просто как последовательность байтов, без анализа типа файла и характеристик.
    Последний раз редактировалось zx-kit; 28.07.2012 в 16:36.
    "L-256"

  6. #46
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Начал паять макет для подключения модуля USB к PIC по параллельному интерфейсу:

    "L-256"

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

  8. #47
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Продолжение разработки программы:



    Начало было там: http://www.zx.pk.ru/showpost.php?p=527415&postcount=38
    Последний раз редактировалось zx-kit; 07.08.2012 в 20:44.
    "L-256"

  9. #48
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Не дает мне покоя это устройство. Хотя много других дел.

    Как было определено ранее, при кварце 12 МГц прерывания с частотой 44100 Гц нужно делать через 272 такта кварца. Но, PIC выполняет одну команду за 4 такта. Получается, что между прерываниями должно быть выполнено не более 68 команд.

    Прикинул скорость при написании на ассемблере. Пустая заготовка подпрограммы прерываний заняла 14 тактов. Возможность втиснуть в 54 команды еще динамическую индикацию, ввод или вывод сигнала DIGITAL_IN или DIGITAL_OUT, осуществлять обмен с VNC2 вызывает сомнения. Если и получится, то потом что-нибудь добавить-изменить будет проблематично. Получается, что для таких временных ограничений PIC16 или PIC18 не подходят. А жаль...

    Поэтому, нужно применить другой 40-ногий контроллер, например, ATMEGA8515, так как у него простые команды выполняются за 1 такт.
    И программировать на ассемблере.

    Заодно появился повод изучить написание программ для атмег. Надеюсь меня поправят Caro, Skyther и другие, кто хорошо разбирается в них, если я напишу что-нибудь не так.

    Насколько я понял, нужно брать контроллер с памятью программ не более 8 Кб, так как при 16 или 32 Кб команды переходов становятся длиннее в два раза, что может замедлить программу. Какие еще 40-ногие атмеги с 8 Кб есть ?

    Можно попробовать подключить индикатор и светодиоды через два регистра сдвига типа 74HC595. Тогда можно будет использовать мелконогие ATMEGA48PA-AU. Но потребуются дополнительные затраты времени для загрузки 16 бит в регистры сдвига для индикации.
    Последний раз редактировалось zx-kit; 07.08.2012 в 20:59.
    "L-256"

  10. #49
    Guru Аватар для tnt23
    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,634
    Спасибо Благодарностей отдано 
    392
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    63 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для AVR есть хороший USB стек V-USB: http://www.obdev.at/products/vusb/index.html

    Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz.
    No UART, timer, input capture unit or other special hardware is required (except one edge triggered interrupt).
    Can be clocked with 12 MHz, 15 MHz, 16 MHz or 20 MHz crystal or from a 12.8 MHz or 16.5 MHz internal RC oscillator.
    High level functionality is written in C and is well commented.
    Only about 1150 to 1400 bytes code size.

  11. #50
    Guru Аватар для zx-kit
    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    65
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Для AVR есть хороший USB стек V-USB: http://www.obdev.at/products/vusb/index.html

    Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz.
    No UART, timer, input capture unit or other special hardware is required (except one edge triggered interrupt).
    Can be clocked with 12 MHz, 15 MHz, 16 MHz or 20 MHz crystal or from a 12.8 MHz or 16.5 MHz internal RC oscillator.
    High level functionality is written in C and is well commented.
    Only about 1150 to 1400 bytes code size.
    Количество устройств там впечатляет. Но они, вроде для подключения разных железок к PC. А мне надо подключить USB флешку для загрузки-сохранения программ в виде звуковых файлов или файлов данных.

    Да и временные ограничения 272 такта между отсчетами 44100 Гц данных не позволят использовать программную эмуляцию USB.
    К тому же фирма Future Devices уже имеет опыт в разработке микросхем USB, так что лучше использовать их разработки в виде отдельной микросхемы USB-HOST.

    Алгоритм программы почти разработан, осталось, в основном:
    • Найти шаблон / написать самому команды инициализации портов и прерываний
    • Таблицу для динамической индикации
    • Проработать способ обмена с VNC2 по параллельному интерфейсу
    • Выделить память для буфера и разработать способ записи/чтения с буфером
    Последний раз редактировалось zx-kit; 07.08.2012 в 22:59.
    "L-256"

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Самодельный телевизор
    от KALDYH в разделе Творчество
    Ответов: 34
    Последнее: 18.09.2013, 13:09
  2. Самодельный kickstart под ЛУТ :D
    от fan в разделе Amiga
    Ответов: 6
    Последнее: 21.08.2010, 16:18
  3. tap или tzx файлы с компьютера на магнитофон
    от Subre Wulf в разделе Несортированное железо
    Ответов: 3
    Последнее: 16.11.2009, 15:00
  4. Лучший самодельный компьютер
    от roxx в разделе Зарубежные компьютеры
    Ответов: 10
    Последнее: 08.12.2007, 22:53
  5. Самодельный принтер
    от Ewgeny7 в разделе Несортированное железо
    Ответов: 3
    Последнее: 07.08.2005, 18:11

Ваши права

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