EmbeddedRelated.com
Forums
Memfault Beyond the Launch

Using SSP with 24bit transfers

Started by wittrockjeff January 28, 2005

Hello All,

I have not used any of the LPCxxx devices before. I am considering
using an LPC2138 in an application which must read data from an
ADS1271 24bit A/D using an SPI interface.

In looking at the SSP specification for the LPC2138, it can handle a
maximum frame size of 16 bits. Does anyone know of a way to extend
this to 24bits without CPU intervention? Has anyone done something
similar? The ADS2171 will have a 100kHz data rate, so I'm worried
about having interrupts on a Byte by Byte basis, as that would be a
300kHz interrupt rate (100kHz X 24/8).

Thanks for any help.
Jeff

p.s. Great user group. Lots of good info.



An Engineer's Guide to the LPC2100 Series

At 05:24 PM 1/28/05 +0000, you wrote:
>In looking at the SSP specification for the LPC2138, it can handle a
>maximum frame size of 16 bits. Does anyone know of a way to extend
>this to 24bits without CPU intervention? Has anyone done something
>similar? The ADS2171 will have a 100kHz data rate, so I'm worried
>about having interrupts on a Byte by Byte basis, as that would be a
>300kHz interrupt rate (100kHz X 24/8).


I haven't worked with it yet, but it looks as if the FIFO should reduce
your rate a little more, conservatively 4x (8 frame FIFO, 8 bit frames,
interrupt on 1/2 full FIFO, FIFO emptied before another entry arrives)
which take you down to 75kHz. That still only gives you 13 microseconds to
perform the interrupt though (assuming you do nothing else).

Robert

" 'Freedom' has no meaning of itself. There are always restrictions,
be they legal, genetic, or physical. If you don't believe me, try to
chew a radio signal. "

Kelvin Throop, III


At 05:24 PM 1/28/05 +0000, you wrote:
>I have not used any of the LPCxxx devices before. I am considering
>using an LPC2138 in an application which must read data from an
>ADS1271 24bit A/D using an SPI interface.


Actually, I have another question. As a matter of curiosity what kind of
source do you have that's 24 bit's accurate? And what are you using for a
reference? (24 bits implies something like 1 part in 10,000,000. or 0.2
microvolts in 5V)

Robert

" 'Freedom' has no meaning of itself. There are always restrictions,
be they legal, genetic, or physical. If you don't believe me, try to
chew a radio signal. "

Kelvin Throop, III



--- In , "wittrockjeff" <jwittrock@m...> wrote:
>
> Hello All,
>
> I have not used any of the LPCxxx devices before. I am considering
> using an LPC2138 in an application which must read data from an
> ADS1271 24bit A/D using an SPI interface.
>
> In looking at the SSP specification for the LPC2138, it can handle a
> maximum frame size of 16 bits. Does anyone know of a way to extend
> this to 24bits without CPU intervention? Has anyone done something
> similar? The ADS2171 will have a 100kHz data rate, so I'm worried
> about having interrupts on a Byte by Byte basis, as that would be a
> 300kHz interrupt rate (100kHz X 24/8).
>
> Thanks for any help.
> Jeff
>
> p.s. Great user group. Lots of good info.

Hi Jeff
we are using 2138 with and ads1251 but only at 9.6Khz the problem we
had running at faster rates is processing the data at the current rate
we only have 104us to work with between measurements at 100Khz this is
down to 10us not sure about the 1271 but the 1251 requires some block
averaging of readings to achieve the the maximum resolution is this case?

paul




Re: Using SSP with 24bit transfers
Re: Using SSP with 24bit transfers
> Hi Jeff
> we are using 2138 with and ads1251 but only at 9.6Khz the problem we
> had running at faster rates is processing the data at the current rate
> we only have 104us to work with between measurements at 100Khz this is
> down to 10us not sure about the 1271 but the 1251 requires some block
> averaging of readings to achieve the the maximum resolution is this case?
>
> paul

Geez, makes me feel out of breath... :-) .... you could suffocate speaking this out
loud ....



Hello Rob,

I will be interfacing to various hall effect sensors.
Absolute accuracy doesn't really have much to do with my selecting a
24bit A/D though. I will only need a voltage measurement accuracy on
the order of 0.1%. In the past I have used various high resolution
sigma-delta converters and have never achieved 24bit noise free
resolution, but I have had designs which have routinely achieved say
19-20 bit resolution at low data rates.

My real reason for using a sigma-delta A/D is the inherent linearity,
and wide dynamic range. In other words I may at times have to
measure a change of 0.1Gauss in the presence of a 10kGauss field even
though I can't hope to have an absolute accuracy of 0.1G out of 10kG
(0.001%) with a hall effect sensor.

Jeff

--- In , Robert Adsett <subscriptions@a...>
wrote:
> At 05:24 PM 1/28/05 +0000, you wrote:
> >I have not used any of the LPCxxx devices before. I am considering
> >using an LPC2138 in an application which must read data from an
> >ADS1271 24bit A/D using an SPI interface. > Actually, I have another question. As a matter of curiosity what
kind of
> source do you have that's 24 bit's accurate? And what are you
using for a
> reference? (24 bits implies something like 1 part in 10,000,000.
or 0.2
> microvolts in 5V)
>
> Robert
>
> " 'Freedom' has no meaning of itself. There are always
restrictions,
> be they legal, genetic, or physical. If you don't believe me, try
to
> chew a radio signal. "
>
> Kelvin Throop, III




--- In , "beano040461" <paulbearne@b...> wrote:
>
> --- In , "wittrockjeff" <jwittrock@m...>
wrote:
> >
> > Hello All,
> >
> > I have not used any of the LPCxxx devices before. I am
considering
> > using an LPC2138 in an application which must read data from an
> > ADS1271 24bit A/D using an SPI interface.
> >
> > In looking at the SSP specification for the LPC2138, it can
handle a
> > maximum frame size of 16 bits. Does anyone know of a way to
extend
> > this to 24bits without CPU intervention? Has anyone done
something
> > similar? The ADS2171 will have a 100kHz data rate, so I'm
worried
> > about having interrupts on a Byte by Byte basis, as that would be
a
> > 300kHz interrupt rate (100kHz X 24/8).
> >
> > Thanks for any help.
> > Jeff
> >
> > p.s. Great user group. Lots of good info.
>
> Hi Jeff
> we are using 2138 with and ads1251 but only at 9.6Khz the problem we
> had running at faster rates is processing the data at the current
rate
> we only have 104us to work with between measurements at 100Khz this
is
> down to 10us not sure about the 1271 but the 1251 requires some
block
> averaging of readings to achieve the the maximum resolution is this
case?
>
> paul


Hello Paul,

You are right about having to do filtering in software in order to
use the high resolution to best advantage.

I don't expect to be able to do much (any?) signal processing in real
time. Instead I would just shoot the A/D results into a reasonable
size buffer, and do AVG or RMS calculations after the fact.

One other requirement for this project would require some real time
math. I would be integrating a voltage from a flux sense coil. This
requires a continuous conversion and adding the A/D result to what
would probably have to be a floating point variable.

This is my first look at any ARM core, so I'm still looking at things
like interrupt response time, speed of floating point math with GNU
tools, or IAR tools etc, and am unsure if its a very good fit for
what I'm trying to do.

Thanks,
WITTROCK



Re: Using SSP with 24bit transfers

Fine Jeff

our application is not so speed intensive on the AtoD but we do have
to implement an FIR, our main restriction on the speed is also that
the atod value has to be produced over modbus so comms speed tends to
be the major restriction. We did a lot of timing tests when we started
the project before christmas if you like i could send them to you. i
could also send you the ssp code although with the 125x sharing the
data line with the dataready, we use an external int to pick up the
dataready and then just squirt 3 characters up the spi and to get the
24 bits of data back so not sure if relevant. paul




Memfault Beyond the Launch