Skip to content
forked from yildi1337/DAQv3

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

Notifications You must be signed in to change notification settings

phamviethuy/DAQv3

 
 

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 72.1%
  • LabVIEW 13.7%
  • Assembly 9.3%
  • Python 4.9%