LTZ1000A 1ppm precision voltage reference

Since some years I’m planning and sometimes working on a project to create my own LTZ1000A programmable precision voltage reference. Up to now I developed most of the circuit and collected the special components like resistors with 0.1 ppm drift per degree temperature change produced exclusively for me. I want to show that it’s possible to create it as a home brew version.

The preliminary schematics is available for download here.

LTZ1000-precision-reference_schematics.pdf

project goals

  • LTZ1000A based
  • state of the art 32Bit A/D converter for correction
  • <1ppm long and short term stability
  • ~2μVpp noise
  • programmable 0V .. 5.05V in 37nV steps
  • thermostat stabilized

 

Receive updates directly in your inbox

Loading

 

AVR based RS232 controlled dimmer

Warning

This circuit is operated with mains voltage and some parts are directly connected to line power. So it is only intended as an example for experienced hobbyists.

Description

With this device you can switch or dim a 230V load (up to 1000W) with serial commands documented here.

foto of the prototype

The circuit uses an Atmel ATTINY2313 controller with well documented firmware written completely in AVR assembler. Beside the dim and switch once functions flexible timers can be used to switch on and off in a cycle, once or repeated. However after power loss all timers are reset and have to be reprogrammed. More details you can find in the serial protocol description.

With the ATTINY2313 builtin analog comparator the zero crossing of the mains AC is detected to fire the Triac at the right time.

The source code is provided under the GNU General Public License (GPL) and can be downloaded here. An already assembled version in hex format is here available.

project goals

  • simple, clear text commands can be invoked from a terminal
  • cheap parts, neither transformer nor RS232 isolation IC used
  • intelligent autonomous cyclic and single switching functions

The schematics is provided under the GNU General Public License (GPL) and can be downloaded here.

ATTiny2313-dimmer.sch_.pdf

 

A verified 2-layer printed circuit board layout is available too.

 

Receive updates directly in your inbox

Loading

 

Efratom LPRO-101 distribution amplifier with PLL

In 2009 a seller from China appeared on ebay.com and offered a large stock of used, about 10 years old “Efratom LPRO-101 Rubidium time base” for a very reasonable price of about 40 US$. In a laboratory you should have an exact time base and I didn’t own one before, so I ordered it. Once arrived I started to create some electronics around the LPRO-101 module with the aim to build a high quality device that feeds other laboratory appliances with an exact clock.

foto of the prototype

This project uses a 10MHz rubidium atomic clock as the time base. Several 10MHz reference outputs are provided at different levels for my other workbench equipment. An integrated Cypress CY22150 CyberClock PLL uses this reference to make 6 PLL outputs with 2.5V and 3.3V level available. The PLL can be programmed  with the integrated microcontroller Atmel ATMEGA644.

An USB-port is present to program the PLL alternative with the software from the project “CyberClock CY22150 with USB and control software”. For the USB to I2C interface I used also here the “I2C-Tiny-USB” adapter, developed by Till Harbaum with drivers available for Linux, Windows and MacOS. At the I2C-Tiny-USB homepage you will find the firmware for the ATTINY45 controller.

The device contains a keypad with four hotkeys and a rotary encoder for menu driven user input. A LCD-display shows the actual output frequencies and device status. Case and heatsink temperatures of the LPRO-101 are monitored with 1-Wire temperature sensors. Three LEDs displays the state of the device and signals errors and warnings.

All device states are shadowed in an FRAM RAMTRON FM24CL04. The last state is automatically restored at power up. A maximum of 8 different setups can be saved and recalled.

technical data

outputs

  • 1x 10MHz reference out, 1.56Vpp, sinus
  • 3x 10MHz reference out, 3.11Vpp, isolated, sinus, Vout adjustable
  • 2x 10MHz reference out, 5V TTL
  • 2x 10MHz reference out, 3.3V TTL
  • 4x CY22150 PLL out, LCLK1..4, 2.5V
  • 2x CY22150 PLL out, CLK5..6, 3.3V

timebase

  • Efratom LPRO-101 Rubidium frequency standard

power supply

  • 24V, 2.5A DC
prototype top view
PCB bottom view


The firmware for the integrated microcontroller ATMEGA644 is available for avr-gcc. It is written in C and developed with “AVR Studio 4.15”, an IDE for 8-bit AVR-controller by Atmel. The source code is provided under the GNU General Public License (GPL) and can be downloaded here.

Maybe the code has to be updated for the recent version “Atmel Studio 7”. But the old IDEs are still available here.

project goals

  • high quality components for best performance
  • very low distortion
  • low jitter
  • phase correct outputs of same type
  • device state saved in FRAM and restored at power up
  • non volatile memory for 8 setups
  • USB interface to program the PLL from a PC
  • multi platform graphical user interface

The schematics is available for download here.

Rubidium-ClockDistribution_schematics.pdf

 

A verified 2-layer printed circuit board layout is available too.

The design in Protel 98 format with Gerber Plots can be downloaded here.

 

Receive updates directly in your inbox

Loading

 

AVR 1-Wire slave with DS18B20 temperature sensor

This project demonstrates a complete 1-Wire slave implementation to connect a 1-Wire temperature sensor with local display to the 1-Wire bus.

foto of the prototype

The central part of this circuit is an ATTINY45 controller. The controller is both 1-Wire slave and master. At the master side is a DS18B20 1-Wire thermometer connected. A DS18S20 may be used as well. At the slave side the controller acts exactly as the connected DS18B20. There are two shift registers connected to the controller to drive a 3 or 4 digit multiplex display. The actual firmware drives three digits but can simply adjusted for one digit more.
The ATTINY45 does temperature conversion in a loop and displays the actual value at the local display. For the sensor parasite power is used, so a conversion takes little less than one second. But on the 1-Wire slave side the ATTINY45 delivers immediately the last conversion result. No wait for conversion is needed.
As surplus the internal 2048 bits EEPROM of the ATTINY45 can be accessed from 1-Wire bus with the standard commands for iButtons. It may be used to store minimum and maximum or mean values.

The source code is available here.

project goals

  • display temperature near the sensor
  • assimilable into existing 1-Wire systems without change of software
  • acts like a standard temperature sensor 1-Wire slave
  • no wait for conversion needed when reading temperature
  • additionally EEPROM accessible with iButton protocol

The schematics is available for download here.

1wire-slave-temperatur-schematics

 

Receive updates directly in your inbox

Loading

 

AVR 1-Wire slave with LCD-Display

This project demonstrates a complete 1-Wire slave implementation to connect an alphanumeric LCD-Display to the 1-Wire bus.

foto of the prototype

The project consists of two parts:

  • 1-Wire slave, an ATTINY45 controller
  • LCD-Controller, an ATTINY2313

These two parts communicate over a bidirectional serial connection at 115200 Baud.

Part 1: 1-Wire slave

The 1-Wire slave is software implemented with an Atmel ATTINY45 controller. A DS2401 “silicon serial number” is used to obtain a unique id for the bus without modifying the firmware. The timing should meet the specification, but is not 100% tested. The serial port is also implemented in software. At power up there will be some debug information transmitted. In the LCD 1-Wire protocol description are the 1-Wire commands described to control the LCD-Display. All command and data is integrity protected by crc16.
Additionally as surplus the internal 2048 bits EEPROM of the ATTINY45 can be accessed from 1-Wire bus with the standard commands for iButtons.
The source code is available here.

Part 2: serial LCD-Display

This project part connects a HD44780 compatible LCD-Display to a serial port. In the LCD serial protocol description are the serial commands described to control the LCD-Display. All command and data is integrity protected by crc16. This project part may be used stand alone, without the 1-Wire interface from part 1.

For switching and dimming of a backlight is a PWM output available. The PWM is set with an 8 bit value and is automatically smooth adjusted.

The source code is available here.

project goals

  • only one pin to connect LCD-Display
  • integrable to existing infrastructure
  • protocol crc16 protected
  • bidirectional communication
  • backlight control
  • additional EEPROM accessible with iButton protocol

The schematics is available for download here.

1wire-slave-lcd-schematics

 

Receive updates directly in your inbox

Loading