masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Categories:

GPIO.2

Или что это было и зачем.

Сначала фирма VIA сделала серию неплохих чипов, а M-Audio - кучу звуковых карт на них, вплоть до профессиональных (и дорогих). И ещё - несколько дешёвых. Дешёвые можно перепрошить и их цифровая часть будет работать как у дорогих. Перепрошивка делается из-под DOSа, уже есть готовая программа. Аналоговую часть нужно удалить, так как у дорогих и дешёвых карт она несовместима. Цифровую часть - надставить интерфейсом к ЦАПу по вкусу.

Итак, есть звуковая карта, которая умеет играть 44100, 48000, а так же 88200, 96000 и 176400 да 192000, то есть всё, что надо. У неё два своих тактовых генератора, каждый на своём честном кварце 22579 и 24576кГц соответственно и это уже весьма хорошо. Совсем идеально будет если генератор поставить снаружи (в ЦАПе) и подавать синхросигнал с него, карта это умеет. При таком режиме сигнал (цифровой; аналоговые не используются) на выходе строго соответствует подаваемому синхросигналу и принципиально невозможно отличить - это та частота или нет? Слушать и понимать - так мало ли, может вступление ускоренное/замедленное и это замысел такой :-) Значит надо как-то эту информацию передавать по другому каналу. В отличии от профессионального применения, у любителя музыки могут быть оцифровки с разной частотой дискретизации и даже вперемешку (shuffle), так что как-то нужно переключать внешний генератор. Альтернатива - зафиксировать частуту и пересемплировать в неё. Не хочется.

Кто сказал ARDUINO??! Это значит - ещё один компьютер ради задачи в стиле "светодиодом помигать"! У компьютеров (некоторых) есть и свои GPIO, да хотя бы тот же LPT... но это тоже отдельный интерфейс, к звуковой карте не имеющий отношения и так далее и тому подобное (а карт может быть и более одной - провода, провода, провода...)

Если верить в pdf и datasheet (а верить в некотором смысле приходится, так как не для всех микросхем серии он есть, конкретно - нет для дешёвой VT1723), то у чипа есть выводы GPIO - в некоторых картах на них что-то уже есть (управление сигнальным процессором в ESI JULY, насколько помню), в дешёвых точно ничего нет; но может оказаться, что у дешёвых чипов и выводов этих тоже нет. Надо проверить, вот вчера я и проверил.

У GPIO есть маска для чтения (описывает, что делать если порт для записи прочитать - вернуть фигню или записанное значение), маска направленности и собственно сами биты. Битов 16, в PDF младшие упоминаются как используемые для разного, так что работал с 8-м - ещё с незапамятных времён припаял туда резистор и светодиод, вчера запустил - не работает. Ковыряюсь долго, эффекта нет - мало ли, у карты два диапазона портов - вдруг  я не тот взял? Начинаю читать известные порты, где должны (по PDF судя) быть ненулевые данные - читается нечто осмысленное (поддержка 192 кГц включена, 24 бита...). Вынимаю карту, надеваю лупу - а там провод отвалился от резистора! Заодно подаю 3.3 вольта через этот резистор - светится! Припаиваю провод, вставляю, запускаю - мигает! То есть автопереключалке - быть!

Дальше читаю данные о текущей частоте; ядро alsa не заморачивается там, что в alsamixerе я выставил SPDIF вместо частоты, а честно выводит вот что:
cat /proc/asound/card1/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 16384
buffer_size: 32768



второй вывод (SPDIF) выключен, там:
cat /proc/asound/card1/pcm1p/sub0/hw_params
closed



(первый так же может выключиться когда кончится музыка)

А имеющиеся карты можно посмотреть вот так:
cat /proc/asound/cards
0 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xdfff8000 irq 22
1 [Audiophile192 ]: ICE1724 - M Audio Audiophile192
M Audio Audiophile192 at 0xec00, irq 19


...и всё это на фоне вспоминания C, который мы учили на доске и доказывали корректность программ, потому что дискета с компилятором не доехала до нас без потерь.
Tags: ЛичнаяИстория, РазборПолётов, ХочетсяСтранного
Subscribe

  • (no subject)

    На неделе периодически "кормил" себя приятными занятиями, музыку слушал, один раз проспал почти 12 часов. Сил прибыло. За выходные внезапно очень…

  • (no subject)

    Дети притащили из школы ротовирус - так-то это довольно регулярная болячка, хотя штаммами разнится как грипп - на этот раз досталось сыну и чуть…

  • Заскочил, значит, за проводочками...

    Хотел в гости зайти к знакомому дедушке/дядюшке, звоню, а он умер сегодня... P.S. Да, именно covid...

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments