I am looking for ad9144 output voltage Transfer Function. There is a transfer function for output current, but I couldn't find any explanation about voltage at the ad9144 datasheet.
It is the transformer, it acts as a high-pass filter, any DC component in your signal will be removed. If you have a waveform between 0x0000 and 0x7fff your DC component is at 0x4000. So at the after the transformer your signal will look as if it was between -0x4000 and 0x3fff.
If you have a scope you can attach one probe before and one after the transformer and you'll see that any DC offset present before the transformer is removed after the transformer.
Moved to High Speed DACs.
I already have a post at High Speed Dacs, but there isn't reply. I thouht that I am usşgn fpga reference design may be someone can help in Fpag Reference Design Section. Actually I am using daq2 board with zc706 reference design and writing data to dac confused me. Because datasheet is saying you can use dac with two's complement input. When I create a ramp array using 0x8000 to 0x0000 in dac_buffer.c. I am seeing the exact opposite waveform on the oscilloscop.(I suppose 0x8000 most negative numberin 16-bit format). Where am I making mistakes?
This is a totally different question.
The axi_ad9144 IP core can do some data format changes too. Most likely you need to set up the core accordingly. (register 0x1014 bit 4 -- DATA FORMAT)
Are you verifying the ramp with the IIO oscilloscope? There are a lot of other things that can modify the data. I would first ignore the ADC side of the board completely and work just with the DAC.
You are right but my goal was taking attention
I changed DATA FORMAT in dac_core.c file but there is no effect on the output. Actually the output always being like AC signal, it has always negative side. For example I am trying to create pulse signal by using 0x0000s and 0xFFFFs. But interestingly the output signal also pass to the negative side. Like an AC signal.
I think you are right there is some registers I should modify.
Be aware that the output goes through a transformer and is AC coupled. Your waveform needs to be centered around 0. See T12 and T13 in the schematics.
Ok Lars, that is the point. I saw these transformers and I understood why I can not see DC voltage at the output. Now I am trying to understand that, why I see signal that centered around 0 although I give between 0 and full scale voltage. For example I have an array to generate square wave which consist 0x0000s and 0x7FFFs (2's complement format). When I give this array to DAC as an input, it generates square wave around 0. What causes this conversion?
Ok, I got it. I understand the effect of the output circuitry to output signal. Thanks Lars.
The output voltage is simply the output current, multiplied by whatever terminating resistors you are using at the DAC output. The DAC output is also a differential current output. This means that the sum of the currents on each of the two diff outputs will always equal the full scale current. The current will be split between the two outputs depending on the digital word driving the DAC. As an example, if a code of zero is driving the DAC, then the full scale current will be completely shifted to DACN. If the code is full scale, the full scale current will be driven to DACP. A half scale code will shift half the current to each of the two outputs. This will also be true for twos complement, but you will need to account for twos complement math when determining the bottom, the top, and midscale.
Retrieving data ...