问题请教:RK3399裸跑,I2S管脚无信号输出

现象:

  1. I2S主模式,发送数据时,管脚无信号输出,示波器一直低电平
  2. I2S模块在运行,逻辑好像正确
    连续发送时,产生中断的次数与采样率的设置吻合。改变时钟设置后,产生中断的节奏也会相应改变
  3. 硬件没有问题,运行LINUX系统时,音频正常,管脚有输出

设置过程如下:

  1. 电源域:sdioaudio打开
  2. 时钟源:
    cpll设置为200MHz
    perilp1时钟源选择cpll, hclk_perilp1设置为50MHz,pclk_perilp1设置为25MHz
  3. I2S0管脚设置
    GPIOD0,1,2,3,7分别为i2s0_sclk,i2s0_lrckrx,i2s0_lrcktx,i2s0_sdi0,i2s0_sdo0
    无上下拉
  4. I2S0时钟设置
    打开hclk_i2s0
    clk_i2s0选择cpll分频,200 * 64 / 3125 = 4096KHz
  5. I2S_MCLK输出设置
    管脚gpio4a0设置为i2s_clk功能,无上下拉
    时钟源选择clk_i2s0
  6. I2S0寄存器配置
    主模式
    i2s0_sclk = clk_i2s0 / 16 = 256KHz
    采样率 = 256 / 32 = 8KHz

请教,设置内容有欠缺?设置顺序有错误?有针对性的资料吗?

解决了
APIO5的供电,用的是1.8v,需要设置GRF_IO_VSEL寄存器,将audio_gpio3d4a_ms位设置为1

第一版 把I2C0控制 调整到I2C8 失败 下载IMG串口乱码 几路LDO无输出