Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Proposal to enable PLL for AMSv2 players to increase PCM rate accuracy

Re: Proposal to enable PLL for AMSv2 players to increase PCM rate accuracy

From: Andrew Poelstra <asp11_at_sfu.ca>
Date: Sat, 14 Aug 2010 13:23:12 -0700

On Sat, Aug 14, 2010 at 09:37:50PM +0200, Bertrik Sikken wrote:
> Hi all,
>
> The AMSv2 players currently play back audio with quite a big pitch
> and speed error. They play about 1.1% too "flat" and slow. This is
> big enough for quite a few people to notice it, see for example the
> anythingbutipod and head-fi forums.
>
> This playback error is the result of how the playback PCM clocks are
> currently derived: they are derived from the main CPU clock at 240 MHz
> as follows
> Fpcm = Fcpu / (128 * divider), where we can control the divider.
> It turns out that the divider would need to be 42.52 for 44100 Hz
> playback. We round this up to 43, giving a rounding error in PCM
> frequency of 1.1%.
>
> There are several solutions for this:
> 1) change the main clock to a different frequency like 248 MHz
> (just like on AMSv1) this would give an error of just 0.15%.
> We tried this but it gave problems with other peripherals no
> longer working reliably (micro-SD).
> 2) use the second PLL (PLL B) available in the SoC (which is
> currently unused) to generate a different frequency which gives
> a more accurate playback rate.
>
> I propose to implement solution 2, see also
> http://www.rockbox.org/tracker/task/10906
>

I second this. We have a few other timing issues with certain targets
(ie, USB) that would be greatly helped by using the PLL - and would
also let us remove some of the idle loops (which are a huge PITA to
maintain across different compilers and optimization flags) with proper
timers.

Andrew

 
Received on 2010-08-14


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa