Digital signal generators? - Page 1
Forum section: electronics / testgear

author: dadler
author_rank: Unknown
timestamp: August 17, 2015, 02:02:14 am
content: 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/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/2264Which 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:Do professional products like this exist?

author: Electro Fan
author_rank: Super Contributor
timestamp: August 17, 2015, 05:06:23 am
content: 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.

author: RogerRowland
author_rank: Regular Contributor
timestamp: August 17, 2015, 06:51:44 am
content: 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/Do other LA's differ?

author: dom0
author_rank: Super Contributor
timestamp: August 17, 2015, 06:52:34 am
content: They're called digital pattern generator, pulse pattern generator or data generator. Some general purpose, some specialized ones exist.

author: Electro Fan
author_rank: Super Contributor
timestamp: August 17, 2015, 06:52:51 pm
content: Quote from: RogerRowland on August 17, 2015, 06:51:44 amLooks 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=2084They have a new product coming in September.

author: Mark
author_rank: Frequent Contributor
timestamp: August 17, 2015, 07:27:15 pm
content: The Digilient Analog Discovery can generate patterns, I use mine for simulating ADCs when hardware is not ready.

author: Kintekobo
author_rank: Regular Contributor
timestamp: August 17, 2015, 08:02:40 pm
content: 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/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.

author: dadler
author_rank: Unknown
timestamp: August 17, 2015, 10:14:33 pm
content: Quote from: Electro Fan on August 17, 2015, 05:06:23 amThanks. 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.

author: Howardlong
author_rank: Super Contributor
timestamp: August 17, 2015, 11:01:02 pm
content: Quote from: Mark on August 17, 2015, 07:27:15 pm+1, it's a really handy tool, and it's the _only_ PC based electronics diagnostics tool that I've found I frequently use.

author: dadler
author_rank: Unknown
timestamp: August 17, 2015, 11:07:33 pm
content: Ah thanks. I did not realize the Analog Discovery had a digital signal generator. I'll look into it.

author: MadTux
author_rank: Frequent Contributor
timestamp: August 18, 2015, 12:44:02 am
content: 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

author: Electro Fan
author_rank: Super Contributor
timestamp: August 18, 2015, 01:07:22 am
content: Quote from: dadler on August 17, 2015, 10:14:33 pmGood 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

author: nctnico
author_rank: Super Contributor
timestamp: August 18, 2015, 03:07:59 pm
content: 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?

author: Kintekobo
author_rank: Regular Contributor
timestamp: August 18, 2015, 05:00:24 pm
content: 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 cheapTo 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://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 templatevar bits = 8; //only 8 bit is supported in this templatevar 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 stringsput_str("Hello There, this a test!");//use the fonction below to generate arbitrary delaysdelay(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 firstfor (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 bitif (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;}

author: dadler
author_rank: Unknown
timestamp: August 18, 2015, 09:52:39 pm
content: 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/2264It 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.

author: Kintekobo
author_rank: Regular Contributor
timestamp: August 18, 2015, 10:33:24 pm
content: That does look pretty cool. Need to get my hands on one

author: Electro Fan
author_rank: Super Contributor
timestamp: August 19, 2015, 03:43:25 am
content: Quote from: nctnico on August 18, 2015, 03:07:59 pm+1It 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.

author: Howardlong
author_rank: Super Contributor
timestamp: August 19, 2015, 10:19:31 am
content: 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.

author: RogerRowland
author_rank: Regular Contributor
timestamp: August 19, 2015, 10:25:51 am
content: Quote from: Howardlong on August 19, 2015, 10:19:31 amAIUI, 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?

author: Howardlong
author_rank: Super Contributor
timestamp: August 19, 2015, 12:54:15 pm
content: Quote from: RogerRowland on August 19, 2015, 10:25:51 amThe 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.

author: tautech
author_rank: Super Contributor
timestamp: August 19, 2015, 01:00:22 pm
content: 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.

author: pickle9000
author_rank: Super Contributor
timestamp: August 19, 2015, 05:56:47 pm
content: Hantek 1008C

author: nctnico
author_rank: Super Contributor
timestamp: August 19, 2015, 07:38:36 pm
content: Quote from: Electro Fan on August 19, 2015, 03:43:25 amI'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.