wtorek, 20 marca 2018

Impedance spectrometer


Some time ago I was showing 3D render of my impedance spectrometer project. It was planned for a competition on Elektroda.pl, but of course I massively misjudged the amount of time needed to finish the project (it is still not finished). So I cab shed some light on the device, I guess...

Impedance spectrometer is a device that measures the complex impedance - real resistance + imaginary reactance as a function of frequency. It is widely used in sensor applications, biosensing, electrochemistry and material sciences. We will talk about some of the applications later on, when the device will be finished and ready to perform some test measurements.

The impedance spectrometer is based on AD5933 - an 1 MSPS, 12-Bit Impedance Converter and Network Analyzer:


The system is controlled by an STM32 ARM Cortex-M3 MCU (STM32F103CBT6) with USB capabilities. It is configured as an virtual serial port. The MCU communicates with the AD5933 over I2C, controls the relays for range changing and the system clock (AD5933 can be used with internal or external clock). As the system clock DS1085 from Dallas-Maxim is utilized, as it offer a quite broad range of frequencies (and I got it at home).

Okay, so let's start from the beginning. I had these network analyzers at home for few years (ordered them at some point or got them as samples, I don't really remember). It was high time to do something with them.

The block schematic of the IC reveals its quite complicated insides and very simple analogue front-end - it needs only a single external resistor - RFB:


In order to improve functioning of the analog front-end, I have utilized a more expanded analog front-end, from this paper - (K. Chabowski et. al, "SIMPLE WIDE FREQUENCY RANGE IMPEDANCE METER BASED ON AD5933 INTEGRATED CIRCUIT", Metrol. Meas. Syst., XXII (2015)). The analog front-end looks like so:


It's an exact copy of the schematic from the paper. Q3 and Q4 MOSFETs are used for input and output protection (instead of TVS or other similar elements, used usually). Not all values on this schematic might be correct, so please refer to the repository on GitHub, linked below.

After the front-end we have the ICs - AD5933, DS1085 and an ULN2001 for driving the relays for the  RFB switching, as seen above.

The DS1085 has two outputs - one of them is fed to the MCLK input of the AD5933, the other is an auxiliary clock, that is outputted on some gold-pins.

In the schematic on the right you can also see an ULN2001AD, that is driving the relay coils. I was being a bit lazy, and decided to use an integrated driver, not discrete transistors

Everything in the system is controlled by an ARM microcontroller (MCU) - STM32F103CBT6. For debugging purposes I've connected three LEDs to the MCU, to signal various things (e.g. USB communication).


Subseuently I have designed the printed circuit board for this circuit. It is a relatively simple, two-sided PCB.The PCB size was adjusted so it will fit in an metal enclosure from AliExpress,

All the miscellaneous signals (external triggers, auxiliary clock etc) as well as I2C are connected to goldpins close to the back side of the PCB. These will be connected to some external connectors later on.

   

Most of the elements are on the top side of the PCB. The elements visible at the bottom are protection diodes and MOSFETs, that are present on all the inputs (including the measurement inputs, where MOSFETs are used, due to lower capacitance).

Currently the spectrometer is fully assembled with - I hope - all the needed bodge wires present on the PCB. Here's a photo of an assembled unit:


Regarding the embedded software, the virtual COM (UART over USB) is working and I2C is working (on the MCU). Currently I'm working on writing high-level functions to control the DS1085 clock and the impedance analyzer itself.

Project documents and source codes are available on my GitHub - https://github.com/nikodem-czechowski/Impedance_spectrometer - all the bodge-wires are already implemented in the schematics, and the PCB is corrected accordingly. Still, I don't take any responsibility that the device documented there is 100% working and correct.

Brak komentarzy:

Prześlij komentarz