Experimental tests often require signal conditioning and conversion before digital processing. The versatility of an in-house development allows the improvement of the measurement quality in a large variety of experiments within an affordable cost.
- To develop a versatile low-cost acquisition board (PCB), integrating unamplified and direct analogue inputs, opto-coupled digital inputs and outputs and servo control capabilities
- To implement a monitoring and control software to provide simple interfaces with standard data processing packages
The board is an interface between the sensors and actuators and the computer. The USB connection is currently the most popular connection between a computer and a peripheral, being suitable for this application. A virtual serial port is established via USB with a datarate of 115200 bauds, allowing the transmission of a byte every 86 µs. To avoid buffer saturation problems, the board microprocessor emits a byte every 100 µs.
- Unamplified analogue inputs: instrumentation amplifiers are installed with adjustable gain through a tuneable resistor. The sensors (typically Wheatstone bridges) are powered with o high voltages (max 15 V) together with the amplifiers. The amplified signal must be less than 5 V
- Amplified analogue inputs: must be in the range 0-5 V
- Digital inputs: direct (pull-up resistors) and opto-coupled (current limiting resistor)
- Opto-coupled outputs: grounded if activated
- Servo control outputs: 20 ms PWM period and between 0.5 and 2 ms pulse width
The schematics of the board is:
The PCB microprocessor delivers data packages with the following format:
The analogue channels are individually programmed with frequencies that are integer exponents reading 2. Depending on the number of active channels, the message length and therefore the frequency of data delivery will be different.
The header contains a high nibbles indicating the number 0x0A (digital channel not present) or 0x0B (digital channel present). The low nibble is the number of analogue channels in the message. Thus, the number of bytes in the message can be calculated by: 1 (header) + 1 (sequencer) + 2 x N (analogue channels) + 1 (only if the header indicates that digital channel is present) + 2 (checksums).
The sequencer is a counter that is incremented every time a message is sent. It can be used to know the exact time of readout or to detect whether a message has been lost during transmission.
The analogue channels contain 12 bits of data. In the upper nibble, the sign is indicated by highest bit. The remaining three bits indicate the channel (0-7) to which the readout refers to.
The servos are internally activated by interruptions in two stages, one gets program control with some time uncertainty and then, a non-interruptible loop adjusts the time exactly to the amount programmed by two bytes. This ensures smooth behaviour even when channel readouts and user commands are being executed simultaneously.
The correct interpretation of commands on the PCB is indicated by a flashing yellow LED. If the PCB is delivering data packages, green LED is on. The orange LEDs correspond to the opto-coupled outputs.
The received data are displayed on screen with a programmable cumulative moving average filter. Data can be also stored in raw format (allowing for further reading) or processed in text format. There are indicators for digital inputs and buttons and scrollbars for discrete outputs and servos.