Jump to content

Ola

Members
  • Posts

    23
  • Joined

  • Last visited

Everything posted by Ola

  1. It could be good to have a system datasheet available with all the most relevant measured data included. Like the normal datasheet from Analog Devices or TI with included typical waveform's like INL/DNL HD2/HD3, IM2/IM3 measurement's.
  2. When switching range to 1V/div the input noise is 12.0 mV ACRMS. This is of course normal when you have to have an attenuator in the signal path.
  3. Normally you do this with an open. When I do this with an open I have 1.55mV ACRMS. To see some problem's with on board component's in the chain you normally that with a spectrum analyzer and a known clean and filtered sine wave that have a frequency that is not an multiple of the sampling frequency (Prime frequency). By doing this you could see any unlinear or DC-DC coupling behavior in the system.
  4. Thanks a lot for this measurement's. I have similar result's in my AD3 over the same region's that you measured. I know that the system could look a lot different than a pure DAC/ADC chip. That's why I wanted to do this measurement's. I am a chip designer myself with a loot of experience in this area. I really like the idea with the AD3 and the software and look's forward to the next generation. Hope you could increase the the sampling frequency and BW to support the next generation baseband (350MHz). Maybe you also could built in some support for different RF-BB modulation/demodulation in the software.
  5. Sorry, in the M3 equation it should be C1 not W1. and the offset compensation is "-1.5e-3". (I did some other calculation in-between when I send the equation to you.)
  6. In the datasheet from TI on the 14 bit DAC and ADC used in AD3 the INL and DNL is very good (< 1LSB).
  7. You could read more about this at : https://www.analog.com/en/technical-articles/histogram-testing-determines-dnl-and-inl-errors.html
  8. This equation for INL is an good approximation. If you want a more precise result you have to take all sample's accurate position and make a histogram calculation. The best method is to use the histogram method to a sinewave input (this is a separate discussion).
  9. M3 is for INL and M4 is the derivate of M3 => DNL. W1 is just generated as a triangle wave with 10Hz and amp=5V. M3 is offset compensated with "-1.5e3" M3: 5*asin(sin(2*PI*10*Time))*2/PI - W1-1.5e-3 M4: if(isNaN(prev)) prev = M3; var dif = M3-prev; prev = M3; return dif;
  10. I am not talking about discontinuity? I am doing 10 averaging and calculate the INL (Read plot) and DNL (Green plot). There are a loot of variation in the INL curve that is related to SFDR. The DNL is related to SQNR. There sesames to be something wrong also in the SFDR calculation in the measurement tool?
  11. Could you also try try INL/DNL measurement's. As you could see the HD2 and HD3 is quite low. This is my measurement's:
  12. I understand, Thanks again for your good answer's.
  13. The "iterations" sesames to just repeat loop() function with a number and the iteration rate is defined in "Rate". Is there a variable that could be used to change data inside the loop() function? It sesames to be a limit on how many iteration's you could do until it fail's. In my case it is 10 with N=512 and frequency=15.625MHz and Rate=1kHz.
  14. I just saw that the memory is 16*32k. Is it possible to decrease the number of data lines and increase the memory to the rest 3-data lines? Is this possible in software?
  15. I increased the buffer memory to 32k and maximized the SPI frequency to 62.5MHz. In this case I could transfer 512 command's with 24 bit's without problem's. I could not understand the "Rate" variable. I guess it is related to "Iterations". I also tried this iteration's function but it failed at 5? Could you explain how many iteration's is possible depending on memory size.
  16. Hi, I have some problems with writing many times in a for loop inside "function loop()". My code is as follows: // Test Sensor SPI cmd function initialize(){ Select.Active.value = 1; Clock.Polarity.value = 0; Clock.Phase.value = 0; // CmdWrite(8, 0x00, 0, 16, 0x0101) // CTRL_REG1 // var ID = CmdRead0(8, 0x01, 0, 16, 1); return true; } function loop(){ var n = 32; for(var i = 0; i < n; i++){ CmdWrite(8, 0x00, 0, 16, i & 0xFFFF); // DATA } return true; } function finish(){ return "done"; } In this case the SPI frequency is 6.25MHz and sensor "Rate" =500kHz. This case is working OK with n=32. If I decrease the SPI frequency to 2MHz the number of "CmdWrite" is also decreased? I have this message in the message tab: Loop transfer longer than specified rate. Increase frequency. If I increase n=64 I have this message: Too many bits in loop function transfer (3328>2048). Select device configuration with more Pattern custom samples. Is it possible to increase the "n" to 1024?
  17. Where could I find a list (and explanation) over all the different script command's available for AD3? I have not find this in any documentation...
  18. Thanks for the answer, I think I was looking for your "CmdRead0" explanation. This will speed up the transfer:) I will look into the "Sensor" tab a little bit more. I think I could have a huge speed up here.
  19. Is there a performance problem with my device? When I want to check the performance with external "Loopback" (14 bit DAC to 14 bit ADC) of the AD3 I got: 1.1MHz, 125MS/s, Enob 7.2 with FS=10Vpp Averaging=50 INL/DNL 14bit DAC/ADC full scale 10Vpp 1LSB=0.61mV (external loopback) DNL=2.5mV ~12bit, INL=20mV (10Hz and 125MS/s) This is quite far off of the internal DAC/ADC spec. Could somebody else do the same to check the AD3 performance?
  20. When doing Custom script, Is there a command that does the "Command (DQ0)+Read0" or "Command (DQ0) + Write" in one command. It is to slow to do this with: Start(); Write(8, 0x10 ); // Write Reg1 10 :enable DAC Read0(16, 1); Stop(); I would like to have one command for this, or set it in a buffer to send many command's. I need to do a quick "chip select" in between each command? The communication with USB latency is to slow. Regards, Ola
  21. I have one more question. When doing Custom script, Is there a command that does the "Command (DQ0)+Read0" or "Command (DQ0) + Write" in one command. It is to slow to do this with: Start(); Write(8, 0x10 ); // Write Reg1 10 :enable DAC Read0(16, 1); Stop(); I would like to have one command for this, or set it in a buffer to send many command's. I need to do a quick "chip select" in between each command? The communication with USB latency is to slow. Regards, Ola
  22. This solved the problem. Thanks for the quick and good response:)
  23. Hi, I have an AD3 and want to read a 3-wire SPI. There is a fault in the SPI "Read0" when you use the "Command (DQ0) first. The "DQ0" stay's driven High instead of "High ohmic". I have tried without "Command (DQ0)" and just read at "DQ0" and then it is "High ohmic". Could somebody at Digilent fix this error so I can send a "Command (DQ0)" first and then do Read0?
×
×
  • Create New...