Multichannel analog data acquisition interface for Analog Discovery
The analog input channels of the Discovery instrument provide a wide dynamic range and a wide bandwidth. This is very helpful in many measurements that students would be making around their laboratory activities. However, there are only the two analog inputs. Often, there are many more than two low bandwidth signals, such as ambient temperature or light levels around a room, that need to measured or monitored over long durations of time when gathering experimental data. As a solution to this need the following multichannel analog multiplexer is offered.
It uses two ADG609 dual 4:1 muxes to switch both the + and - inputs for both scope channels to the 34 pin right angle male connector, see the schematic. The 4:1 mux added to the two Discovery analog input channels allows each board to measure up to 8 signal channels. Digital I/O outputs DIO 0 and 1 are used to address the four mux channels. A four position DIP switch selects which of the next four digital I/O lines from the Discovery connector enables the mux. The design uses two 8 pin stackable Arduino style headers, SV2 and SV3, to pass signals between boards and up to four boards can be stacked. By using all four boards one Discovery could measure as many as 32 differential analog signals.
Analog multiplexer schematic
The multiplexers are powered from the fixed +/- 5V supplies on the Discovery connector which will limit the allowed range of analog input voltages to be within the +/- 5V supplies. The + and - 5 volt power supplies are included on pins 33 and 34 of the right angle male connector and can be used to power sensor electronics, up to the current limits of the Discovery power supplies.
It might be desirable to make single ended measurements so the board layout includes solder jumpers to configure the minus side of the multiplexer. In the schematic, SJ1 can be used to either connect the minus scope input to the multiplexer or ground and SJ3 can connect the output of AWG1 to the multiplexer to provide possible power or drive signals to the sensor. SJ3 should of course only be shorted when the minus scope input is not being used, i.e. grounded. SJ2 and SJ4 serve the same purpose for the other scope input channel and AWG2.
8 pin stackable Arduino style headers
Below is a rendering of what the top of the PCB will look like. Design files for this board are attached to this blog.
Analog multiplexer PCB top layer
Two Mux boards stacked for 16 input channels
Another functionally similar generic dual 4:1 mux is the CD4052 ( and the alternate 74HC4052 ) which has a different pin-out than the ADG609 multiplexer. An alternate set of design files using the CD4052 mux is also included in the attachments to this blog. While the CD4052 is lower cost than the ADG609, there are two main advantages of using the ADG609 over the CD4052.
The ADG609 on resistance maximum spec is 30 ohms, where the CD4052 on resistance maximum spec is 400 ohms and the 74HC4052 on resistance maximum spec is 120 ohms. This higher resistance could cause errors and distortions in the measurements under certain conditions.
The TTL compatible digital input minimum logic high voltage spec for the ADG609 is 2.45 V where the CD4052 and 74HC4052 minimum logic high voltage spec is 3.15V which is just slightly lower than the 3.3V typical logic high output voltage generated by Discovery. The CD4052 seems to work ( most of the time ) but there is very little margin. So the TTL compatible digital inputs of the ADG609 turn out to be a better match to the 3.3V Discovery digital outputs.
This analog multiplexer data acquisition add-on board is a perfect candidate for writing a custom data acquisition program using the just released Analog Discovery SDK.
As always I welcome comments and suggestions from the user community out there.