DAC 5 click is an advanced 10-bit eight-channel digital to analog converter (DAC). This device communicates with the main MCU through the I2C interface, supporting the standard mode (100 kbps), fast mode (400 kbps), and fast+ mode (1 Mbps). Also, there is a selectable voltage reference as well with onboard jumpers which makes this click more open for specific projects. I2C address can be selected with a cross-shaped jumper if such option is needed. DAC 5 click allows fine tuning to meet any specific project in mind.
How Does It Work?
DAC53608 from Texas Instruments is the main active component onboard on DAC 5 click. This is a low power, eight channel, 10-bit voltage output Digital-To-Analog Convertor (DAC). It is specified monotonic by design across a wide power supply range from 1,8 V to 5,5 V. Using an external reference, the DAC53608 provides a full-scale output voltage in the range from 0V to Vref, while consuming 0,1 mA quiescent current per channel. The DAC53608 also includes per channel, user programmable, power down registers facilitate the DAC output buffers to start in a power down to 10K state and remain in this state until a power up command is issued to these output buffers.
The DAC 5 click has a high precision voltage reference included onboard. For that purpose, MAX6106 is used, a 2.048V voltage reference IC, from Maxim Integrated. This little SOT23 device is stable with capacitive loads, and no output capacitor is required. It has regulations for both sink and source and is very accurate. This gives DAC 5 click good flexibility for use in various applications.
Low quiescent current, wide power supply range, and per channel power down option makes DAC53608 ideal for low power, battery operated system. The device communicates through I2C interface. These devices support I2C standard mode (100 Kbps), fast mode (400 Kbps) and fast+ mode (1 Mbps). These devices also have a load DAC (LDAC) pin that allows simultaneous DAC updates. LDAC pin is tied with a mikroBUS™ PWM pin. The I2C lines (SCL and SDA) are routed to the dedicated mikroBUS™pins.
The voltage level of the logic section can be selected via VCC SEL jumper, between 3.3V and 5V. This allows for both 3.3V and 5V capable MCUs to use the I2C communication lines properly. For I2C address selection, DAC 5 click has cross-shape jumper. There are four positions for I2C selection which can be selected with a SMD 0 ohms resistor. DAC 5 click has Vref SEL jumper for choosing between 2,048 V and 1,024 V, where 1,024 V is achieved using a voltage divider. Another jumper is for VrefIN and choosing between Vref (1,024 and 2,048) and VCC (3,3V and 5V). Voltage outputs from DAC 5 click can be connected through 9-therminal block where first is common GND and the last eight are VOUTA to VOUTH.
Specifications
Type |
DAC |
Applications |
Suitable for programmable power supplies, programable window comparator, VCOM biasing in display panel, laser driver in multifunction printers, auto focus digital still camera lens, ATM machines, currency counters, barcode readers, IP network cameras, projectors |
On-board modules |
DAC53608, a low power, eight channel, voltage output, 10-bit digital to analog converter (DAC) from Texas Instruments |
Key Features |
High precision MAX6106 voltage reference, low power consumption, high speed I2C interface |
Interface |
GPIO,I2C |
Click board size |
L (57.15 x 25.4 mm) |
Input Voltage |
3.3V,5V |
Pinout diagram
This table shows how the pinout on DAC 5 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
|
Pin |
Notes |
---|
|
NC |
1 |
AN |
PWM |
16 |
LDA |
Output update OUT |
Asynchronous clear in |
CLR |
2 |
RST |
INT |
15 |
NC |
|
|
NC |
3 |
CS |
RX |
14 |
NC |
|
|
NC |
4 |
SCK |
TX |
13 |
NC |
|
|
NC |
5 |
MISO |
SCL |
12 |
SCL |
I2C Clock |
|
NC |
6 |
MOSI |
SDA |
11 |
SDA |
I2C Data |
Power Supply |
3.3V |
7 |
3.3V |
5V |
10 |
5V |
Power Supply |
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Onboard settings and indicators
Label |
Name |
Default |
Description |
---|
JP1 |
VCC SEL |
Left |
Power Supply Voltage Selection 3V3/5V, left position 3v3, right position 5v |
JP2,JP3 |
ADDR |
Left |
4-position I2C address Selection toward host mcu: left - SDA; Right - SCL; Up - VCC; Down - GND |
JP4 |
Vref SELL |
Left |
Reference voltage (Vref) selection 2.048V/1.024V, left position 2.048V, right position 1.024V |
JP5 |
Vref IN |
Left |
Reference voltage input source selection (VrefIN) VCC/Vref, left position VCC, right position Vref |
LD1 |
PWR |
- |
Power LED indicator |
Software Support
We provide a library for the DAC 5 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library initializes and defines the I2C bus and drivers that offer a choice for writing data in register and reads data from register. The library includes function for sending data to output, configuration device, sets LDAC states, reading device info(DEVICE ID), software reset, clear and generic read and write functions.
Key functions:
uint8_t dac5_sendData(uint8_t dataReg, uint16_t dataBuff)
- Function for sending data to output
void dac5_config(uint16_t configData)
- Configuration function
uint8_t dac5_setLdacPin(uint8_t status)
- Function for setting LDAC pin status
void dac5_clear()
- Function for clearing data from output
Examples description
The application is composed of three sections :
- System Initialization - Initializes I2C module
- Application Initialization - Initializes driver init, tests communication and configures device for measureing
- Application Task - Sends 4 different values to one output and prints expected measurement
void applicationTask()
{
uint16_t sender[4] = {0x0118, 0x0FF0, 0x0AAC, 0x0DD4};
uint16_t expected[4] = {140, 2030, 1360, 1760};
uint8_t endCount = 4;
uint8_t i;
for (i = 0; i < endCount; i++)
{
if (dac5_sendData(_DAC5_REG_DAC_A_DATA, sender[i]) == _DAC5_ERROR)
{
mikrobus_logWrite( "-ERROR SENDING DATA", _LOG_LINE);
mikrobus_logWrite( " ", _LOG_LINE);
}
else
{
mikrobus_logWrite( "-SUCCESFUL SENDING DATA", _LOG_LINE);
mikrobus_logWrite( " ", _LOG_LINE);
mikrobus_logWrite( "Sending : ", _LOG_TEXT);
IntToStr(sender[i], demoText);
mikrobus_logWrite( demoText, _LOG_LINE);
mikrobus_logWrite( "Expected return around : ", _LOG_TEXT);
IntToStr(expected[i], demoText);
mikrobus_logWrite( demoText, _LOG_TEXT);
mikrobus_logWrite( " mV ", _LOG_LINE);
}
Delay_ms ( 5000 );
dac5_clear();
mikrobus_logWrite( "Clearing output... ", _LOG_LINE);
mikrobus_logWrite( " ", _LOG_LINE);
mikrobus_logWrite( " ", _LOG_LINE);
Delay_ms ( 2000 );
}
mikrobus_logWrite( "''''''''''''''''''''''''''''''", _LOG_LINE);
mikrobus_logWrite( " ", _LOG_LINE);
mikrobus_logWrite( " ", _LOG_LINE);
Delay_ms ( 1000 );
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This Click board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.
Resources
Downloads