https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1027012/src4392-esp32-spi
部件号:SRC4392大家好、
我正在开发基于 ADAU1466 + SRC4392的 DSP、由 ESP32通过 SPI 接口进行控制。
我的编程技能不是很好、所以我想知道是否有人愿意与我分享一张草图?
目前、我已经尝试过这种代码、但这似乎并不起作用;
#include "Arduino .h" #include const SPISettings settingsA (1000000、MSBFIRST、SPI_MODE3);//存储 SPI 事务信息以设置 void setup (){ Serial.begin(115200);//初始化 USB 串行端口以调试 SPI.begin(); pinMode (SPI_SRC、输出); digitalWrite (SPI_SRC、HIGH); } void loop(){Initiate_src4392() ; delay (5000); } void Initiate_src4392 (){ write_src4392 (0x7f,0x00);//对 PAGE 寄存器进行初始写入,选择 PAGE 0 write_src4392 (0x01,0x80);//软件复位 write_src4392 (0x7f,0x002) ;//对端口0x430242c023(0x242s/sr)n;0x0424000(0x24000)n;0x24000_000_00024000(0x24000_000(0x24000)n //端口 B 格式 I2S、受控模式、静音输出(端口未使用) WRITE_src4392 (0x06、0x01);//端口 B 时钟至 MCLK/256 (48K) //WRITE_src4392 (0x08、0x31);//旁路多路复用器 RX1、AESMUX BYMUX、LDM4392 、0x08_MCDE、0x4392、0x08_MDIR、0x08_MDIR、0x08_TRD、0x43D、0x08_TRE、0x08_TRE、0x43D、0x08_TRE、0x43x 参考 //针对失锁的自动 DIR-MUTE // WRITE_src4392 (0x0F、0x12);//寄存器0F、10和11;PLL1配置。 数据表中的值:P=1、J=8、D=0 //write_src4392 (0x10、0);//寄存器0F、 10和11;PLL1配置。 数据表中的值:P=1、J=8、D=0 //write_src4392 (0x11、0);//寄存器0F、 10和11;PLL1配置。 数据表中的值:P=1、J=8、D=0 WRITE_src4392 (0x16、0xF4);// CRC、 奇偶校验、有效性、bip 编码和方向解锁未屏蔽 //write_src4392 (0x18、0xAA);//中断模式以更改电平 // write_src4392 (0x19、0xAA);//中断模式以更改电平 write_src4392 (0x2D、0x42);//端口 B 作为输入、MCLK、禁用卷参考。 //write_src4392 (0x30、0x07);//设置左通道卷-3.5dB write_src4392 (0x31、0x07);//设置右通道卷-3.5dB write_src4392 (0x01、0x3f);//激活芯片,删除 RST,全部启用 。} void write_src4392 (unsigned char address、unsigned char data){ Serial.print ("SRC4392ing"); Serial.print (address、hex); Serial.print ("-"); Serial.println (data、 十六进制); digitalWrite (SPI_SRC、低电平); //将 SPI 从器件选择线路置为有效(低电平有效) SPI.beginTransaction(settingsA); //初始化 SPI spi.transfer (address); spi.transfer (data); spi.endTransaction (); //释放 SPI 总线 digitalWrite (SPI_SRC、HIGH);//上拉从器件选择线路 }
已物理检查硬件 rst 引脚是否为3.3V、我可以通过不同 CS 引脚上的同一 SPI 接口对 ADAU1466进行编程。
