ESP8266 Developer Zone The Official ESP8266 Forum 2015-09-25T18:44:32+08:00 https://bbs.espressif.com:443/feed.php?f=7&t=958 2015-09-25T18:44:32+08:00 2015-09-25T18:44:32+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3862#p3862 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
1、采样率以及位时钟,是用什么公式计算?
-> SCK 的频率 = 2 × 采样频率 × 采样位数
对于 2 声道 24-bit 数据 32K 采样率,时钟的频率是 32k*2*24 = 1.53MHz
不分频的时钟是 160M,分频一个是 26 一个是 8,1.53 = 160*2/26/8。

2、I2SCONF第12~15Bit 分别表示的含义?
12 ~ 15bit 的值 a (a的值为 0 到 8),设置以后,代表我们的 I2S 传输 (16+a)-bit 的数据。

Statistics: Posted by ESP_Faye — Fri Sep 25, 2015 6:44 pm


]]>
2015-09-24T21:40:08+08:00 2015-09-24T21:40:08+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3846#p3846 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
1、采样率以及位时钟,是用什么公式计算?
注:用esp8266_mp3_decoder SDK里的i2sSetRate计算出来的数据和您设置的数值不一样
2、I2SCONF第12~15Bit 分别表示的含义?

以下是esp8266_mp3_decoder SDK里的i2sSetRate:

Code:

#define BASEFREQ (12000000L)
#define ABS(x) (((x)>0)?(x):(-(x)))
//Set the I2S sample rate, in HZ
void i2sSetRate(int rate) {
   //Find closest divider
   int bestbck=0, bestfreq=0;
   int tstfreq;
   int i;
   //Calculate the base divider for 16 bits of data
   int div=(BASEFREQ/(rate*24));   //24Bit 位宽
   //The base divider can be off by as much as <1 Compensate by trying to make the amount of bytes in the
   //i2s cycle more than 16. Do this by trying the amounts from 16 to 32 and keeping the one that fits best.
   for (i=16; i<32; i++) {
      tstfreq=BASEFREQ/(div*i*2);
//      printf("Best (%d,%d) cur (%d,%d) div %d\n", bestbck, bestfreq, i, tstfreq, ABS(rate-tstfreq));
      if (ABS(rate-tstfreq)<ABS(rate-bestfreq)) {
         bestbck=i;
         bestfreq=tstfreq;
      }
   }

//   printf("ReqRate %d Div %d Bck %d Frq %d\n", rate, div, bestbck, BASEFREQ/(div*bestbck*2));
   os_printf("bestbck = %d, div = %d\n\r",bestbck,div);
#if 1
   //Master mode
   CLEAR_PERI_REG_MASK(I2SCONF, I2S_TRANS_SLAVE_MOD|
                  (I2S_BITS_MOD<<I2S_BITS_MOD_S)|
                  (I2S_BCK_DIV_NUM <<I2S_BCK_DIV_NUM_S)|
                  (I2S_CLKM_DIV_NUM<<I2S_CLKM_DIV_NUM_S));
   SET_PERI_REG_MASK(I2SCONF, I2S_RIGHT_FIRST|I2S_MSB_RIGHT|I2S_RECE_SLAVE_MOD|
                  I2S_RECE_MSB_SHIFT|I2S_TRANS_MSB_SHIFT|
                  (((bestbck-1)&I2S_BCK_DIV_NUM )<<I2S_BCK_DIV_NUM_S)|
                  (((div-1)&I2S_CLKM_DIV_NUM)<<I2S_CLKM_DIV_NUM_S)|
                  (8<<I2S_BITS_MOD_S));




   
#else
   //Slave mode
   CLEAR_PERI_REG_MASK(I2SCONF, I2S_RECE_SLAVE_MOD|
                  (I2S_BITS_MOD<<I2S_BITS_MOD_S)|
                  (I2S_BCK_DIV_NUM <<I2S_BCK_DIV_NUM_S)|
                  (I2S_CLKM_DIV_NUM<<I2S_CLKM_DIV_NUM_S));
   SET_PERI_REG_MASK(I2SCONF, I2S_RIGHT_FIRST|I2S_MSB_RIGHT|I2S_TRANS_SLAVE_MOD|
                  I2S_RECE_MSB_SHIFT|I2S_TRANS_MSB_SHIFT|
                  (((bestbck-1)&I2S_BCK_DIV_NUM )<<I2S_BCK_DIV_NUM_S)|
                  (((div-1)&I2S_CLKM_DIV_NUM)<<I2S_CLKM_DIV_NUM_S));


#endif
   
}

Statistics: Posted by danshi126 — Thu Sep 24, 2015 9:40 pm


]]>
2015-09-24T19:18:42+08:00 2015-09-24T19:18:42+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3844#p3844 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
请参考如下定义:

Code:

#define ETS_SLC_INUM       1

#define ETS_SLC_INTR_ATTACH(func, arg)\
    ets_isr_attach(ETS_SLC_INUM, (func), (void *)(arg))

#define ETS_SLC_INTR_ENABLE() \
    ETS_INTR_ENABLE(ETS_SLC_INUM)

Statistics: Posted by ESP_Faye — Thu Sep 24, 2015 7:18 pm


]]>
2015-09-22T21:30:22+08:00 2015-09-22T21:30:22+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3804#p3804 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
编译提示缺少两个函数:ETS_SLC_INTR_ATTACH(),ETS_SLC_INTR_ENABLE(),在RTOS和非OS、以及MP3解码的SDK均未找到,麻烦提供下;

Statistics: Posted by danshi126 — Tue Sep 22, 2015 9:30 pm


]]>
2015-09-21T18:37:10+08:00 2015-09-21T18:37:10+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3786#p3786 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
I2S demo 和文档如附件。

感谢贵司对 ESP8266 的关注!
app.zip

8P-ESP8266 I2S Module description__CN_v1.0.pdf

Statistics: Posted by ESP_Faye — Mon Sep 21, 2015 6:37 pm


]]>
2015-09-19T17:55:53+08:00 2015-09-19T17:55:53+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3765#p3765 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
8266配欧胜的Codec,写IIS测试好了,急着测试读IIS呢

Statistics: Posted by danshi126 — Sat Sep 19, 2015 5:55 pm


]]>
2015-08-27T17:22:36+08:00 2015-08-27T17:22:36+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3458#p3458 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]>
20K,40K的采样率Codec不支持吧?


32K采样率可以满足需求

期待待乐鑫的 IIS RX demo.... 希望不会太久

tks.

Statistics: Posted by danshi126 — Thu Aug 27, 2015 5:22 pm


]]>
2015-08-26T18:12:29+08:00 2015-08-26T18:12:29+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3449#p3449 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]> 能否满足应用要求?

将 提供 I2S Rx 的 示例

Statistics: Posted by Helios — Wed Aug 26, 2015 6:12 pm


]]>
2015-08-25T15:37:11+08:00 2015-08-25T15:37:11+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3422#p3422 <![CDATA[Re: 请求esp8266 iis dma寄存器描述]]> Statistics: Posted by danshi126 — Tue Aug 25, 2015 3:37 pm


]]>
2015-08-17T10:55:55+08:00 2015-08-17T10:55:55+08:00 https://bbs.espressif.com:443/viewtopic.php?t=958&p=3270#p3270 <![CDATA[请求esp8266 iis dma寄存器描述]]> Statistics: Posted by danshi126 — Mon Aug 17, 2015 10:55 am


]]>