The function generator features two BNC outputs: one for the high speed [1 to 8 MHz] square signal (BNC1) and another for the DDS signal (BNC2). Offset and amplitude can be regulated by two potentiometers: offset in range of +5V to -5V (POT1) and amplitude in range of 0 to 10V (POT2). Up and down arrow buttons are used for changing the function type (sine, triangle etc.) while left and right arrow buttons are used for changing the frequency value. There is also a separate menu for changing frequency step. When the middle button is pressed, the signal generation starts. The middle button is pressed again for stopping the signal. More details can be found in the original site. Because of the present LCD character orientation, which is different from the original implementation (180 degrees), the following changes in main.c were made:
Buttons LEFT and RIGHT were reversed:
#define LEFT 3//PORTD
#define RIGHT 1//PORTD
Buttons TOP and BOTTOM were reversed:
#define DOWN 4//PORTD
#define UP 0//PORTD
For the latest version of AVR-GCC compiler, the following changes should be made (according to Geoff comment on scienceprog.com):
struct signal {
volatile uint8_t mode; // signal
volatile uint8_t fr1; // Frequency [0..7]
volatile uint8_t fr2; // Frequency [8..15]
volatile uint8_t fr3; // Frequency [16..31]
volatile uint32_t freq; // frequency value
volatile uint8_t flag; // if 0 generator is OFF, 1 is ON
volatile uint32_t acc; // accumulator
volatile uint8_t ON;
volatile uint8_t HSfreq; // high speed frequency [1...4Mhz]
volatile uint32_t deltafreq; // frequency step value
} SG;
The ATMEGA16 fuses should be:
HIGH = 0×59
LOW = 0xCF
This is interpreted to the following options checked (all others unchecked):
OCDEN
SPIEN
BOOTSZ1
BOOTSZ2
SUT1
SUT0
The function generator circuit is designed to provide a versatile waveform output, suitable for various applications in testing and signal processing. The circuit includes two BNC output connectors, allowing simultaneous output of a high-speed square wave signal and a Direct Digital Synthesis (DDS) signal. The high-speed output (BNC1) operates within a frequency range of 1 to 8 MHz, while the DDS output (BNC2) can generate a variety of waveforms, including sine and triangle waves.
Two potentiometers (POT1 and POT2) are incorporated into the design to allow for manual adjustment of the signal's offset and amplitude. POT1 adjusts the offset voltage from +5V to -5V, enabling the user to shift the waveform vertically on an oscilloscope. POT2 controls the amplitude of the output signal, which can be set from 0V to 10V, providing flexibility in signal strength for different applications.
User interface elements consist of up and down arrow buttons for selecting the waveform type and left and right arrow buttons for adjusting the frequency value. This arrangement allows for intuitive navigation through various settings. A dedicated menu facilitates changes to the frequency step, enhancing the functionality of the generator.
The microcontroller at the heart of the circuit is the ATmega16, which manages signal generation and processing. It utilizes a structure to store the operational parameters, including the current mode of operation, frequency settings, and flags indicating the status of the signal generator. The microcontroller's fuses are configured to enable specific features, such as the On-Chip Debugger (OCDEN) and Serial Peripheral Interface (SPIEN), while ensuring the bootloader size is appropriately set.
Overall, this function generator circuit provides a robust platform for generating precise waveforms, making it an essential tool for electronics testing and experimentation.The function generator features two BNC outputs : one for the high speed [1 to 8 MHz] square signal (BNC1) and another for the DDS signal (BNC2). Offset and amplitude can be regulated by two potentiometers : offset in range of +5V to -5V (POT1) and amplitude in range of 0 to 10V (POT2).
Up and down arrow buttons are used for changing the function type (sine, triangle etc.) while left and right arrow buttons are used for changing the frequency value. There is also a separate menu for changing frequency step. When the middle button is pressed, the signal generation starts. Middle button is pressed again for stopping the signal. More details can be found in the original site. Because of the present LCD character orientation, which is different from the original implementation (180 degrees), the following changes in main.c were made :
Buttons LEFT and RIGHT were reversed :
#define LEFT 3//PORTD
#define RIGHT 1//PORTD
Buttons TOP and BOTTOM were reversed :
#define DOWN 4//PORTD
#define UP 0//PORTD
For the latest version of AVR-GCC compiler, the following changes should be made (according to Geoff comment on scienceprog.com) :
struct signal{
volatile uint8_t mode; //signal
volatile uint8_t fr1; //Frequency [0..7]
volatile uint8_t fr2; //Frequency [8..15]
volatile uint8_t fr3; //Frequency [16..31]
volatile uint32_t freq; //frequency value
volatile uint8_t flag; //if 0 generator is OFF, 1 is ON
volatile uint32_t acc; //accumulator
volatile uint8_t ON;
volatile uint8_t HSfreq; //high speed frequency [1...4Mhz]
volatile uint32_t deltafreq; //frequency step value
}SG;
The ATMEGA16 fuses should be :
HIGH = 0×59
LOW = 0xCF
This is interpreted to the following options checked (all others unchecked) :
OCDEN
SPIEN
BOOTSZ1
BOOTSZ2
SUT1
SUT0
🔗 External reference
The digital sine wave generator (oscillator) circuit requires only a few components to produce signals with high amplitude constants and a wide range of variable frequencies. This circuit generates a sine wave signal, and by altering the values of...
The XC6119 series is a highly precise, low power consumption voltage detector, manufactured using CMOS and laser trimming technologies. The device includes a built-in delay circuit. A release delay time can be set freely by connecting an external delay...
Square wave tone bursts are generated by pressing the pushbutton. The duration of these bursts is determined by how long the voltage at Pin 4 exceeds a specified threshold.
The circuit described involves a square wave generator that produces tone...
A simple digital circuit is presented that can be used to precisely control the AC power supply. This circuit does not include a digital-to-analog conversion component. In its application, effective control is established through a computer system that sends...
When the input signal is at logic high (1), the display indicates `H`, and the loudspeaker emits a note that is one octave higher than the low tone. The operation of the circuit can be observed in the circuit...
Most LCD issues arise from delay routines. First, ensure proper interfacing of the LCD before proceeding with your digital clock project. A step-by-step approach is crucial. An LCD tutorial is available in the tutorial section for reference. The code...
We use cookies to enhance your experience, analyze traffic, and serve personalized ads.
By clicking "Accept", you agree to our use of cookies.
Learn more