How about using UBB to extend a SPI ADC

Werner Almesberger werner at almesberger.net
Fri Apr 8 18:26:03 EDT 2011


Jianming Liu wrote:
> I am writing to query about whether it is possible to use UBB to extend a
> SPI ADC (ads8341), because currently I am designing a data collection system
> using a SPI ADC ads8341 based on S3C6410.

That should work, yes. One question is what sampling rate you need
and how much delay and jitter your samples tolerate. UBB is
bit-banged, so your maximum data rate is limited to something like
1 Mbps (or ~30 kSa/s), at 100% CPU utilization.

The jitter depends on your trigger. Would you do periodic sampling,
have a trigger signal, or would your program decide when it's time
on its own ? For anything that uses a timer/external trigger, you
need to consider the Ben's interrupt latency.

Delay depends on latency plus how quickly you need to retrieve the
sample. In the best case, if you have interrupt-driven operation,
you'd first retrieve the previous sample and only then start the
next acquisition and conversion. That way, you only need one
interrupt per sample.

> I am considering whether it is
> possible use the UBB and JZ47xx instead for this.

If "JZ47xx" means that you'll design your own board, then you could
use the SPI controller and thus wouldn't have to worry about
bit-banging. You'd still have to think about the other timing
issues, though (like you would with any other processor).

> How to implement the driver for this under Linux,

That again depends on your requirements ;-) If they're modest
enough, even a user-space implementation might do.

Ben+UBB with a user-space driver may also be handy for prototyping.

- Werner




More information about the discussion mailing list


interactive