上海烧不起 发表于 2013-6-25 20:51

stars 发表于 2013-6-25 11:09 static/image/common/back.gif
这些所谓的"BUG"都是不存在的,建议LZ花多点时间看看ES9018手册

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

上海烧不起 发表于 2013-6-25 20:58

定音鼓 发表于 2013-6-25 17:52 static/image/common/back.gif
帖子够长,随便看了看。

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

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

上海烧不起 发表于 2013-6-25 21:00

59401 发表于 2013-6-24 21:25 static/image/common/back.gif
什么鸟“此帖仅作者可见”。
发个帖子80%语句都不通,你真对得起你的小学语文老师。

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

定音鼓 发表于 2013-6-25 22:18

上海烧不起 发表于 2013-6-25 20:48 static/image/common/back.gif
不知道是真的还是假的开发过ES9018,I2S的FIR滤波,完全是可以关了,而且没有任何问题,无论在什么采样下 ...

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

pcbbb 发表于 2013-6-26 09:24

navysong 发表于 2013-6-26 10:13

上海烧不起 发表于 2013-6-25 20:50 static/image/common/back.gif
不知道你用的是什么输入,SPDIF是完成没有问题,难道是I2S

SPDIF

上海烧不起 发表于 2013-6-26 10:59

本帖最后由 上海烧不起 于 2013-6-26 11:03 编辑

navysong 发表于 2013-6-26 10:13 static/image/common/back.gif
SPDIF

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

上海烧不起 发表于 2013-6-26 11:02

本帖最后由 上海烧不起 于 2013-6-26 11:04 编辑

pcbbb 发表于 2013-6-26 09:24 static/image/common/back.gif
好象ak411糸列是直接读出一个寄存来判断采样的,我想问下坛里9018用硬控与软控在性能上有多大区别?

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

上海烧不起 发表于 2013-6-26 22:18

stars 发表于 2013-6-25 11:09 static/image/common/back.gif
这些所谓的"BUG"都是不存在的,建议LZ花多点时间看看ES9018手册

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

west123 发表于 2013-6-30 00:47

不知道可否共享一下电路和源程序。。。手上有个89C52的单机板和LCD1602。。。
烧个程序连接一下应该没问题,,谢谢楼主。。。我邮箱PM你?

dyh8283221 发表于 2013-6-30 01:35

59401 发表于 2013-6-24 21:25
什么鸟“此帖仅作者可见”。
发个帖子80%语句都不通,你真对得起你的小学语文老师。

写程序的人一般自然语言都不通……

wl5028 发表于 2013-6-30 16:50

satwang 发表于 2013-7-6 18:36

我使用cm6631a。我有示波器测试了一下,播放器用asio4all v2的话,不开重采样,音频文件是44.1输出就是44.1,96k输出就是96k。开了重采样,就是输出重采样的。另外播放器不使用asio的话,输出采样是声卡的高级属性里设置值。win7设置时上面一行字:选择共享模式时的采样率,asio是独占模式,所以用asio时,这里的设置不起作用。

gamwah 发表于 2013-7-7 14:56

支持DIY,楼主这个很好,值得关注.......

蜡笔 发表于 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;
}

binbin30 发表于 2013-12-4 13:18

上海烧不起 发表于 2013-6-26 22:18 static/image/common/back.gif
你开发过软控吗,有没有实验过SPDIF与I2S切换过,同时在SPDIF和I2S同轴下播放音乐,看看I2S有没有干扰,这 ...

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

http://pic.hifidiy.net/forum/201311/09/072056w7zc7bdbjdpyp67j.jpg

上海烧不起 发表于 2014-4-19 23:09

已经放弃单片机软控了
目前似乎流行FPGA   省得自己写代码直接X宝一块回来完事

mrliuzhong 发表于 2015-6-23 22:04

支持软控,支持原创:P

verite 发表于 2015-6-24 05:41

对于ES9018硬控,国外一般上是在芯片的SPDIF输入pin前加上一个DIP Switch,在使用I2S时可以选择断开SPDIF输入,当然在使用软控时这个DIP Switch是可以常开的。

我比较好奇的是ES9018能否实现在LCD上显示比特率呢?我认为除了采样率,比特率资讯也很重要。
页: 1 [2]
查看完整版本: ES9018软控新玩具