Circuit ideas for DSO teaching aids - Page 1
Forum section: electronics / projects

author: Harvs
author_rank: Super Contributor
timestamp: November 01, 2013, 12:53:10 am
content: In a bit over a week I'm going to be running a workshop at my local hackerspace as an introduction to DSOs.I've got a reasonable agenda, and it's nothing out of the ordinary. Once I've run it once or twice I'll make all the "courseware" open so other hackerspaces can benefit. There'll be a manual etc.However, I want to run it as a workshop style of event whereby people will have a DSO between two or three, and we'll have some signal for most concepts that they can get some hands on time with.As we don't have a lot of equipment as of yet, I've asked the attendee's to bring along an Arduino and laptop because I'm thinking that I can come up with some simplish circuits and code to generate patterns that we can look at. There's a small enough number that I can easily etch a circuit board for each group, and as long as parts are easily and cheaply available can build whatever is required.I'm after any ideas you might have for what could be done, ideally I'd like one or two waveforms for each key concept. Any idea's would be highly appreciated.Some I've come up with so far:- serial link between two arduinos sending packets (demonstrate edge triggering and hold off),- a pattern with GPIO to do various pulse width triggering,- using resistors summing the output of two pins, generate a pattern that has periodic runt pulses for the concept of waveform update rate,- an RC comparator oscillator to demonstrate the difference in capacitance between 1x & 10x- Ideally a sinewave generator of some sort to show aliasing. However I'm not too sure how to go about this one in the timeframe, I can't get any dedicated IC's locally, and an Arduino's probably going to struggle to DDS a rough sinewave at decent freq. Maybe using an arduino to excite a LC tank?Below is a rough outline so far. Please feel free to give me any suggestions if you think I've missed something. It's going to require a bit of tailoring on the day depending on the prior knowledge of those that turn up.Probes:1x vs 10x, construction, compensation, where to (and not) use them.DIY for specific situationsCouplingSample time:Time base / sample rate / sample depth relationshipsAliasingWaveform update ratePitfalls of sin(x)/x, anti-aliasing etc.Quantization:ResolutionAveragingOversampling and averaging (aka High resolution mode)Triggering:What and whyOne shot, auto, normaledge triggerpulse trigger(probably leave it at that for trigger types)hold-offcouplingexternaltrigger out and some of it's usesIf we have time:external trigger "helpers"

author: Bored@Work
author_rank: Super Contributor
timestamp: November 01, 2013, 06:42:51 am
content: QuoteThe Arduino might struggle because of its rubbish software framework. There have been DDS generators build with Atmel AVR MCUs, but using assembler for the time-critical parts.http://www.myplace.nu/avr/minidds/(completely in assembler, for a rather old AVR)http://www.scienceprog.com/avr-dds-signal-generator-v20/(C with inline assembler)http://www.electronics-lab.com/projects/test/013/index.html(C with inline assembler)Other signals that have been generated with an AVR are, for example, DTFMhttp://www.atmel.com/Images/doc1982.pdfAgain a bit of assembler involved.And if you want to have more funky signals, people have used AVRs to generate VGA videohttp://www.theresistornetwork.com/2013/03/avr-vga-generation.htmlhttp://www.atmel.com/Images/mega163_3_04.pdfAnd some go completely bonkers:http://www.linusakesson.net/scene/craft/index.phpYep, all sound and animated graphics all coming from one lonely AVR.

author: Harvs
author_rank: Super Contributor
timestamp: November 01, 2013, 09:50:38 am
content: Yeah I'm not trying to use the Arduino "software framework", I can easily code something with inline assembly. I just want something that I can easily upload using the Arduino tools since that's what I can ask people to bring. In future, when I've got more time I'll probably make a small custom board through Itead just for this and add a small Lattice CPLD.However I've prototyped up a circuit for the sinewave.Just using the AVR timer to generate a 8MHz square wave, into a totem pole BJT buffer which feeds a resonant LC tank.Not too bad, gives a 8MHz sinewave for about $0.20. It's not a perfect sinewave, but also isn't too shabby, third harmonic is about 30db down on the fundamental. Certainly good enough to cleanly show the effect of aliasing, and it's a high enough a frequency that it's easy to get a low end scope to alias.

author: Bored@Work
author_rank: Super Contributor
timestamp: November 01, 2013, 10:55:58 am
content: Well, just 16 resistors for an R2R ladder would give you a simple DDS, if you manage to get the software running.

author: madshaman
author_rank: Frequent Contributor
timestamp: November 01, 2013, 12:21:31 pm
content: How about a PWM generator built from opamps (square-wave-oscillator/integrator/comparator)? Your students can probe multiple points at once and a single quad-package opamp can be used.