General > General Technical Chat
Review: Hantek DDS 3X25. Anyone own one?
Mechatrommer:
--- Quote from: marabut on June 14, 2013, 09:04:49 pm ---but I wonder if implementation e.g. SPI or I2C on digital I/O is possible that way. Is it fast enough to control the pins and transfer data both ways? It would be nice to control output LPF, attenuator etc. from one piece of software and using only USB as interface.
--- End quote ---
i believe from looking the software and hardware design, whats come out of 12bits digital IO is the same as what is feed to the DAC inside. so calling the API and sending data points will do both feeding the analog signal and digital output at the same time. but i'm not 100% since i havent tested it. i believe designing a software to feed the device with SPI or I2C should be possible. on the surface, the gui will handle and translate the bits stream and protocol, but under it, the API procedure calls should be the same as documented. bear in mind the limit is 4K memory only.
marabut:
Mechatrommer,
I hope you're wrong ;)
1025G's user manual (pages 23/24) states that digital i/o can work as:
1. Pattern Generator:
The vertical resolution of Hantek1025G is 12bits. If selected this mode, you can get the each bit of the value by testing the digital out pins. [...]
2. Programmable Output:
Select menu “Programmable output”, then the Programmable output mode works. Select menu “Digital IO”->”Output set”, the “output set” dialog show. By selecting one pin, that digital output pin will output high level. Otherwise, the pin will output low level.
3. Digital Input:
Select menu “Digital IO”->”Digital Input”, the following dialog show. If you input a high level to a digital input pin, the pin on the dialog would show H; otherwise, the pin on the dialog would show L.
From above statements (if true) is clear that one can control single bits of digital i/o without affecting output waveform (data being sent to DAC in the meantime). I doubt that size of internal memory has anything to do with it. Rather it's just simply reading and writing some FPGA registers (of course using Hantek's API). So my question is: are there any functions available in API (or DLL exported symbols) that can be used to such tasks? And how fast they are?
Enough to implement one of popular serial protocols?
marmad:
--- Quote from: Mechatrommer on June 14, 2013, 09:35:05 pm ---i believe from looking the software and hardware design, whats come out of 12bits digital IO is the same as what is feed to the DAC inside. so calling the API and sending data points will do both feeding the analog signal and digital output at the same time. but i'm not 100% since i havent tested it. i believe designing a software to feed the device with SPI or I2C should be possible. on the surface, the gui will handle and translate the bits stream and protocol, but under it, the API procedure calls should be the same as documented. bear in mind the limit is 4K memory only.
--- End quote ---
This is wrong - at least for the DDS-3X25. You can use the Hantek software (or download my software from somewhere in this thread) and control all the digital IO pins independently of the DAC (or output the generator values - it's switchable).
marmad:
--- Quote from: marabut on June 15, 2013, 10:58:29 am ---From above statements (if true) is clear that one can control single bits of digital i/o without affecting output waveform (data being sent to DAC in the meantime). I doubt that size of internal memory has anything to do with it. Rather it's just simply reading and writing some FPGA registers (of course using Hantek's API). So my question is: are there any functions available in API (or DLL exported symbols) that can be used to such tasks? And how fast they are?
Enough to implement one of popular serial protocols?
--- End quote ---
There is one DLL command for switching between programmable or generator output:
DDSSetDIOMode / Description: Switch the mode of DDS / 1: Programmable output 0: Generator output
And one DLL command for setting programmable output:
DDSSetDigitalOut / Description: Set the programmable output ports, only affected in programmable output / unsigned short Out: the value of digital output, only low 12 bits effected
I can't remember testing the speed - but nothing is fast using USB and DLL commands on the Hantek.
marabut:
marmad,
thank you for sharing the knowledge. I'm glad that my suspicions weren't distant from truth. :)
Is there a function to read digital pins too?
My biggest concern is now speed of USB communication through Hantek's dll: implementation of any serial protocol that way means sending and receiving single bits using Hantek's provided commands. I've got an idea how communication works from asbokid's post earlier in this thread - but know nothing about achievable update frequency.
Have you done any "responsivity" tests?
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version