| General > General Technical Chat |
| Review: Hantek DDS 3X25. Anyone own one? |
| << < (42/108) > >> |
| marmad:
--- Quote ---1) save as png or jpg. those bmp's can easily waste half a meg on dave's server. and bandwidth of thousands others. --- End quote --- Sorry! I would normally... I just spaced out :P - Just changed them to pngs ;) --- Quote ---3) retry at odd frequency, like 3MHz, 33MHz, 74.7MHz. 1MHz and 75MHz are known to be "Synch Out" stable --- End quote --- Done - see below. --- Quote ---4) How do you manage to output single pulse? teach me the code! --- End quote --- Unfortunately, it doesn't seem to be able to be done reliably with just code (at least I can't get it to repeat more than a few times) - it seems to need a real hardware trigger to be consistent. But you can do it a crude way in software; for example, use Hantek software, select Single Wave, then click Ext Trig over and over again. After a few clicks you will get a transition glitch which will send the wave. But the correct, reliable way is to give it a real trigger. So I took D011 output again (this time set to Programmable Output - not Pattern Generator) and I fed it into the Trig In (see photo). Then every time you change the bit high (or low with falling edge) it sends the waveform. But this is only needed for consistency - software method above is fine for testing. --- Quote ---5) How do you manage to sweep at zero crossing by shorting D11 to input? pls explain in detail start from PC App down to signal generation. --- End quote --- I haven't tried it yet - only theoretical -- but for example: Put a jumper wire from D011 pin to DI0 pin on front of Hantek - then in a silly recursive loop example: :startSweep Dim startFreq as Double = 1000 Dim lastFreq as Double = 100000 Dim stepAmount as Double = 1000 Dim stepPeriod as Integer = 100 DDSSetFrequency(hWnd, startFreq, g_nWavePointNum, g_nWavePeriodNum) DDSDownload(hWnd, arBuffer(0), g_nWavePointNum) Gosub newSweepFreq(startFreq + stepAmount ) end :newSweepFreq(start) Dim digInput as Integer = 0 ' Have to have some code here to wait the step period first If start > lastFreq Then Return ' Wait through approximately one high and one low of DO11 - in other words, 1/frequency Do Until (digInput) If NOT DDSGetDigitalIn(hWnd, digInput) Then Exit Sub ' unplugging DDS3X25 would break out of permanent loop Loop Do Until (NOT digInput) If NOT DDSGetDigitalIn(hWnd, digInput) Then Exit Sub Loop DDSSetFrequency(hWnd, start, g_nWavePointNum, g_nWavePeriodNum) Gosub newSweepFreq(start + stepAmount ) Return End Sub I will try it with your source code base sometime in the next day or two - but if you manage to do it first, let me know!! --- Quote ---6) By right D11 is just least significant digital value of what we see analogically in "Output", so by right it should follow (in synch) with "Output" at any freq, as said, retry (3) --- End quote --- Almost right... D011 is the MOST significant bit of the DAC - so it will have the exact frequency (but offset 180 degrees) of any simple waveform out (sine, square, triangle, saw) as long as you have amplitude at maximum (+3.5) so that the DAC is swinging peak-to-peak. --- Quote ---7) Dont quite understand whats the blue trace on pic #3 and #4. --- End quote --- Blue trace shows what (#3) the Sync Out does when you use single wave output; (#4) D011 does when you use single wave output (in Pattern Generator mode at full-scale). --- Quote --- Was your purchase experience without a problem? --- End quote --- Yes, saturation - testinstru (from eBay) is a great seller - good communication - fast shipment - and well-packed. |
| Mechatrommer:
--- Quote from: marmad on July 21, 2011, 05:44:29 pm ---I will try it with your source code base sometime in the next day or two - but if you manage to do it first, let me know!! --- End quote --- sorry i'm not in the "state" or mood. i'll be looking forward for your result. but iirc, the signal wont get changed/updated even at frequency level by calling DDSSetFrequency only. you have to call both including the DDSDownload, ie change both frequency and data to get the signal or sweep working/updated. and i suspect there will be usb latency/delay issue that make zero crossing sweeping unreliable. but i hope u'll get different result. i can see hack possibility by feeding the digital output to trigger in your last picture. keep it up, and dont blow anything. :P |
| marmad:
--- Quote ---keep it up, and dont blow anything. --- End quote --- I thought I did earlier :o It's really possible to lock this thing up so badly that you have to unplug the power for awhile to bring it back to working order. --- Quote --- the signal wont get changed/updated even at frequency level by calling DDSSetFrequency only. you have to call both including the DDSDownload --- End quote --- Did you play around with the undocumented commands: DDSGetDivNum and DDSSetDivNum? They are clearly effecting the clock divisor somehow, but I haven't been able to figure them out. One thing I did discover though - if you use DDSSetDivNum, you can use DDSSetFrequency immediately after to change the frequency (without using DDSDownload), but the frequency is not exactly what you expect - it's some combination of SetDivNum and SetFrequency which I can't comprehend. I haven't been able to manage to call DDSGetDivNum correctly to retrieve data or I could probably figure out the combination. There are also these other undocumented commands in the DLL (most likely related to Hantek's 8060 Scope/DMM/Signal Generator): DMMAC_10A DMMAutoACV DMMAutoAC_mA DMMAutoDCV DMMAutoDC_mA DMMAutoOHM DMMCap DMMContinuity DMMDC_10A DMMDiode DMMManualAC_600V DMMManualAC_600mA DMMManualAC_600mV DMMManualAC_60V DMMManualAC_60mA DMMManualAC_60mV DMMManualAC_6V DMMManualAC_800V DMMManualDC_600V DMMManualDC_600mA DMMManualDC_600mV DMMManualDC_60V DMMManualDC_60mA DMMManualDC_60mV DMMManualDC_6V DMMManualDC_800V DMMManual_600KOHM DMMManual_600OHM DMMManual_60KOHM DMMManual_60MOHM DMMManual_6KOHM DMMManual_6MOHM DMMReStart DMMRead DMMRel DMMTest DMMsAC_10A DMMsAutoAC_mA DMMsAutoDC_mA DMMsDC_10A DMMsManualAC_600mA DMMsManualAC_60mA DMMsManualDC_600mA DMMsManualDC_60mA DMMsRead It seems possible that Hantek, to save design and programming time, might be using the Multiprocessor Link pinouts (3X25) on the FPGA for the ADC conversion pins (8060). Figure out the pins and circuitry and you could add even more hardware onto our little box ;D |
| Mechatrommer:
i did notice DDS*etDivNum function but dont know how to call with correct parameters. i didnt notice though the many list you provided, i dont have the tool. but since i dont have the proper parameters type and count, so i just leave them. i dont have enough time and power to reverse all of them. i hope you can come up with something. |
| marmad:
I sent Hantek an email saying my company needs more accuracy in the software we are writing for the device, and is it possible to know how to use the DDS*etDivNum functions. I don't really expect a response - but who knows - stranger things have happened. |
| Navigation |
| Message Index |
| Next page |
| Previous page |