Можно ли подружить без потери данных из-за различия в тайминге?
Можно ли подружить без потери данных из-за различия в тайминге?
Т.е. перед выводом на IDE цифровой контент нужно сформировать таким образом, чтобы на нужных трех лапах были нужные данные?
Ты под какой операционкой это проделывал?
Кстати да. Лучше не фифо буфер подключать, а ПЛИСИну. В ней сделать формирование I2S из паралельных 8 бит данных. А клок синхронный с клоком ЦАП заводить на IDE разъем. Если там внутри фифо, значит должон быть и вход для клока.
3Way
Если не трудно, скинь пожалуйста спек на IDE с обозначением лап на мыло zugduk sabaka mail ru
Добавлено через 1 минуту
Почему из 16ти, а не из 8ми как объяснил 3Way ?
Последний раз редактировалось ZugDuk; 29.09.2006 в 10:07. Причина: Добавлено сообщение
Да! Приведу пример, того что будет на выходе, когда посылаетсяв порт допустим, слово 12h.
Преобразуем его в двоичный формат, получим 00010010.Это означает, что синхронно со стробирующим импульсом -IOWR на шине данных появятся значения:
data7=0
data6=0
data5=0
data4=1
data3=0
data2=0
data1=1
data0=0
Те если нам нужно вывести на data2=0 , data1=1 и на data0=0 то
необходимо записать в порт 00000010 или 02h.
неверно,см предыдущий пост.
dos 6.22, в проге debug в командной строке доступно запись/чтение
портов.
Это древний стандарт и относительно простой, и кроме как писат/читать в озу ничего не умеет. Его назначение - работа с буфером внешнего устройства причем полностью под управлением или пользовательской программы и/или драйверов и/или bios компа. Поэтому клока у него нет.
Всё там есть, в стандарте ATAPI расписаны контакты разъёма IORDY, DMARQ, DMACK и т.д.
http://www.t13.org/docs2002/d1410r3b.pdf
Так что жду схему ввода/вывода I2S и тактирования АЦ/ЦА преобразователей через шину IDE или ОЗУ жёсткого диска.
Например для стерео 768 кГц, 20 бит.
Да вот мне тоже кажется что должно быть.
ИМХО реализация должна быть такая:
Должен быть выделен в оперативной памяти компа буфер, из которого по внешнему клоку от ЦАП должны забираться данные в паралельном виде и далее в ПЛИС преобразовываться в I2S формат. Или без ПЛИС, но тогда требуется их определенным образом сформировать.
IDE порт должен работать с этим буфером в памяти в режиме DMA. ИМХО он умеет так работать.
Вот примерно такое тех задание.
Но ИМХО под виндой ничего работать не будет.
Последний раз редактировалось ZugDuk; 04.10.2006 в 14:17.
Почему это?
Можно сделать FAT и 2 виртуальных папки - IN & OUT. В первой всегда лежит R/O файл ADC.WAV длиной 44 байта, который можно копировать часами, из любой ОС. Из второй играется всё, что туда попало.
Насчёт ПЛИС ещё рано думать, для начала нарисуйте схему хоть на отдельных регистрах.
Но неисправный винчестер дешевле чистой ПЛИС, содержит флэш-память и буферное ОЗУ, паять стоногие чипы не надо, а программировать придётся в обоих случаях.
Помогите выбрать самый документированный процессор, имеющий компилятор ассемблера и утилиту для прошивки ПЗУ.
Список микросхем: http://www.pc3khrt.com/hddpcb.htm
Старые диски должны быть лучше описаны, а это сравнительно новые модели, пока оттуда нашёл только http://www.cnhdd.com/hdd/library/interface/sh7660pb.pdf
В нём 2 FIFO, а третий буфер - в контроллере на "материнке".
А внешний буфер неохота. Охота как на PCI в slave режиме, тобишь буфер в оперативной памяти и работа с ней в режиме ДМА. вроде как IDE порт имеет настоящие прерывание и будет без перебоев забирать данные из буфера. А может и нет Иначе нафига ставят буферы в винты и целых 2штуки?
Ничего не понял. Объясни по подробней. Я о том, что как сделать в винде команду "копировать в IDE порт"? Она ж винты сначала определяет, монтирует логические диски с ФАТ системой, и только потом команду копировать можно применять к папкам и файлам в файловой системе. В паралельный порт можно отправить данные, а в IDE не уверен, что прокатит.
Рано даже этим заниматься. Сначала надо убедиться (видимо спросить где то), что под виндой на IDE порт можно безперебойно выводить информацию.
А зачем нужна флэш, контроллер и его программирование?
А если проще IDE (SATA) <-> железяка ->I2S
Железяка с памятью, кнопками управления и индикатором.
Возможно реализовать повышенную (любую) скорость чтения, повторного чтения (для испр ошибок) и т.д.
Копеешний сидюк превратится в очень неплохой транспорт
Последний на странице:
http://www.hdd-911.com/index.php?opt...d&ascdesc=DESC
Обсуждение здесь (возможно потребует регистрацию):
http://electronix.ru/forum/index.php?showtopic=9539
Только, ИМХО, передавать по IDE 150-400КБайт в секунду - это излишество. Если уж все равно писать утилиту под винды, то, возможно, лучше так: софт -> D2XX драйвер -> USB -> FT245R -> ПЛИС конвертации 2*8бит (или 3*8) в I2S.
Ещё это устройство как-то конфигурировать надо под формат воспроизвоимого файла по критериям частоты семплирования и глубины разрешения. Или программно, что более универсально, поскольку не будет конкретно привязано в железе к типу воспроизводимого файла, путём выставления соответствующих уровней на выходах служебных линий (вот куда можно будет потратить лишние биты параллельных портов на IDE шине или выходе чипа от FTDI FT245). Или аппаратно, в железе, путём анализа заголовка wav файла, передаваемого (копируемого) на "ложный HDD", эмулируемый обсуждаемым устройством. Во втором случае железо будет привязано к конкретному типу медиафайла (wav), в разных разрешениях, естесственно, но зато на уровне драйверов ничего делать не нужно, надо только убедить ОС, что она работает с обычным HDD.
Думаю, что на базе б/у контроллера HDD или CD такое устройство вполне реально сделать, у меня такие мысли были уже с год назад, но я пока отложил их реализацию.
ZugDuk,
Кому-то не надо, кому-то надо. Расширить границы воспроизводимого формата до 24/196 не так и сложно будет.На самом деле ничего конфигурировать не надо. Формат 44/16 и все. Больше ничего не надо.
Другое дело, что кроме wav ничего не нужно.
Идея мне нравится, сам долго голову над этим ломал. Но есть один гемор, в виндовом программировании плохо разбираюсь.
В связи этим вопрос: есть программный плейер и есть вав файл, куда плейер сует данные?
Как мне кажется отсылает он их не на прямую в устройство, а в какой-то windows-причиндал, а этот причиндал отправляет их через драйвер в устройство.
Если это так то всетаки свой драйвер надо делать.
Плагин для плейра - это по моему не очень универсально.
чтобы фальшивую геометрию винта и FAT отдать операционке. А дальше winamp или foobar со стандартными disk_out плагинами в него играть будут.
Только исходники firmware винчестерных контроллеров - дефицит. Или надо хорошо владеть дизассемблером IDA.
проигрыватель отправляет в виндовую подсистему мультимедии (если режим вывода не kernel streaming или ASIO). Там данные от нескольких источников могут ресэмплится, микшироваться и отправляться в драйвер звуковой платы. Если он структуры WDM, то это лишь "обёртка" над системным драйвером ввода/вывода в порты portcls.sys.
Последний раз редактировалось Эзотехник; 10.10.2006 в 16:22.
1.Похоже, что во время прослушивания музыки на этом девайсе работать на компе будет невозможно. По моему писать что-то на винт или с винта на болванку или вообще какое-либо обращение к дискам будет сильно затруднено. И еще у меня например на одном АТА два винта на другом цдром, а у многих и еще хрен знает что понавешено.
2. В виде чего BIOS опознает эту штуку и как потом это скажется на ее работе?
1. Разве CD-ROM в режиме цифрового воспроизведения CD-DA (мимо аудио-кабеля) сильно замедляет Windows? 100% загрузка процессора будет, если данные в порт пишутся в режиме PIO. В DMA все намного лучше. Но тогда промежуточные буфера нужны и их контроллер.
2. в виде пустого HDD с FAT 2GB или FAT32 4GB.
Социальные закладки