Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: DSP'ing with the LPC21xx

2004-01-15 by Peter

> > > I recently studied the LPC MAC instruction set
> > and
> > > suspect
> > > > that the 21xx would be very good at running many
> > > DSP routines.

I did a feasibility study on line-echo cancellation based on an LMS 
filter for a DECT phone handset back in '95 on ARM7TDMI. The echo 
cancellation functions were broadly compliant to ETS 300 175-2. I 
got fairly good results using C compiled with the then current ARM 
tools (SDT 2.0 I think), but had to go to assembler to minimise the 
data shuffling and work on 4 data terms at a time in parallel. The 
final code required just 4MHz for the LMS filter and another 1MHz 
total for two non-linear processing functions, assuming zero 
waitstate memory. Sorry I can't remember details of the filter I 
used, itwas a long time ago :)

Lack of division hardware is a pain, but if you're doing repeated 
divisions *by the same divisor*, there is a nice alternative using 
the 7TDMI's UMULL instruction to multiply by 0xFFFFFFFF/divisor and 
take the top word of the result. You do have to check the result by 
multiplying and add one if there has been a rounding error, but this 
is still much faster than a straight division.

Peter.

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.