Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 May 1996 11:43:18 -0500
From:      Alex Nash <alex@orion.fa.tdktca.com>
To:        h.nalen@mbox300.swipnet.se
Cc:        hackers@freebsd.org
Subject:   RE: Hello,
Message-ID:  <199605151643.LAA20901@orion.fa.tdktca.com>

next in thread | raw e-mail | index | archive | help
> I'm working with electronics and I have a app. that is rather
> time-critical (if you know what I mean). I have a fast AD that need to
> be served at a high rate, i.e store the data in realtime. I belive the
> only way is to do it with DMA.  I've using Intels 386-EX as CPU
> (embedded) that has 2 DMA-channels. The AD need to store a 16 bits
> parallell data at a rate of 5 us (up to 8 Mb).
>  
> What operating mode do YOU suggest? Single, chained? Do you think
> the CPU and the other software "feels" this DMA-transfer?

I don't know anything specific about the 386-EX, but when I used to do
this kind of thing on 486s an average DMA transfer would consume about
1.5~2us/transfer (that's how long the bus is busy performing the
transfer, the actual time between transfers would be up around 4us in
single transfer mode).  Thus, your bus' bandwidth has just been cut
by ~40%.  Since the time between successive transfers is close to your
5us, you may want to run in burst mode (but you would then need a
staging area like a FIFO).

> One more question, the DRAM-refresh. Do it need much bustime? The DRAM need 
> refresh every 16ms and I wounder how much bus-time the refresh takes? (Would 
> the DMA-transfer been destroyed or delayed so the data could not be saved 
> correct?)

When you issue a DMA request there are no guarantees as to when your
transfer will be granted (also consider that other DMA requests may be
consuming the bus too).  To be safe, you should probably place a FIFO
between your A/D and DMA transfer steps.

> I would be grateful if anyone could answer this few questions. If you can't, 
> can you tell me someone that can help me with this?

If you don't already have it, get SAMS Interfacing with the IBM PC.
It's a little dated (only covering ISA), but it should contain the
timing diagrams you are interested in.

Alex



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605151643.LAA20901>