1 2 Previous Next 18 Replies Latest reply on May 3, 2020 1:53 PM by BoTa_264741

    DDS24 capability

    IaCa_4674211

      Hello, is it possible for the DDS24 component for PSoc5LP to produce a frequency sweep sine wave between 1Hz and 80Khz at a rate of 8Khz? perhaps by using external components such as the ADS1256? would it be possible to change the frequency sweep from an Arduino/Teensy input?

        • 1. Re: DDS24 capability
          BoTa_264741

          IaCa,

          General answer is yes. DDS24 and DDS32 components can produce such sweeps w/o need for external commercial DDS parts. The catch is in the quality of the output, and commercial DDS parts can produce much cleaner output waves with greater resolution. Unlike DDS24 / DDS32 though, the sweep speed is unlikely to reach 8000 times/sec, as they are typically controlled through the serial I2C interface.

           

          As an example, you caaan take a look on this Chirp generator, using DDS24 and DDS32 components

          Chirp burst generator for ultrasonic range finder using DDS24 and DDS32

           

          and this YouTube demo

          DDS tunable frequency / phase generator using Cypress PSoC5 - YouTube

           

          On the other side, using starting frequency of 1Hz is pointless at 8000 scans/sec rate, at it is essentially a DC. So minimum frequency should be in the range of 10-th kHz at least. So, I believe there is some inconsistency between Fmin, Fmax, and scan rate. I can help drafting some demo if details specs are available.

          /odissey1

          1 of 1 people found this helpful
          • 2. Re: DDS24 capability
            IaCa_4674211

            Hello, the rate is only 8 times per second, I feel your solution (DDS32) would work perfectly, what are your concerns in regards to signal quality?

            Kind regards

            • 3. Re: DDS24 capability
              BoTa_264741

              IaCa,

              PSoC5 VDAC8 update rate is limited to about 1MHz, which gives only about 12 sine points per period - not very fancy sine wave. If update rate is only 8 scans/sec, the commercial DDS part could work as well.

              /odissey1

              • 4. Re: DDS24 capability
                IaCa_4674211

                I could output to an external 24 bit dac, to give a higher resolution ? I currently get 600 points using an Arduino due, the due is just too huge for my project.

                1 of 1 people found this helpful
                • 5. Re: DDS24 capability
                  IaCa_4674211

                  I made a mistake in my last comment, I believe the number of points to be between 30 to 60, the resolution of my pulses using the due is 12 bits, would the 32 bit resolution from the PSoC device be equivalent?, also I require a square wave output, the DAC is not required,however I do need a duplicate 'complimentary' output.

                  • 6. Re: DDS24 capability
                    BoTa_264741

                    IaCa,

                    DDS24 and DDS32 generate digital output only, it is a square wave. By using VDAC8 and memory tables with some headache it can be converted to the sine wave. From the previous conversation it is not clear what type of output you need. Please take your time to describe full specs first.

                    /odissey1

                    • 7. Re: DDS24 capability
                      IaCa_4674211

                      The output I require are square waves, frequency parameters are: Min Freq. 1Hz, Max Freq.80Khz, duty cycle 5%, rate: 8 times per second, there are 2 outputs of the same wave sweep, main sample has a delay of 22uS, the secondary sample has a delay of 100uS, pulse width is approx. 58uS, I have looked at a couple of examples in regards to the DDS32, appears as though this spec. is possible, would the pulse width, duty cycle and frequency be able to be accessed by an Arduino?

                       

                      Kind regards

                      Ian 

                      • 8. Re: DDS24 capability
                        BoTa_264741

                        Ian,

                        At 80kHz period is only 12.5us, and 5% duty cycle corresponds to 0.625us. How this related to a delay (from what?) of 22us for the first wave, 100us for second wave and fixed pulse width 58us? Why DDS output has to be 5% duty cycle (variable width), when this wave not being output?

                         

                        Technically, DDS produces square wave with 50% duty cycle irrespective of frequency. The DDS24 has dual output with fixed phase relationship, which can be used to make 5% duty cycle by XOR-ing two outputs. But, again, l am not fully understand the goal.  I recommend making some drawing explaining desired wave shapes.

                         

                        DDS parameters can be updated by Arduino using UART communication. Like Fmin, Fmax, scan speed, etc.

                        /odissey1

                        • 9. Re: DDS24 capability
                          IaCa_4674211

                          I cannot give any further information due to disclosure of proprietary information, you have given me enough to go on for now,

                          Thank you for your input,

                          Kind regards

                          Ian

                          • 10. Re: DDS24 capability
                            BoTa_264741

                            Ian,

                            I drafted a project, generating a sweep of from 400Hz to 80kHz in 200 steps at scan rate 1-8/sec. It produces two quadrature outputs. Project utilizes DDS24 in hardware load control mode. Such approach is very simple and guarantees hardware timing for frequency update.

                            All control parameters (Fstart, Fstep, Npoints, scan rate) can be updated at run-time using e.g. UART communication.

                             

                            Let me know if further assistance needed.

                            /odissey1

                             

                            Project utilizes custom components:

                            Re: DDS24: 24-bit DDS arbitrary frequency generator component (v1.0)

                            PSoC Annotation Library v1.0 (optional)

                             

                            Tutorial adding custom components to the project:

                            https://www.cypress.com/video-library/PSoC-Software/psoc-creator-tutorial-adding-library-dependency/107961

                             

                            DDS24_sweep_hw_01a_A.png

                            • 11. Re: DDS24 capability
                              IaCa_4674211

                              Hello, What I really need is a DDS32 with 3 outputs, outputting the frequency sweep, with the reset function and *Ideally* with the phase sync, the same as the DDS24,

                               

                              Can you help?

                               

                               

                              Kind Regards

                               

                              Ian

                              • 12. Re: DDS24 capability
                                BoTa_264741

                                Ian,

                                DDS32 is very much different from DDS24 in it's capabilities. DDS32 built using UDB Datapath, and DDS24 by using PLD logic. Modifying DDS32 will likely take me a month, and result s not guaranteed, DDS24 -  a week.

                                 

                                DDS24 and DDS32 capabilities are also different. For example, with DDS24 hardware timing of frequency update is possible, while for  DDS32 is not. DMA transfer to DDS24 is possible, DDS32 - only 16-bit. Adding second channel (phase) to DDS32 is not straightforward.

                                 

                                Both DDS components already have a hardware reset input. DDS24 has 2 outs: main and phase-shifted. I don't get what the 3-rd output you need?

                                 

                                What is relatively easy is to increase DDS24 resolution to 28 bits. But, since you are going to perform fast scans, resolution is not much important, as DDS won't sit on single frequency for long and resolution will be defined by update rate, not DDS bit depth. For example, scanning 200 frequency points 8 times per second yields 1.6kHz resolution, while DDS24 native resolution is much higher: 48MHz/2^24 = 2.8 Hz!

                                 

                                I recommend to test project using DDS24 first, and then see which improvements are really needed.

                                /odissey1

                                • 13. Re: DDS24 capability
                                  IaCa_4674211

                                  Hello, OK,  DDS24 is the way forward, would you be willing to create a module as described in my previous post?

                                  Kind regards

                                  Ian

                                  • 14. Re: DDS24 capability
                                    BoTa_264741

                                    Ian,

                                    You can send me a private message with full specs. I will look into it.

                                    /odissey1

                                    1 2 Previous Next