12
返回列表 发新帖

ES9018软控新玩具

[复制链接] 查看: 20260|回复: 38

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2013-6-25 20:51 | 显示全部楼层
stars 发表于 2013-6-25 11:09
这些所谓的"BUG"都是不存在的,建议LZ花多点时间看看ES9018手册

是吗,你有去实验过吗,ES9018你真的看过吗,ES9018我看都烂了

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2013-6-25 20:58 | 显示全部楼层
定音鼓 发表于 2013-6-25 17:52
帖子够长,随便看了看。

除非你需要显示精确频率值,比如44.112,你才需要计算,否则,直接读出一个寄存 ...

顺便在跟你说一下,寄存的数值不是稳定在一个值上的,是会在一个数值之间变化,但是,由于两个采样之间变化是非常大的,我说过了,ES9018手册上的计算式计算式,现在是没办法去计算的,请你好好看贴的内容,只要知道大概的数值就能判断采样,你明白吗,不知道不不要乱喷

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2013-6-25 21:00 | 显示全部楼层
59401 发表于 2013-6-24 21:25
什么鸟“此帖仅作者可见”。
发个帖子80%语句都不通,你真对得起你的小学语文老师。

我们都是小学没毕业的,写不出砖家,叫受们的水平,你看不芯片,证明你砖家的水平已经成外星人的水平的,真是配服呀

43

主题

2

好友

829

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
9077
帖子
776
精华
0
经验
829 点
金钱
742 ¥
注册时间
2006-5-2
发表于 2013-6-25 22:18 | 显示全部楼层
上海烧不起 发表于 2013-6-25 20:48
不知道是真的还是假的开发过ES9018,I2S的FIR滤波,完全是可以关了,而且没有任何问题,无论在什么采样下 ...

噢噢,不好意思,让你不开心了,算我没说,发烧重要的是开心。
支持一下,敢于实践很不错,加油!
头像被屏蔽

2

主题

0

好友

195

积分

禁止发言 当前离线

UID
68
帖子
147
精华
0
经验
195 点
金钱
123 ¥
注册时间
2004-3-23
发表于 2013-6-26 09:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

9

主题

4

好友

559

积分

职业侠客 当前离线

伪烧

Rank: 5Rank: 5

UID
98461
帖子
1647
精华
0
经验
559 点
金钱
529 ¥
注册时间
2009-4-21
发表于 2013-6-26 10:13 | 显示全部楼层
上海烧不起 发表于 2013-6-25 20:50
不知道你用的是什么输入,SPDIF是完成没有问题,难道是I2S

SPDIF

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2013-6-26 10:59 | 显示全部楼层
本帖最后由 上海烧不起 于 2013-6-26 11:03 编辑
navysong 发表于 2013-6-26 10:13
SPDIF


你都没认真看我说的话,SPPDIF是正常能显示的,我现在说在I2S下不能正常显示,明白吗,麻烦你看清楚在说话

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2013-6-26 11:02 | 显示全部楼层
本帖最后由 上海烧不起 于 2013-6-26 11:04 编辑
pcbbb 发表于 2013-6-26 09:24
好象ak411糸列是直接读出一个寄存来判断采样的,我想问下坛里9018用硬控与软控在性能上有多大区别?


你也没认真看我说的,我没有说性能上差,只说过硬控没有能开启ES9018原有设计的功能,还有ES9018在软控模式上更容易受干扰,所以软控模式下的PCB设计,比硬控要更严格!

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2013-6-26 22:18 | 显示全部楼层
stars 发表于 2013-6-25 11:09
这些所谓的"BUG"都是不存在的,建议LZ花多点时间看看ES9018手册

你开发过软控吗,有没有实验过SPDIF与I2S切换过,同时在SPDIF和I2S同轴下播放音乐,看看I2S有没有干扰,这个试过吗,还有I2S采样的数值条采样你得出来的数值是多少,有证据才能说话!
当然如果你真的能搞定上面那两个问题,我还真是想向你学学习,交流一下,希望你能加我的QQ:371099870

14

主题

0

好友

509

积分
     

职业侠客 当前离线

Rank: 5Rank: 5

UID
587604
帖子
537
精华
0
经验
509 点
金钱
489 ¥
注册时间
2013-5-2
发表于 2013-6-30 00:47 | 显示全部楼层
不知道可否共享一下电路和源程序。。。手上有个89C52的单机板和LCD1602。。。
烧个程序连接一下应该没问题,,谢谢楼主。。。我邮箱PM你?

85

主题

5

好友

4596

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
88039
帖子
4948
精华
0
经验
4596 点
金钱
4505 ¥
注册时间
2009-3-14
发表于 2013-6-30 01:35 来自手机端 | 显示全部楼层
59401 发表于 2013-6-24 21:25
什么鸟“此帖仅作者可见”。
发个帖子80%语句都不通,你真对得起你的小学语文老师。

写程序的人一般自然语言都不通……
头像被屏蔽

3

主题

0

好友

52

积分

禁止发言 当前离线

UID
598863
帖子
57
精华
0
经验
52 点
金钱
48 ¥
注册时间
2013-6-18
发表于 2013-6-30 16:50 来自手机端 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

4

主题

0

好友

39

积分

注册会员 当前离线

Rank: 2

UID
420169
帖子
34
精华
0
经验
39 点
金钱
33 ¥
注册时间
2011-10-23
发表于 2013-7-6 18:36 | 显示全部楼层
我使用cm6631a。我有示波器测试了一下,播放器用asio4all v2的话,不开重采样,音频文件是44.1输出就是44.1,96k输出就是96k。开了重采样,就是输出重采样的。另外播放器不使用asio的话,输出采样是声卡的高级属性里设置值。win7设置时上面一行字:选择共享模式时的采样率,asio是独占模式,所以用asio时,这里的设置不起作用。

6

主题

6

好友

1745

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
91729
帖子
1954
精华
0
经验
1745 点
金钱
1745 ¥
注册时间
2009-3-27
发表于 2013-7-7 14:56 | 显示全部楼层
支持DIY,楼主这个很好,值得关注.......

40

主题

6

好友

1493

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
20253
帖子
1325
精华
2
经验
1493 点
金钱
1278 ¥
注册时间
2007-3-16

社区贡献 乐于助人

发表于 2013-12-4 12:05 | 显示全部楼层
本帖最后由 蜡笔 于 2013-12-4 13:45 编辑

楼主高手,难得是心得经验肯放出来分享。
软件菜鸟的我最近在尝试软控,目前碰到个对我来说是难题。
希望楼主能指引一下。就是在9018的I2C通讯上的问题,写可以进行,但无法读取9018。
I2C协议按9018PDF来的,就是想不通。板子是论坛的9018

地址是0x92,

目前的情况我觉得时序没问题,但读的时候发93过去就一直低电平了,楼主给黑暗中的我指条明路解决I2C通讯问题,无言感激!
sbit IIC_SDA = P2^7;                          
sbit IIC_SCL = P2^6;


code uchar IIC_ERROR_STR[]         = "IIC_ERROR";

void IIC_START()  //开始信号
{
        IIC_SDA = 1;
        IIC_DELAY();
        IIC_SCL = 1;
        IIC_DELAY();
        IIC_SDA = 0;
        IIC_DELAY();
        IIC_SCL = 0;
        IIC_DELAY();
}

void IIC_STOP()//停止
{
        IIC_SDA = 0;
        IIC_DELAY();
        IIC_SCL = 1;
        IIC_DELAY();
        IIC_SDA = 1;
        IIC_DELAY();
}

uchar IIC_READ_ACK()
{
        uchar flag = 0;

        IIC_SDA = 1;
        IIC_SCL = 1;
        IIC_DELAY();
        if ( !IIC_SDA )
                flag = 1;
        IIC_DELAY();
        IIC_SCL = 0;
        IIC_DELAY();

        return        flag;        //为0无应答
}

void IIC_WRITE_BYTE( uchar dat )
{
        uchar i;
       
        IIC_SCL = 0;
        for( i=0; i<8; i++ )
        {
                if( dat & (0x80 >> i) )
                {        IIC_SDA = 1;        }
                else
                {        IIC_SDA = 0;        }
                IIC_DELAY();
                IIC_SCL = 1;
                IIC_DELAY();
                IIC_SCL = 0;
                IIC_DELAY();
        }
}

uchar IIC_READ_BYTE()
{
        uchar i, tmp=0;

        for( i=0; i<8; i++ )
        {
                IIC_SCL = 1;
                IIC_DELAY();
                tmp <<= 1;
                if( IIC_SDA )
                {        tmp += 1;        }
                IIC_SCL = 0;
                IIC_DELAY();
        }

        return tmp;
}

void IIC_ERROR()
{
        CLEAR_LINE2();
        DIS_IIC_ERROR();
}

//以下为ES9018读写

#define CHIP_ADD        0X92

void ES9018_WRITE( uchar sda, uchar dat )
{
        IIC_START();
        IIC_WRITE_BYTE( CHIP_ADD );
        if( IIC_READ_ACK() )
        {
                IIC_WRITE_BYTE( sda );
                if( IIC_READ_ACK() )
                {         
                        IIC_WRITE_BYTE( dat );
                        if( !IIC_READ_ACK() )
                        {
                                IIC_ERROR();
                        }
                }
                else
                {
                        IIC_ERROR();
                }
        }
        else
        {
                IIC_ERROR();
        }

        IIC_STOP();
        IIC_DELAY();
}

uchar ES9018_READ( uchar sda )
{
        uchar tmp;

        IIC_START();
        IIC_WRITE_BYTE( CHIP_ADD + 1 );
        if( IIC_READ_ACK() )
        {         
                IIC_WRITE_BYTE( sda );
                if( IIC_READ_ACK() )
                {         
                        tmp = IIC_READ_BYTE();
                        IIC_READ_ACK();
                }
                else
                {
                        IIC_ERROR();
                }
        }
        else
        {
                IIC_ERROR();
        }
               
        IIC_STOP();
        IIC_DELAY();

        return tmp;
}

4

主题

0

好友

262

积分
     

业余侠客 当前离线

Rank: 4

UID
8157
帖子
208
精华
0
经验
262 点
金钱
199 ¥
注册时间
2006-3-19
发表于 2013-12-4 13:18 | 显示全部楼层
上海烧不起 发表于 2013-6-26 22:18
你开发过软控吗,有没有实验过SPDIF与I2S切换过,同时在SPDIF和I2S同轴下播放音乐,看看I2S有没有干扰,这 ...

看不下去了,我用的就是这位开发的软控板。不要认为你搞了软控,其他人都比你差。低调点~

4

主题

0

好友

250

积分

业余侠客 当前离线

Rank: 4

UID
576118
帖子
302
精华
0
经验
250 点
金钱
245 ¥
注册时间
2013-3-21
 楼主| 发表于 2014-4-19 23:09 | 显示全部楼层
已经放弃单片机软控了
目前似乎流行FPGA     省得自己写代码  直接X宝一块回来完事

48

主题

4

好友

2045

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
132231
帖子
3430
精华
0
经验
2045 点
金钱
1901 ¥
注册时间
2009-9-15
发表于 2015-6-23 22:04 | 显示全部楼层
支持软控,支持原创

3

主题

0

好友

202

积分

业余侠客 当前离线

Rank: 4

UID
632039
帖子
204
精华
0
经验
202 点
金钱
196 ¥
注册时间
2013-10-26
发表于 2015-6-24 05:41 | 显示全部楼层
对于ES9018硬控,国外一般上是在芯片的SPDIF输入pin前加上一个DIP Switch,在使用I2S时可以选择断开SPDIF输入,当然在使用软控时这个DIP Switch是可以常开的。

我比较好奇的是ES9018能否实现在LCD上显示比特率呢?我认为除了采样率,比特率资讯也很重要。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部