Files

185 lines
6.9 KiB
Markdown
Raw Permalink Normal View History

2021-01-28 19:40:50 +08:00
# DDS
<el-tag effect="plain">SKU:U105</el-tag>
2021-01-29 18:08:22 +08:00
<div class="product_pic"><img src="assets/img/product_pics/unit/dds/dds_01.webp"><img src="assets/img/product_pics/unit/dds/dds_02.webp"></div>
2021-01-28 19:40:50 +08:00
## Description
**DDS** is a signal source Unit. It uses the AD9833 programmable waveform generator + STM32F0 micro controller. Based on I2C communication interface (addr:0x31) It can easily control the signal source to output multiple waveforms (sine wave, triangle wave, square wave output, sawtooth wave, signal output amplitude 0-0.6V) and adjust the frequency and phase.
It supports deep sleep mode, which can reduce the power consumption in the idle state. The Unit is suitable for the electronic circuit prototype design of various test instruments as a signal source.
## Product Features
- Digital programmable frequency and phase
- Signal output amplitude 0-0.6V
- Sine wave/Triangle wave/Square wave/Sawtooth wave (fixed frequency: 13.6KHz)/DC output
2021-01-29 14:47:53 +08:00
- Output frequency range: 0MHz to 1MHz (10MHz based on the reference clock)
- 28bit frequency resolution
- 11bit phase resolution
2021-01-28 19:40:50 +08:00
## Includes
- 1x DDS Unit
- 1x HY2.0-4P cable
- 1x SMA-2.54mm cable
## Application
- Frequency stimulation/waveform generation
- Liquid flow and airflow measurement
- Sensor applications: proximity, motion and defect detection
- Line loss/attenuation
- Testing and medical equipment
- Scan/clock generator
- Time domain reflectometry (TDR) application
## Specification
<table>
<tr style="font-weight:bold">
<td>Specifications</td>
<td>Parameters</td>
</tr>
<tr>
<td>Support waveform</td>
<td>Sine wave/Triangle wave/Square wave/Sawtooth wave (fixed frequency: 13.6KHz)/DC output</td>
</tr>
<tr>
<td>Signal output amplitude</td>
<td>0-0.6V</td>
</tr>
2021-01-29 14:47:53 +08:00
<tr>
<td>Output frequency range</td>
<td>0MHz to 1MHz (10MHz based on the reference clock)</td>
</tr>
<tr>
<td>Frequency resolution</td>
<td>28bit</td>
</tr>
<tr>
<td>Phase resolution</td>
<td>11bit</td>
</tr>
2021-01-28 19:40:50 +08:00
<tr>
<td>Net weight</td>
2021-01-29 14:47:53 +08:00
<td>11.1g</td>
2021-01-28 19:40:50 +08:00
</tr>
<tr>
<td>Gross weight</td>
2021-01-29 14:47:53 +08:00
<td>34.7g</td>
2021-01-28 19:40:50 +08:00
</tr>
<tr>
<td>Product size</td>
2021-01-29 14:47:53 +08:00
<td>71*24*8mm</td>
2021-01-28 19:40:50 +08:00
</tr>
<tr>
<td>Package size</td>
2021-01-29 14:47:53 +08:00
<td>88.5*60*21mm</td>
2021-01-28 19:40:50 +08:00
</tr>
</table>
## Related Links
- **[AD9833](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/dds/ad9833.pdf)**
## EasyLoader
2021-01-29 18:08:22 +08:00
>EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification. Please install the corresponding driver according to the device type. M5Core host [Please click here to view the CP210X driver installation tutorial](en/arduino/arduino_development)
<div class="easyloader-box">
<div style="background-color:white;">
<div><img src="https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/easyloader_intro.webp"></div>
<div class="easyloader-btn">
<a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/EasyLoader/Windows/UNIT/For%20M5Core/EasyLoader_DDS_UNIT_With_M5Core.exe">Windows</a>
</div>
</div>
<div>
<video id="example_video" controls>
<source src="https://m5stack.oss-cn-shenzhen.aliyuncs.com/video/Product_example_video/Unit/DDS_UNIT.mp4" type="video/mp4">
</video>
<div class="easyloader-mask">
<a>
<svg id="play-btn" t="1583228776634" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4152" width="75" height="75"><path d="M512 0C229.216 0 0 229.216 0 512s229.216 512 512 512 512-229.216 512-512S794.784 0 512 0z m0 928C282.24 928 96 741.76 96 512S282.24 96 512 96s416 186.24 416 416-186.24 416-416 416zM384 288l384 224-384 224z" p-id="4153" fill="#007aff"></path></svg></a>
<p>Description:</p>
<p>Control DDS Unit Output Sine wave/Triangle wave/Square wave/Sawtooth wave.</p>
</div>
</div>
</div>
2021-01-28 19:40:50 +08:00
## Example
2021-02-05 17:58:59 +08:00
### 1. Arduino
2021-01-28 19:40:50 +08:00
2021-01-29 14:47:53 +08:00
- [Arduino example program](https://github.com/m5stack/M5Stack/tree/master/examples/Unit/DDS_AD9833)
2021-01-28 19:40:50 +08:00
## Schematic
<img src="assets/img/product_pics/unit/dds/dds_sch.webp">
## Pin mapping
<table>
<tr><td>M5Core</td><td>SCL</td><td>SDA</td><td>5V</td><td>GND</td></tr>
<tr><td>DDS Unit</td><td>GPIO22</td><td>GPIO21</td><td>5V</td><td>GND</td></tr>
</table>
2021-03-02 19:09:07 +08:00
## Protocol
2021-01-28 19:40:50 +08:00
2021-03-02 19:09:07 +08:00
- Protocol type I2C
2021-01-28 19:40:50 +08:00
- I2C Address: **0x31**
>When writing a register, the highest bit must be set to 1. The mclk is set to "1" by default, it will keep the last output signal magnitude. Once the DAC is set to 1, it stops the Unit output.
2021-03-02 19:09:07 +08:00
```clike
/*--------------------------------------------------------------------------------------------------*/
| DDS CTRL REG | 0x20
| ------------------------------------------------------------------------------------------------
| dds_ctrl_reg[0] | R/W | System control
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| W | R | R | R | R | MODE |
| -MODE: 000 Reserved
2021-03-24 12:20:56 +08:00
| 001 SINE
2021-03-02 19:09:07 +08:00
| 010 TRIANGLE
| 011 SQUARE
| 100 SAWTOOTH
| 101 DC
2021-01-28 19:40:50 +08:00
//
2021-03-02 19:09:07 +08:00
| dds_ctrl_reg[1] | R/W | System control
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| W | FSELECT | PSELECT | S01 | S12 | RSET | R | R |
| -FSELECT: 0 Used FREQ0
1 Used FREQ1
| -PSELECT: 0 Used PHASE0
1 Used PHASE1
| -SLEEP01: 1 Disenable mclk
| -SLEEP12: 1 Disenable DAC
/*----------------------------------------------------------------------------------------------------
2021-01-28 19:40:50 +08:00
2021-03-02 19:09:07 +08:00
/*--------------------------------------------------------------------------------------------------*/
| DDS FREQ PHASE REG | 0x30
| ------------------------------------------------------------------------------------------------
| dds_freq_phase_reg[0:3] | R/W | FREQ(28bit)
| 31 | 30 | 29:28 | 27:0 |
| W | N | R | freq reg 0 |
2021-01-28 19:40:50 +08:00
//
2021-03-02 19:09:07 +08:00
| dds_freq_phase_reg[4:5] | R/W | PHASE(12bit)
| 15 | 14 | 13:12 | 11:0 |
| W | N | R | phase reg 1 |
2021-01-28 19:40:50 +08:00
//
2021-03-02 19:09:07 +08:00
/*---------------------------------------------------------------------------------------------------*/
2021-01-28 19:40:50 +08:00
```
<script>
2021-01-29 18:08:22 +08:00
var purchase_link = 'https://m5stack.com/products/dds-unit-ad9833';
2021-01-28 19:40:50 +08:00
anchor_search(purchase_link);
scrollFunc();
2021-01-29 18:08:22 +08:00
</script>