Board design The good thing about this project was that I happened to finish the first prototype way earlier than deadline (in 2 months) and I had another 2.5 months for the project so I decided to make a nice little PCB (printed circuit board) for the DSO. This was my first proper board design so I was taking a risk with my final project as humans make error there could be a mistake in the layout or assembly of PCB. And it did go wrong, I had wrong footprints for an IC but the lab support managed to fix that using some thin trace wires. In the end it was all good, everything worked and I am super proud of the PCB.
Firmware Entire firmware for the MCU was written in C language and I used atollic trueStudio toolchain for the development. It’s an Eclipse (which is always a plus) based environment with GNU C compiler and atollic’s ST-link GDB server for debugging. Standard 20-pin JTAG port was used for programming/debugging purposes. The MCU also provides trace support for debugging but I did not bother to use it. Now obviously a comprehensive description of the entire firmware is out of scope of this article. I will however describe the code structure and some highlights of the firmware.
Analogue circuit Yep let’s start with the toughest bit. To begin with I am not very good with analogue circuit design and the problem with this project is that it requires perfect analogue design. The output should be noise-free, not distorted and should not have any offsets.
=== Figure 2: DSO’s...
Oscilloscopes are electronic test equipment which let you view continuous voltage variation against time. Yes it is the big box resembling an electro-cardiograph. Modern day high-end digital oscilloscopes are pretty awesome with high speed digitizers, fast memories, clean analogue front-end and advanced signal processing. On the other end there are also some cheap digital oscilloscopes which are merely toys, deficient analog circuits, slow ADCs and limited features.