ts-7000
[Top] [All Lists]

[ts-7000] Re: 7800 & 3rd party A2D

To:
Subject: [ts-7000] Re: 7800 & 3rd party A2D
From: "Anouk Ahamitet" <>
Date: Thu, 28 May 2009 12:57:06 -0000


--- In "charliem_1216" <> wrote:
>
> Well, you've not given enough details to make any intelligent comments.

The A2D in question is http://www.diamondsystems.com/products/dmm32dx  

> * What's your input signal like during testing? I guess if you are calculating standard deviation, you are holding (or trying) to hold the input constant. What readings do you get, and what do you expect?

We're using the A2D in differential mode with constant values on three inputs.  One input is a 'D' battery with resistors to divide the voltage down to 144mv, one is a shorted channel to provide a zero reference, the third is a on-board precision 5V source that the vendor's software uses for auto-calibration.

> * What sampling frequency?

The A2D runs at 4us / sample.  We programmer the A2D to trigger at a 5us rate, and it puts values in a FIFO.  We discard the first 200 samples in the FIFO, and then sum the next 3334 (that equates to 1/60 of a second) samples to generate a sample to use.  The summing is done in floating point.

> * How is data taken / transferred from your A/D card? Userland or kernel driver?

Userland, I suppose, since the test program is doing direct I/O to the A2D card.

> * What kernel versions for x86 & ARM? glibc versions?

ARM:  libc-2.3.6, kernel 2.6.21-ts
x86: libc-2.3.2, kernel 2.6.19.7-L31-rtai3.6

> * What do you observe about the ARM data? Random noise, HF noise?

We haven't performed that type of analysis.

> * Have you ruled out a bad A/D card on the 7800 system?

It is the same physical card on both systems -- we just swap out the SBC and leave all of the other stuff intact.  So it always has exactly the same inputs and cabling -- except perhaps for differences on the PC- 104 bus.

> My first guesses would be RF interference with your analog stage, or timing jitter (your data is not sampled when you think it is), or even endian-ness issues.
>
> You don't really say what 'code' is running running slower. If you do any floating point at all, that can have slight to severe impacts on your program speed on ARM, depending on your system. If you are only talking of the acquisition time, you really can't discuss it without posting the code you are using.

Here's pseudo-code for the way we read a sample:

  Tell the A2D to start sampling
  Loop to read 3534 samples
    Sleep 1ms
    Loop while samples in FIFO
      Read sample
      if 200 < SampleNo then
        Sum += Sample    '' Sum is a double precision float
      ; EndIf
    EndLoop
  EndLoop
  UsableSample = Sum / 3334

Thanks for taking the time to look at this.


__._,_.___


Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: =Email Delivery: Digest | m("yahoogroups.com?subject","ts-7000-fullfeatured");=Change Delivery Format: Fully Featured">Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | =Unsubscribe

__,_._,___
<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU