DAC-LTC144X

Public

@stephf0716

Download board files

Files for version 1. Pick what you came for.

Share DAC-LTC144X

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

DAC-LTC144X

A small KiCad breakout board and an Arduino driver for the Linear Technology LTC1446 / LTC1446L — a dual 12-bit rail-to-rail DAC with an internal reference and a 3-wire SPI interface in an 8-pin package.

The part

LTC1446LTC1446L
Supply4.5V – 5.5V2.7V – 5.5V
Full-scale output4.095V (1mV per LSB)2.5V
Resolution12 bits, 2 channels12 bits, 2 channels
Interface3-wire SPI, 24-bit word3-wire SPI, 24-bit word
Settling time14µs to ±0.5 LSB14µs to ±0.5 LSB

Both channels are written in a single 24-bit transfer: the first 12 bits set DAC A, the second 12 set DAC B. Data is latched on the rising edge of CLK (SPI mode 0, MSB first), and the outputs update when CS/LD returns high. The DAC has a power-on reset that clears both channels to 0V.

The board

Two-layer, 18 × 22 mm, through-hole headers, designed in KiCad 6.

RefValuePurpose
U1LTC1446Dual 12-bit DAC, SO-8
R110kPull-up on CS/LD to VCC
C10.1µFVCC bypass
J11x5 headerControl in — CLK, D_IN, CS, VCC, GND
J21x2 headerAnalog out — Vout A, Vout B

Open LTC1446-BRD.kicad_pro in KiCad 6 or newer.

Wiring

J1 pinSignalArduino (Uno)
1CLK13 (SCK)
2D_IN11 (MOSI)
3CS10 (or any digital pin)
4VCC5V
5GNDGND

The DAC's D_OUT pin is brought to U1 only; it exists so multiple LTC1446s can be daisy-chained, and is left unconnected on this board.

The Arduino library

Copy this repository into your Arduino libraries/ folder, or clone it there:

git clone https://github.com/stephf0716/DAC-LTC144X ~/Documents/Arduino/libraries/LTC1446
#include <LTC1446.h>

LTC1446 dac(10);  // CS/LD wired to pin 10

void setup() {
  dac.begin();
  dac.setVoltage(2048, 0);  // A to mid-scale (~2.048V), B to 0V
}

void loop() {}

API

  • LTC1446(uint8_t csPin) — construct with the pin wired to CS/LD.
  • begin() — configures the CS pin and starts SPI.
  • setVoltage(uint16_t voutA, uint16_t voutB) — writes both channels in one transfer. Codes run 0 to LTC1446_MAX_CODE (4095) and are clamped, since a value wider than 12 bits would overflow into the other channel.

See examples/BasicSweep for a full sketch that ramps both channels.

Repository layout

src/                    Arduino library sources
examples/BasicSweep/    example sketch
datasheets/             LTC1446 datasheet
LTC1446-BRD.*           KiCad 6 project, schematic, and PCB layout

License

MIT — see LICENSE. The bundled datasheet is the property of Linear Technology / Analog Devices and is included for convenience only.

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.