Design of DDS Sine Signal Generator Using CPLD

Publisher:BlissfulBlissLatest update time:2014-03-06 Source: elecfansKeywords:CPLD Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

  This article realizes the generation of DDS sinusoidal signal . Due to the fact that the 128 macro units of CPLD are not enough and we don't know how to optimize them, we simply let the buttons, frequency display, and frequency control word be controlled by the single-chip microcomputer, and then the single-chip microcomputer transmits the frequency control word to the CPLD, so that the frequency control is realized. The frequency range of the final sinusoidal signal is 1HZ~30KHZ. The frequency can be stepped by 1HZ or preset by the single-chip microcomputer, or the frequency signal can be automatically swept. At first, the maximum error of the frequency reached more than 2HZ, and I felt that something was wrong. The frequency should be very accurate and there would not be such a large error. Later, it was found that the crystal oscillator was inaccurate and there was a little error. Later, the program was modified to make the maximum output frequency error within 0.1HZ. After these days of hard work, I finally felt a little relieved.

  This is the VHDL top level module:

VHDL top-level module

  This is the simulation waveform when k=0011111111111111:

2.jpg

  The single chip microcomputer controls 6 digital tubes to display the current frequency, and the P1 port is connected to 4 function buttons, namely +, -, select and sweep, and then two 574 chips are used to output the frequency control word to the CPLD. This is all I can do for now due to time constraints.

  Since it is converted by DAC0832 (conversion time 1us), the crystal oscillator is limited to 1M. The maximum frequency is also limited to 0.5MHZ according to the Nyquist sampling theorem (but the distortion is very large, so it is better to take a smaller one). Finally, the waveform can be filtered.

Keywords:CPLD Reference address:Design of DDS Sine Signal Generator Using CPLD

Previous article:ZigBee realizes multi-user smart meter
Next article:Design of a visual intelligent charger

Recommended ReadingLatest update time:2024-11-16 21:50

CPLD and 51 microcontroller bus interface program
CPLD and 51 microcontroller bus interface program `timescale 1ns/1ns module IO_KZ(Data,P27,WR,RD,ALE,CLR,OUTKEY,OUT30,CS,CS1,LEDCS,OC); inout Data; input WR; input P27; input RD; input ALE; input CLR; input OC; input OUTKEY; output OUT30; output CS; output CS1; output LEDCS; reg   LEDCS; reg   OUT30; reg   CS; wire  
[Microcontroller]
Design of digital relay protection system based on single chip microcomputer and CPLD
0 Introduction ATMEGAl28 of ATMEL has rich on-chip resources: it has 8-channel 10-bit AD converter, 128K FLASH program storage space, 4K RAM data storage space, 4K EEPROM power-off retention data storage space, and can realize in-system programming through SPI. High-level language programming uses powerful and
[Microcontroller]
Design of variable frequency precision pulse power supply system based on DDS
    China is a country with scarce water resources and urgently needs new methods and technologies to explore groundwater resources. Ground nuclear magnetic resonance water exploration is the only geophysical method in the world that can directly explore water . The transmitter is the core part of the nuclear magnetic
[Power Management]
Design of variable frequency precision pulse power supply system based on DDS
Using CPLD and Flash to implement FPGA configuration
Electronic Design Automation (EDA) refers to the process of electronic product automation design that uses computers as working platforms, EDA software as development environment, hardware description language as design language, programmable logic devices (PLD) as experimental carriers (including CPLD, FPGA, EPLD,
[Embedded]
Using CPLD and Flash to implement FPGA configuration
Design of embedded high-speed image communication system based on DSP+CPLD
   1 Introduction   With the rapid development of modern graphics acquisition technology, the speed of various graphics acquisition cards based on ISA, PCI, USB1.1 and other buses can no longer meet the needs of users. The use of USB2.0 can solve the bottleneck of transmission speed. The speed of USB2.0 is 480Mbits/s
[Embedded]
Design of Elliptic Function Low-pass Filter Based on DDS
The low-pass filter is an important part of direct digital frequency synthesis DDS, and its performance directly affects the characteristics of the entire DDS. A design scheme of elliptic function low-pass filter based on DDS is proposed . The design adopts a new normalization method and uses EDA software Mul
[Embedded]
Design of Elliptic Function Low-pass Filter Based on DDS
Using AT89S51 and CPLD to control stepper motor
      The stepper motor is a servo actuator that converts pulse signals into angular displacement. It is characterized by simple structure, reliable operation and convenient control.       In particular, the step value is not affected by changes in voltage and temperature, and the error will not accumulate over a lo
[Microcontroller]
Using AT89S51 and CPLD to control stepper motor
Design of real-time data acquisition and display system based on 16-bit single-chip microcomputer and CPLD
1 Introduction Data acquisition is an effective method for analyzing analog signal data. Real-time data display is a practical requirement of automated detection systems. In the process of testing the air-to-air missile seeker, the response signal of the seeker includes the internal secondary power supply signal
[Microcontroller]
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号