Raspberry-ADC-DAC.php 8696 Bytes 04-03-2025 19:13:24
An ADC+DAC hat for the Raspberry Pi
With the DAC8552, ADS1255 and some coworkers
The assembled prototype
✈ Features
• Standard Raspberry Pi 40PIN GPIO extension header, supports Raspberry Pi series boards
• Onboard ADS1255, 2ch 24bit high-precision ADC, 30ksps sampling rate ±10 V
• Onboard DAC8552, 2ch 16bit high-precision DAC ±10 V
• Onboard input interface, for connecting I2C based sensor, like the STS30 temperature sensor
• Onboard input/output interface via BNC terminals, for connecting analog/digital signal
✈ Functional Description
The trick is the shifting of the analog range of ±10 V to the adc range of 0 ... 5 V. To achieve that,
we used the
Bipolar Voltage to Unipolar Voltage ADC Driver circuit.
And in order to shift it back from 0 ... 5 V to ±10 V, we used
the
Unipolar voltage output DAC to bipolar voltage circuit.
Those two nifty calculators reduced the challenge to finding suiteable resistor values. The circuit
is further equipped with a REF02 (+5 V ±0.2 % max. Precision Voltage Reference) and in order to reach
voltages as high as 10 V, we use a NTA0515MC (DC-DC Converter ±15 V DC, ±33 mA Output).
The unpopulated connector (K5) is an I2C / power interface to e.g. an STS-30 temperature sensor.
✈ Minimum Equipment List (MEL)
| DEVICES | REMARKS |
| Raspberry Pi 4 model B, 4GB | 30475.1 |
| Power supply unit 5.1 V, 3 A | 30475.2 |
| Memory card microSDXC 64GB+SD 200MB/s | 30475.3 |
| Raspberry Pi OS Lite (64 Bit, no Desktop) | - |
| Raspberry Pi Imager | link |
| ADC+DAC hat | :-) |
✈ Pinouts
| PIN FUNCTION |
BCM |
WIRING PI |
DESCRIPTION
|
| DRDY |
P17 |
P0 |
ADS1255 data output,active-low
|
| RESET |
P18 |
P1 |
ADS1255 reset input
|
| PDWN |
P27 |
P2 |
ADS1255 Sync/Shutdown power input, active-low
|
| CS0 |
P22 |
P3 |
ADS1255 chip select, active-low
|
| C1 |
P23 |
P4 |
DAC8532 chip select, active-low
|
| DIN |
P10 |
P12 |
SPI data input
|
| DOUT |
P9 |
P13 |
SPI data output
|
| SCK |
P11 |
P14 |
SPI clock signal
|
✈ Downloads
✈ Setup
The setup is identical to the (original) version of
Waveshare. We
made that hat pin-compatible.
You only need to keep in mind, that the scaling factors are different. For the input, this means that
±10 V is mapped to 0x000000 ... 0xFFFFFF (inverted) and the output 0xFFFF ... 0x0000 is mapped
to ±10 V (non-inverted).
✈ Share your thoughts
The webmaster does not read these comments regularely. Urgent questions should be send via email.
Ads or links to completely uncorrelated things will be removed.