Difference between revisions of "Hantek DDS-3X25"
Jump to navigation
Jump to search
Line 147: | Line 147: | ||
** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode. | ** four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode. | ||
==== 0xA1: | ==== 0xA1: point transfer indicator ==== | ||
Byte 1: bits 0-7 - point count LSB | |||
Byte 2: bits 0-3 - point count MSB, bit 7 - 0=transfer end, 1=transfer start | |||
Point count is 12 bits. | |||
* 1-byte response: 0xcc | * 1-byte response: 0xcc | ||
Revision as of 23:10, 5 April 2013
The Hantek DDS-3X25 is a 25MHz PC-based function generator. It has no external controls, requiring a USB connection to a computer.
Hardware
TODO.
Photos
Protocol
Waveform samples
When sending a waveform to the device, a series of samples denote voltage. These are 12-bit values packed in padded 16-bit integers, sent in network order (most significant part first):
- bits 0-9 are the value, with encoding as shown below
- bit 10
- bit 11 is the sign: 1 for positive, 0 for negative
- bit 12 controls the "sync out" port: 1 is on, 0 is off
- bits 13 is always 1, bits 14-15 are always 0
The value is encoded as 2048 - (voltage * 585). Negative values have all sign and value bits complemented (reversed).
0xA0: configure
Configures the device. The payload is 6 bytes:
Byte | Bit | Description |
---|---|---|
1 | Mode | |
7 | ||
6 | ||
5 | 1 = Reset external trigger (send only once) | |
4 | 1 = External trigger mode enabled | |
3 | External trigger: 0 = falling, 1 = rising | |
2 | 0 = continuous, 1 = single wave | |
1 | Counter reset: 0 = leave, 1 = reset | |
0 | Measurement: 0 = frequency, 1 = counter | |
2 | ||
7 | ||
6 | ||
5 | ||
4 | ||
3 | ||
2 | ||
1 | ||
0 | Output: 0 = pattern generator, 1 = programmable output | |
3 | Digital I/O pins, bits 0-7 | |
4 | Bits 0-3 = digital I/O pins bits 8-11, bits 4-7 unused | |
5 | Clock divider, based on 48KHz clock | |
6 |
THe response is 10 bytes:
- the first 2 bytes are always 0
- in frequency measurement mode:
- four bytes for the current frequency measurement, in network order. Multiply by 2 to get the actual frequency readout.
- four bytes for a "tick counter" in network order. This has the number of ticks per second, and is used to derive the frequency. Assuming a 100Mhz clock, this counter differs up to 4.17% at 8Mhz from the derived frequency -- investigate.
- in counter mode:
- four bytes for the current counter, in network order.
- four bytes denoting the smoothed out frequency, identical to the first four bytes in frequency measurement mode.
0xA1: point transfer indicator
Byte 1: bits 0-7 - point count LSB Byte 2: bits 0-3 - point count MSB, bit 7 - 0=transfer end, 1=transfer start Point count is 12 bits.
- 1-byte response: 0xcc
0xA2: unknown
- 6-byte payload: 0000 0000 3000
- 1-byte response: 0xcd
When setting "close output power on", i.e. save configuration to memory:
- no payload
- 1-byte response: 0xcd
0xA3: unknown
- no payload
- 1-byte response: 0x02