Mailing List Archive

Why is the CX25843 baseband processing path run at 32000 samples/sec?
Can anyone explain the rationale behind the CX25843 baseband audio
processing path being run at 32000 samples/second for I2S audio?

Here's my commented version of the setup from the cx18 code (which has
it's roots in the cx25840 code):

For 44.1 ksps I2S audio:

/* src1_ctl */
/* 0x1.60cd = 44100/32000 */
cx18_av_write4(cx, 0x8f8, 0x080160cd);

/* src3/4/6_ctl */
/* 0x1.7385 = 2 * (32000/44100) */
cx18_av_write4(cx, 0x900, 0x08017385);
cx18_av_write4(cx, 0x904, 0x08017385);
cx18_av_write4(cx, 0x90c, 0x08017385);

For 48 ksps I2S audio:
/* src1_ctl */
/* 0x1.8000 = 48000/32000 */
cx18_av_write4(cx, 0x8f8, 0x08018000);

/* src3/4/6_ctl */
/* 0x1.5555 = 2 * (32000/48000) */
cx18_av_write4(cx, 0x900, 0x08015555);
cx18_av_write4(cx, 0x904, 0x08015555);
cx18_av_write4(cx, 0x90c, 0x08015555);

Regards,
Andy


_______________________________________________
ivtv-devel mailing list
ivtv-devel@ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel
Re: Why is the CX25843 baseband processing path run at 32000 samples/sec? [ In reply to ]
On Sun, 2008-12-21 at 17:22 -0500, Andy Walls wrote:
> Can anyone explain the rationale behind the CX25843 baseband audio
> processing path being run at 32000 samples/second for I2S audio?

Ooops, sorry. Why are they all scaled to 64000 samples/sec?
(Forgot about the 2x upscale before SRC1.)

Actually I think the short answers are: one doesn't need to go any
faster, and then the filters in the baseband path all appear to affect
the same bands for both broadcast and I2S audio. It would still it
would be nice to know the history though.

On a related note, why does the CX25840 module use 384x times the sample
rate for the Aux PLL for broadcast audio but 256x the sample rate for
the Aux PLL for I2S audio?

Regards,
Andy


> Here's my commented version of the setup from the cx18 code (which has
> it's roots in the cx25840 code):
>
> For 44.1 ksps I2S audio:
>
> /* src1_ctl */
> /* 0x1.60cd = 44100/32000 */
> cx18_av_write4(cx, 0x8f8, 0x080160cd);
>
> /* src3/4/6_ctl */
> /* 0x1.7385 = 2 * (32000/44100) */
> cx18_av_write4(cx, 0x900, 0x08017385);
> cx18_av_write4(cx, 0x904, 0x08017385);
> cx18_av_write4(cx, 0x90c, 0x08017385);
>
> For 48 ksps I2S audio:
> /* src1_ctl */
> /* 0x1.8000 = 48000/32000 */
> cx18_av_write4(cx, 0x8f8, 0x08018000);
>
> /* src3/4/6_ctl */
> /* 0x1.5555 = 2 * (32000/48000) */
> cx18_av_write4(cx, 0x900, 0x08015555);
> cx18_av_write4(cx, 0x904, 0x08015555);
> cx18_av_write4(cx, 0x90c, 0x08015555);
>
> Regards,
> Andy
>
>
> _______________________________________________
> ivtv-devel mailing list
> ivtv-devel@ivtvdriver.org
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel
>


_______________________________________________
ivtv-devel mailing list
ivtv-devel@ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel