DSO203 GCC APP - Community Edition (2.51+SmTech1.8+Fixes)


Using the shortcut button presses might work. Actually, you would only need one, used as a toggle,

say button 1 long press, then button 4 could still be used normally, or even used for a new function

altogether. Could make BOTH V/div and Time/div menus flash while in this mode to identify it. Would

have to check for any possible interaction issues with other controls, implement a memory of where

the menu was before engaging, etc…



As far as implementing a code generator within the program, as a basic function there should be no

problem. Issues would undoubtedly arise when integrating this so the scope function can simultaneously

function. First of all, I would not run this though a DAC. The risetime is poor, and artifacts such as you have

already noted on ending/starting of buffers abound. I’ve also noted some delay in the DACs to respond

after sitting at 0 level for a while. It just doesn’t make sense to use an analog function to generate digital

data. The data should be output directly through a digital port, allowing much better control, speed and

quality of waveform. Not sure if there is a way to have the processor read a buffer and output the data

in the background, like it does with the DACs, would have to check over the STM32 programming guide

for this, but if not, this could be done with an interrupt, since the timing critical part of an RS232 signal

is within each byte frame, each INT call could do a whole byte, so any INT timing delays would only

affect inter-frame timing, which is not so important for this protocol. INT calls for the sweep gen functions

already implemented at 1000 sweeps/sec are at 10uS interval, and while it does slow the program down,

it’s still fast enough to function adequately. This is where the “speed optimized” versions really help,

nearly doubling frame rate. Calling at this rate would provide 100,000 byte/sec or 1Meg Baud code output.

The sector buffer for file operations holds 4096 bytes and could possibly be used as the read buffer. What I

envision is perhaps 2 new positions for the output generator, “BIN” and “HEX” each reading a file

of the same name in the format of 0’s and 1’s for the BIN file and hex byte values for the HEX file. Baud

rate could be adjusted with the frequency range and fine adjust controls. Depending on how “complete”

the function is to be, you could also set data size in bits, parity and perhaps even polarity as well…