Доброй ночи господа
посмотрите плиз это то о чем мечталось ? http://www.noiseisgood.co.nz/?p=365 и http://www.raspberrypi.org/phpBB3/vi...=8496&start=25 (Posts: 43)
Доброй ночи господа
посмотрите плиз это то о чем мечталось ? http://www.noiseisgood.co.nz/?p=365 и http://www.raspberrypi.org/phpBB3/vi...=8496&start=25 (Posts: 43)
А малина должна переходить в слейв при выборе HiFiBerry DAC Plus (DAC + Pro, DAC2 Pro)?
Я всегда думал что она встает в слейв только при выборе HiFiBerry Digi + Pro.
На платах DAC + Pro и DAC2 Pro стоят по два генератора и в драйвере для них прописаны команды для I2C по переключению GPIO3 и GPIO6 при смене сетки частот, а так же передаются команды по настройке делителей, вот некоторые куски:
case HIFIBERRY_DACPRO_CLK48EN:
snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x24, 0x04);
или вот:
snd_soc_component_update_bits(component, PCM512x_MASTER_MODE, 0x03, 0x03);
snd_soc_component_update_bits(component, PCM512x_MASTER_CLKDIV_2, 0x7f, 63);
и это:
rats_no_pll->num = clk_get_rate(pcm512x->sclk) / 64;
А там ничего не написано про то что малина переводится в слейв? может какой оверлей переписывается?
Я, к сожалению в этих вопросах полный 0, и хотел бы знать как можно установить малину в слейв не вклюая драйвер HiFiBerry Digi + Pro.
Я почему и спрашиваю, сделал наподобие как с HiFiBerry Digi + Pro, но тут в файле конфигурации все было уже прописано, отключил внутреннее аудио, но результат ноль.
может где то надо прописать slave, но где и что писать?
Я раньше уже писал, как работает порт I2S в ведомом режиме:
https://forum.vegalab.ru/showthread....=1#post2682265
Вот вы писали про snd_soc_component_update_bits(component, PCM512x_MASTER_MODE, 0x03, 0x03) в драйвере - а что это значит?
Это значит что одноплатник должен записать в регистры ЦАПа какие-то значения, для чего ему нужно подключиться к микросхеме ЦАП по специальному управляющему интерфейсу I2C.
В ChipDip DAC выводы I2C от PCM5242 выведены на разъем XP3 и не подключены к одноплатнику (к выводам 3 и 5 XS1). Поэтому драйвер HiFiBerry DAC Plus не может найти PCM5242 и просто не загружается. Об этом можно почитать в выводе команды dmesg.
Если мы соединим выводы SDA/SDL PCM5242 с соответствующими выводами XS1 (одноплатника), отключив кнопку, то появится вторая проблема - выводы ADR1 и ADR2 сконфигурированы не так так, как в HiFiBerry DAC Plus, поэтому нужно будет изменить адрес (0x4d) в hifiberry-dacplus-overlay.dts и перекомпилировать.
Дальше возникнет третья проблема - в HiFiBerry DAC генераторы на 22 и 24 МГц, поэтому в драйвере нужно будет поменять коэффициенты делителей, или заменить генераторы.
Это по памяти, может и еще есть нюансы.
Основной источник сведений по загрузке драйверов - вывод dmesg, там нужно смотреть ошибки.
А теперь по порядку:
1) I2C к малинке подключил как раз к тем выводам, что вы и назвали
2) ADR1 и ADR2 = 1 0, при других комбинациях ругается ALSA (ADR1 и ADR2 выведены на гребенку)
3) что то малинка отправляет на pcm5142, наверное какую то начальную инициализацию, потому что один из выводов GPIO3 и GPIO6 (выходы управления генераторами) выдает "1", а другой "0"(но они не меняются при смене сетки частот), но сама pcm5142 сконфигурирована в slave и не выдает соответствующие клоки
4) генераторы на моем ЦАПе как раз 512FS
---------- Сообщение добавлено 23:38 ---------- Предыдущее сообщение было 23:19 ----------
вот файл config:
### DO NOT EDIT THIS FILE ###
### APPLY CUSTOM PARAMETERS TO userconfig.txt ###
initramfs volumio.initrd
gpu_mem=128
gpu_mem_256=32
gpu_mem_512=32
gpu_mem_1024=128
max_usb_current=1
[pi5]
usb_max_current_enable=1
[all]
include volumioconfig.txt
include userconfig.txt
#### Volumio i2s setting below: do not alter ####
dtoverlay=hifiberry-dacplus
а это volumioconfig:
### DO NOT EDIT THIS FILE ###
### APPLY CUSTOM PARAMETERS TO userconfig.txt ###
[cm4]
dtoverlay=dwc2,dr_mode=host
otg_mode=1
[pi5]
dtoverlay=vc4-kms-v3d-pi5
# dtparam=uart0_console # Disabled by default
dtparam=nvme
dtparam=pciex1_gen=2
[all]
arm_64bit=0
dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1
force_eeprom_read=0
---------- Сообщение добавлено 23:42 ---------- Предыдущее сообщение было 23:38 ----------
А в папке overlays есть файл i2s_master_dac.dtbo, но нет файла slave
А какой I2S Дак вы выбрали в установках волюмио? Там есть Чип Дип Дак.
Сначала нужно понять что пишут в dmesg и что в выводе aplay -l. Покажите их вывод.
Далее, в драйвере есть функция snd_rpi_hifiberry_dacplus_is_pro_card, которая определяет что PCM5142 может работать в режиме мастера, перед тем как переключиться в него. Делается это следующим образом: включается генератор для сетки 44,1 кГц, потом читается бит 7 (CDST, Clock Detector Status - This bit indicates whether the SCK clock is present or not) регистра 94 (PCM512x_RATE_DET_4). Затем выключаются оба генератора, снова читается CDST, затем включается генератор сетки 48 кГц и опять читается CDST. В первом и третьем случае клок должен определяться, во втором нет.
Если определить правильную работу клоков не удалось, то PCM5142 остается в ведомом режиме.
К сожалению проверить что возвращает функция snd_rpi_hifiberry_dacplus_is_pro_card не получится, но если результат "false", то либо pcm5142 не сконфигурированна, либо неисправна.
Но так же есть фунуция snd_rpi_hifiberry_dacplus_init, в которой есть такие строки:
if (slave)
snd_rpi_hifiberry_is_dacpro = false;
else
snd_rpi_hifiberry_is_dacpro =
snd_rpi_hifiberry_dacplus_is_pro_card(component);
и видно, что изначально должен быть включен режим slave.
И как посмотреть "что пишут в dmesg и что в выводе aplay -l" - для меня линукс абсолютно новая тема, можно ли это посмотреть при помощи монитора, подключенного к hdmi малинки и клавиатуры?
---------- Сообщение добавлено 11:06 ---------- Предыдущее сообщение было 10:40 ----------
В настройках выбирал HiFiBerry DAC Plus (DAC + Pro, DAC2 Pro), смотрел драйвер ChipDipDAC - там реализовано только Hardwire mode.
Либо клоки от выходов PCM5142 GPIO3 (44,1 кГц) и GPIO6 (48 кГц) не переключаются по какой-то причине.
Запустить приложение Терминал и в нем набрать dmesg и потом Enter.
Там лог загрузки, нас интересуют строки начинающиеся с i2c, pcm512x, или snd.
Потом набрать aplay -l и Enter, после минуса там маленькая буква L. Это покажет список доступных звуковых устройств.
Для ведомого режима будет HiFiBerry DAC+ HiFi, для режима мастер будет HiFiBerry DAC+ Pro HiFi.
Хорошо, после работы попробую.
Читать и писать в регистры i2c можно вручную. Для этого нужно установить i2c-tools:
Потом с помощью i2cdetect можно посмотреть адреса подключенных устройств, с помощью i2cget читать регистры, с помощью i2cset писать в регистры.Код:sudo apt-get install i2c-tools
Например, найти все устройства на порту номер 0:
Прочитать регистр CDST у PCM5142:Код:sudo i2cdetect 0
Только сначала нужно отключить загрузку оверлея hifiberry-dacplus, иначе порт будет занят.Код:sudo i2cget 0 0x4d 0x5e
Спасибо за информацию, но если отключить загрузку драйвера, то и в регистрах pcm5142 будут дефолтные значения.
Согласен, можно будет в крайнем случае, просто платы и драйвера от HiFiBerry уж точно рабочие и без eeprom, поэтому и с этой платой должно работать, если конечно pcm5142 не левая.
---------- Сообщение добавлено 19:02 ---------- Предыдущее сообщение было 15:22 ----------
Набрал dmesg, получилось это:
а как это перелистать вверх?
---------- Сообщение добавлено 19:12 ---------- Предыдущее сообщение было 19:02 ----------
Это после aplay -l
---------- Сообщение добавлено 19:21 ---------- Предыдущее сообщение было 19:12 ----------
Не понятно, не могу зайти по ssh,хотя сеть есть и через браузер отлично открывается интерфейс
---------- Сообщение добавлено 19:23 ---------- Предыдущее сообщение было 19:21 ----------
Пробовал по uart через ft232, такая же фигня.
---------- Сообщение добавлено 19:29 ---------- Предыдущее сообщение было 19:23 ----------
Вот зашёл через браузер
![]()
https://developers.volumio.com/SSH%20ConnectionКод:dmesg | more
наконец то подключился по ssh, вот после команды dmesg:
[ 15.311868] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 15.312413] snd_bcm2835: unknown parameter *enable_compat_alsa* ignored
[ 15.318339] bcm2835_audio bcm2835_audio: card created with 4 channels
[ 15.321271] bcm2835_audio bcm2835_audio: card created with 4 channels
...
[ 14.402022] i2c_dev: i2c /dev entries driver
...
volumio@volumio:~$ [ 15.321271] bcm2835_audio bcm2835_audio: card created with 4 channels
и вот aplay -l:
volumio@volumio:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: b1 [bcm2835 HDMI 1], device 1: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 2: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 [HiFiBerry DAC+ HiFi pcm512x-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
Драйвер не опознает ЦАП как Pro, т.е. snd_rpi_hifiberry_dacplus_is_pro_card возвращает false.
Нужно разобраться, почему. Я предлагаю в ручном режиме задавать выводы GPIO3 и GPIO6, смотреть что на SCK и проверять регистр CDST - в нем должно определяться наличие/отсутствие клока.
Социальные закладки