GithubHelp home page GithubHelp logo

xinghuaman / daqv3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yildi1337/daqv3

0.0 0.0 0.0 444.37 MB

A Dual-Channel, Low Noise, Modular, 100 kHz Bandwidth, 24-Bit Data Acquisition (DAQ) Device / FFT Signal Analyzer

Python 4.95% C 72.01% Assembly 9.31% LabVIEW 13.71% Batchfile 0.03%

daqv3's Introduction

DAQv3

A Dual-Channel, Low Noise, Modular, 100 kHz Bandwidth, 24-Bit Data Acquisition (DAQ) Device / FFT Signal Analyzer

Table of Contents

Introduction

Work in progress ...

CAD Model

The complete CAD model can be downloaded here (Autodesk Inventor 2023 files) including all modules and the case.

Modules

AnalogConversion_v1

AnalogConversion_v2

AnalogConversion_v3

Backplane_v1

DigitalBackend_v1

PowerSupply_12V_v1

PowerSupply_12V_v2

PowerSupply_5V_v1

PowerSupply_5V_v2

USBConnectors_v1

Firmware

The firmware running on the STM32H753ZIT6 is mainly written in ANSI C and has been developed in STM32CubeIDE version 1.10.1 utilizing the official STM32H7xx_HAL_Driver. Among others, the firmware performs the following tasks:

  • Configuration of the ADC AD7768 (on module AnalogConversion_v3) via SPI (SPI_3).
  • Reception of sampled data from the ADC AD7768 via SPI (SPI_2) and DMA (DMA1_Stream0).
  • Transmission of sampled data from the ADC AD7768 via USB 2.0 Hi-Speed to the PC utilizing ULPI interface and an additional Hi-Speed USB PHY (USB3300).
  • Handling USART connection (USART_1, via FT232RL chip on USBConnectors_v1) for debug purposes and for exchanging control/status commands with the PC.
  • Controlling I2C bus (I2C_4) for controlling I/O expander TCA9534A (e.g. on module AnalogConversion_v3) which, in turn, drives a relay driver (MAX4820) on the same module.
  • Controlling front LEDs (on module DigitalBackend_v1).

The complete source code can be found here.

USB Driver

Two USB drivers are needed for operating the DAQ v3:

  • For the reception of the sampled data from the ADC NI-VISA is utilized. The driver matching the hardware of this project has been generated with the NI-VISA Driver Wizard an can be downloaded here.
  • To use the USB debug interface only the official USB serial driver from FTDI is required, which can be downloaded here.

Debug and Control Interface

Tool for graphical display of status information and for controlling the hardware via the virtual serial interface (second USB-B port). The python source code and a binary (only tested on x64 Microsoft Windows 10) can be downloaded here.

Measurement Results

Linear Power Supply vs. Switched-Mode Power Supply

Noise measurements (60 seconds) were performed while powering the electronics with the power supplies of versions v1 and v2, where the abbreviations PS and ACNV in the titles refer to the power supply and analog conversion modules.

The two linear power supply modules of version v1 both operate with transformers. This resulted in heavy magnetic interference in the form of the mains frequency and multiples thereof.

The two power supply modules of version v2 both operate with AC/DC power modules (TMLM 20105, TMLM 20115) from Traco Power. Their switching frequencies are around 132 +/- 8 kHz and thus above the useful range of 0 - 100 kHz (Nyquist frequency is 128 kHz).

Differential Input Module (AnalogConversion_v3)

The investigated setup consists of the modules:

Mains Interference and Grounding

The two differential inputs of each channel were connected via 50 Ohm SMA resistors with AGND (SHIELD connected via R6 = 0 Ohm with AGND, see schematics).

Obviously, the lowest interference occurs in grounded mode and when GND of the backplane is directly connected to the chassis/the protective earth connector of the power entry module (first plot).

Input Noise of Differential Opamp Driver and ADC

The measurement result from above is essential for the further development of the preamplifier. The gain of the preamplifier must be high enough to be able to neglect the noise from the opamp driver (ADA4945-1) and ADC (AD7768-4) determined here. A useful model for describing the power spectral density of the voltage noise $PSD(f)$ (in units of $\mathrm{V}^2/\mathrm{Hz}$) is the polynomial law $$\mathrm{PSD}(f) = \mathrm{LSD}^2(f) = \sum_{i=-1}^{0} b_i f^i$$ where $i=0$ and $i=-1$ refer to white noise and $1/f$ flicker noise, respectively, and $\mathrm{LSD}(f)$ referes to the linear spectrum density (in units of $\mathrm{V}/\sqrt{\mathrm{Hz}}$). For this measurement, values of

  • $b_{-1} = 1.3 \cdot 10^{-13}~\mathrm{V}^2$
  • $b_0 = {1.3 \cdot 10^{-15}~\mathrm{V}^2/\mathrm{Hz}}$ were found.

This results in a $1/f$ corner frequency of $f_{\mathrm{c}} = b_{-1}/b_0 = 100~\mathrm{Hz}$. The white voltage noise density is equal to $\sqrt{b_0} = 36~\mathrm{nV}/\sqrt{\mathrm{Hz}}$. Based on the two time domain noise signals RMS noise values of $13.2~\mu\mathrm{V}$ (channel 1) and $13.5~\mu\mathrm{V}$ (channel 2) were determined after substracting the DC offsets of $-6.5~\mathrm{mV}$ and $-1.8~\mathrm{mV}$.

The measured RMS noise values are in good agreement with the value of $11.58~\mu\mathrm{V}$ given in the datasheet (for the ADC only).

In addition, for $V_{\mathrm{ref}} = 5~\mathrm{V}$, the dynamic range of the utilized combination of opamp driver and ADC is better than

$$\mathrm{DR} = 20 \cdot \log_{10}\left(\frac{2 \cdot V_{\mathrm{ref}}}{\sqrt{2} \cdot \mathrm{RMS}\ \mathrm{noise}}\right)~\mathrm{dB} = 114\ \mathrm{dB}$$

ADC RAW Data for Several Input Configurations

daqv3's People

Contributors

yildi1337 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.