EEVblog Electronics Community Forum

Products => Test Equipment => Topic started by: dadler on August 17, 2015, 02:02:14 am

Title: Digital signal generators?
Post by: dadler on August 17, 2015, 02:02:14 am
Are there digital signal generators out there, say to drive I2C/SPI/etc?

I suppose this would be the inverse of a logic analyzer.

I searched the forum and only found this: https://www.eevblog.com/forum/oshw/kidogo-oshw-low-end-digital-signal-generator/ (https://www.eevblog.com/forum/oshw/kidogo-oshw-low-end-digital-signal-generator/)

I am aware of things like the Bus Pirate (have one, kinda cumbersome to use), and I currently use this product: http://www.adafruit.com/products/2264 (http://www.adafruit.com/products/2264)

Which I drive with various python scripts.

This works fine, but I'd rather have something with a graphical interface, like the one shown in the Kidogo link above:

(https://github.com/dilshan/Kidogo/raw/master/Res/kidpicture10077.jpg)

Do professional products like this exist?
Title: Re: Digital signal generators?
Post by: Electro Fan on August 17, 2015, 05:06:23 am
I'd also like to find the type of software or product you are describing/seeking.

I noticed you are selling a Rigol arb gen.  If you are thinking about a new arb gen you might take a look at Keysight's Benchlink Waveform Builder Basic software (free download) - it works with their arg gens but is computer-based.  It's slightly tedious to use (although that might just be my lack of experience with it) but it gives the ability to control waveform construction including for various types of pulses that can represent digital logic.  What would be nice would be something that gives lots of flexibility but also ease of use for making digital logic - I haven't found it yet.  Like you I found the Bus Pirate a bit cumbersome.  The Kidogo UI looks like it has some potential.  Another item worth looking at is the USBee SX - it is both a logic analyzer and a generator; you might be able to try the software without the hardware.  I think the winner might be something that is table/field driven but that also allows some editing via drawing.  Hopefully this thread will bring some good recommendations.
Title: Re: Digital signal generators?
Post by: RogerRowland on August 17, 2015, 06:51:44 am
I'd assumed that most logic analysers allow you to also generate data or replay captured data.

I have a relatively cheap Ikalogic Scanalogic 2, which can certainly do so - http://www.ikalogic.com/ikalogic-products/scanalogic-2/ (http://www.ikalogic.com/ikalogic-products/scanalogic-2/)

Do other LA's differ?
Title: Re: Digital signal generators?
Post by: dom0 on August 17, 2015, 06:52:34 am
They're called digital pattern generator, pulse pattern generator or data generator. Some general purpose, some specialized ones exist.
Title: Re: Digital signal generators?
Post by: Electro Fan on August 17, 2015, 06:52:51 pm
I'd assumed that most logic analysers allow you to also generate data or replay captured data.

I have a relatively cheap Ikalogic Scanalogic 2, which can certainly do so - http://www.ikalogic.com/ikalogic-products/scanalogic-2/ (http://www.ikalogic.com/ikalogic-products/scanalogic-2/)

Do other LA's differ?

Looks like a nice set of products. Apparently the entry level LA does generation but not their current top of the line.

http://www.ikalogic.com/forums/viewtopic.php?f=24&t=2084 (http://www.ikalogic.com/forums/viewtopic.php?f=24&t=2084)

They have a new product coming in September.
Title: Re: Digital signal generators?
Post by: Mark on August 17, 2015, 07:27:15 pm
The Digilient Analog Discovery can generate patterns, I use mine for simulating ADCs when hardware is not ready. 
Title: Re: Digital signal generators?
Post by: Kintekobo on August 17, 2015, 08:02:40 pm
Definitely check out the IkaLogic ScanaLogic-2 which is a four channel Logic Analyser which can also generate programmable digital outputs.

http://www.ikalogic.com/ikalogic-products/scanalogic-2/ (http://www.ikalogic.com/ikalogic-products/scanalogic-2/)

The Software is excellent and creating signals a doddle. I have been a great fan of their kit for several years having bought the ScanaLogic-2 and then the ScanaPLUS which is a 9-channel analyser but without the ability to generate output data. It does do 100MSPS with a virtually infinite capture length though. You can download the software for free which will run in demo mode for you to get an idea of what it can do.
Title: Re: Digital signal generators?
Post by: dadler on August 17, 2015, 10:14:33 pm
I'd also like to find the type of software or product you are describing/seeking.

I noticed you are selling a Rigol arb gen.  If you are thinking about a new arb gen you might take a look at Keysight's Benchlink Waveform Builder Basic software (free download) - it works with their arg gens but is computer-based.  It's slightly tedious to use (although that might just be my lack of experience with it) but it gives the ability to control waveform construction including for various types of pulses that can represent digital logic.  What would be nice would be something that gives lots of flexibility but also ease of use for making digital logic - I haven't found it yet.  Like you I found the Bus Pirate a bit cumbersome.  The Kidogo UI looks like it has some potential.  Another item worth looking at is the USBee SX - it is both a logic analyzer and a generator; you might be able to try the software without the hardware.  I think the winner might be something that is table/field driven but that also allows some editing via drawing.  Hopefully this thread will bring some good recommendations.

Thanks. Yeah I have the Agilent Waveform Builder software - I use it with the 33522B that I upgraded to (hence selling the Rigol). However, the generator only has two channels -- this can generate CLK and Data (which might be sufficient in some cases), but it's not really designed for this sort of use, IMO.
Title: Re: Digital signal generators?
Post by: Howardlong on August 17, 2015, 11:01:02 pm
The Digilient Analog Discovery can generate patterns, I use mine for simulating ADCs when hardware is not ready.

+1, it's a really handy tool, and it's the _only_ PC based electronics diagnostics tool that I've found I frequently use.
Title: Re: Digital signal generators?
Post by: dadler on August 17, 2015, 11:07:33 pm
Ah thanks. I did not realize the Analog Discovery had a digital signal generator. I'll look into it.
Title: Re: Digital signal generators?
Post by: MadTux on August 18, 2015, 12:44:02 am
HP 16520A/16521A (12/48Ch,  50MHz,  4kSampes)
HP 16522A (20/40CH,  200/100MHz,  256kSamples)
HP 16720A (120/240Ch,  300/180MHz,  16/8MSamples)
Tek TLA7PG2 (32/64Ch,  268/134MHz,  2/1MSample)
Printer Port (8+4Ch, 2MHz, unlimited)

Or good old AVR or FPGA board or uC programmed SRAM or EPROM chip with counter on address bus
Title: Re: Digital signal generators?
Post by: Electro Fan on August 18, 2015, 01:07:22 am
Thanks. Yeah I have the Agilent Waveform Builder software - I use it with the 33522B that I upgraded to (hence selling the Rigol). However, the generator only has two channels -- this can generate CLK and Data (which might be sufficient in some cases), but it's not really designed for this sort of use, IMO.

Good point about the 2 channel limitation; I was just focused on finding something that could easily generate digital signals with good control over waveform amplitude and timing but once that is possible the next step would be more channels.  I think you are a step or maybe a lap ahead of me :)
Title: Re: Digital signal generators?
Post by: nctnico on August 18, 2015, 03:07:59 pm
The more fancy ones can also tristate but then again most only have one logic level. One of the problems with digital pattern generators is that they don't come with software to create the patterns. It's just clicking ones&zeros in boxes. How about creating SPI, I2C or UART waveforms in an easy way?
Title: Re: Digital signal generators?
Post by: Kintekobo on August 18, 2015, 05:00:24 pm
OK, I know it sounds like I have an interest in the IkaLogic kit but I don't. I just think it is incredibly useful and like to spread the word. Also incredibly cheap  :-+

To that end it is one of the few function generators that has a scripting language which lets you create just about any waveform pattern you like. All four of the input/output connectors are assignable to be either an input to the logic analyser or an output from the generator. Below is an example of the script to generate an RS232 signal. I created one to output IIC data for testing a little LCD display.

Code: [Select]
//Serial UART generator template

//define your own parameters here:
var target_channel = 1;
var baud_rate = 115200;
var parity = 0; //only None parity is supported in this template
var bits = 8; //only 8 bit is supported in this template
var stop = 1.5; //specify number of stop bits.
var inverted = false;
var msb_first = false;

var hi,lo; //used by the template inner code.
var samples_per_bit;
var sample_rate = get_sample_rate();
var total_samples = get_maximum_samples();

function build_signals()
{
    ini_uart_generator();

    //use the function below to generate uart character strings
    put_str("Hello There, this a test!");

    //use the fonction below to generate arbitrary delays
    delay(30);

    //generate some characters (8-bit values)
    put_c(0x05);
    put_c(0x06);
    put_c(0x07);
}

function put_str(str)
{
    var i;
    add_samples(target_channel,hi,samples_per_bit*stop); //add 1 stop first
    for (i = 0; i < str.length; i++)
    {
        put_c(str.charCodeAt(i));
    }
}

function put_c(code)
{
    var i;
    var b;
    var lvl;
    add_samples(target_channel,lo,samples_per_bit); //add start bit
    if (msb_first)
    {
        for (i = 7; i >= 0; i--)
        {
            b = ((code >> i) & 0x1)
            if (b == 1)
            {
                lvl = hi;
            }
            else
            {
                lvl = lo;
            }
            add_samples(target_channel,lvl,samples_per_bit);
        }
    }
    else
    {
        for (i = 0; i < 8; i++)
        {
            b = ((code >> i) & 0x1)
            if (b == 1)
            {
                lvl = hi;
            }
            else
            {
                lvl = lo;
            }
            add_samples(target_channel,lvl,samples_per_bit);
        }
    }
    add_samples(target_channel,hi,samples_per_bit*stop); //add stop bits
}

function delay(n_bits)
{
    var i;
    for (i=0; i < n_bits; i++)
    {
        add_samples(target_channel,hi,samples_per_bit);
    }
}

function ini_uart_generator()
{
    if (inverted == false)
    {
        hi = 1;
        lo = 0;
    }
    else
    {
        hi = 0;
        lo = 1;
    }
    samples_per_bit = sample_rate / baud_rate;
}

Title: Re: Digital signal generators?
Post by: dadler on August 18, 2015, 09:52:39 pm
The IkaLogic sounds neat, although what you are describing can already be done with the $15 device I posted earlier:

http://www.adafruit.com/products/2264 (http://www.adafruit.com/products/2264)

It will do SPI, I2C, UART, standard GPIO, etc. I use the Python API but it can be driven other ways. I've used it to test/drive OLED displays before I have the hardware ready to drive them.

The IkaLogic may be more powerful, though.
Title: Re: Digital signal generators?
Post by: Kintekobo on August 18, 2015, 10:33:24 pm
That does look pretty cool. Need to get my hands on one  :-+
Title: Re: Digital signal generators?
Post by: Electro Fan on August 19, 2015, 03:43:25 am
One of the problems with digital pattern generators is that they don't come with software to create the patterns. It's just clicking ones&zeros in boxes. How about creating SPI, I2C or UART waveforms in an easy way?

+1

It seems like some products have parts of the solution but it isn't clear that any vendor has a super compelling UI.  Maybe it can only happen with software coding but it seems like there should be a combination of clicking ones and zeros, drawing/editing waveforms, and some scripting/coding that is both easy and powerful.
Title: Re: Digital signal generators?
Post by: Howardlong on August 19, 2015, 10:19:31 am
Microchip's PICkit Serial Analyzer can be used to both decode and generate SPI/I2C/UART serial streams at the byte protocol level.

It's a bit old, but it works.

It doesn't replace the nice warm feeling you get from seeing the scope/LA bit decode though.
Title: Re: Digital signal generators?
Post by: RogerRowland on August 19, 2015, 10:25:51 am
Microchip's PICkit Serial Analyzer can be used to both decode and generate SPI/I2C/UART serial streams at the byte protocol level.

It's a bit old, but it works.

It doesn't replace the nice warm feeling you get from seeing the scope/LA bit decode though.

AIUI, this only works (worked?) on PICkit 2 and was never ported to PICkit 3. Is that still true or am I thinking of something else?
Title: Re: Digital signal generators?
Post by: Howardlong on August 19, 2015, 12:54:15 pm
Microchip's PICkit Serial Analyzer can be used to both decode and generate SPI/I2C/UART serial streams at the byte protocol level.

It's a bit old, but it works.

It doesn't replace the nice warm feeling you get from seeing the scope/LA bit decode though.

AIUI, this only works (worked?) on PICkit 2 and was never ported to PICkit 3. Is that still true or am I thinking of something else?

The units I have are marketed as PICkit Serial Analyzer, which isn't quite the same as a PICkit 2. Although there are a lot of similarities in the hardware they aren't quite the same if you look at the schematics.
Title: Re: Digital signal generators?
Post by: tautech on August 19, 2015, 01:00:22 pm
I've got a selection of bus waveform files ex Siglent intended to be used with their AWGs as teaching/learning aids.
There are CSV and txt versions of each of the many files.
Let me dig them out, run some to check if they're suitable, at least we might learn something from the syntax used.

I see no reason why an AWG is not suitable for the OPs purpose. :-//
Title: Re: Digital signal generators?
Post by: pickle9000 on August 19, 2015, 05:56:47 pm
Hantek 1008C

Title: Re: Digital signal generators?
Post by: nctnico on August 19, 2015, 07:38:36 pm
One of the problems with digital pattern generators is that they don't come with software to create the patterns. It's just clicking ones&zeros in boxes. How about creating SPI, I2C or UART waveforms in an easy way?
+1

It seems like some products have parts of the solution but it isn't clear that any vendor has a super compelling UI.  Maybe it can only happen with software coding but it seems like there should be a combination of clicking ones and zeros, drawing/editing waveforms, and some scripting/coding that is both easy and powerful.
I'm working on something like that... Boards are ready but I need to finish the PC software before getting into the hardware otherwise the PC software will be the usual afterthought.