The AD5781 is a single 18-bit, unbuffered voltage-output DAC that operates from a bipolar supply of up to 33 V. The AD5781 accepts a positive reference input in the range 5V to VDD – 2.5 V and a negative reference input in the range VSS + 2.5 V to 0 V. The AD5781 offers a relative accuracy specification of ±0.5 LSB max, and operation is guaranteed monotonic with a ±0.5 LSB DNL max specification.
The part uses a versatile 3-wire serial interface that operates at clock rates up to 35 MHz and that is compatible with standard SPI®, QSPI™, MICROWIRE™, and DSP interface standards. The part incorporates a power-on reset circuit that ensures the DAC output powers up to 0 V and in a known output impedance state and remains in this state until a valid write to the device takes place. The part provides an output clamp feature that places the output in a defined load state.
The goal of this project (Microcontroller No-OS) is to be able to provide reference projects for lower end processors, which can't run Linux, or aren't running a specific operating system, to help those customers using microcontrollers with ADI parts. Here you can find a generic driver which can be used as a base for any microcontroller platform and also specific drivers for different microcontroller platforms.
The driver contains two parts:
The Communication Driver has a standard interface, so the AD5781 driver can be used exactly as it is provided.
There are three functions which are called by the AD5781 driver:
SPI driver architecture
The following functions are implemented in this version of AD5781 driver:
Function | Description |
---|---|
long AD5781_Init(void) | Initializes the communication with the device. Return 0 in case of success and negative error code otherwise. |
long AD5781_SetRegisterValue(unsigned char registerAddress, unsigned long registerValue) | Writes data into a register. Receives as parameters the address of the register and the value of the register. Returns 0 in case of success or negative error code. |
long AD5781_GetRegisterValue(unsigned char registerAddress) | Reads the value of a register. Receives as parameter the address of the register. Returns the value of the register or negative error code. |
long AD5781_DacOuputState(unsigned char state) | Sets the DAC output in one of the three states(normal, clamped via 6KOhm to GND, tristate). Returns negative error code or 0 in case of success. |
long AD5781_SetDacValue(unsigned long value) | Writes to the DAC register. Receives as parameter the value to be written to DAC. Returns negative error code or 0 in case of success. |
long AD5781_SoftInstruction(unsigned char instructionBit) | Asserts RESET, CLR or LDAC in a software manner. Receives as parameter one of the software control bits(RESET, CLR or LDAC). Returns negative error code or 0 in case of success. |
long AD5781_Setup(unsigned long setupWord) | Configures the output amplifier, DAC coding, SDO state and the linearity error compensation. Receives as parameter a 24-bit value that sets or clears the Control Register bits(RBUF, BIN/2sC, SDODIS, LINCOMP). Returns negative error code or 0 in case of success. |
HW Platform(s):
This section contains a description of the steps required to run the AD5781 demonstration project on a Renesas RL78G14 platform using the PmodDA5.
The AD5781 demonstration project for the Renesas RL78G14 platform consists of three parts: the AD5781 Driver, the PmodDA5 Demo for RL78G14 and the RL78G14 Common Drivers.
All three parts have to be downloaded.
The reference project:
This section presents the steps for developing a software application that will run on the Renesas Demo Kit for RL78G14 for controlling and monitoring the operation of the ADI part.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !