Rockbox mail archiveSubject: 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
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
Received on 2010-08-14