Portoscope Part 4: Putting it Together
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.
For laying put the PCB I used CadSoft EAGLE not only because it is free but it is actually pretty awesome. Although the auto-routing is a bit of a failure in this software but personally I like to lay out everything manually. There is lot of support online for EAGLE, sparkfun tutorials which are always very easy to follow and it also comes with lots of inbuilt libraries so you do not have to go hunting around. If you cannot the library for a particular IC go check element14 they must be having it. It is really fun laying out a PCB they are beautiful and the routing process is like solving puzzle. And trust me you will love when you see the fabricated board, it’s a special feeling. I also do a bit of graphic design so I made some wallpapers for PCB lovers and geeks. Go checkout my profile on deviant art (http://ninjasoar.deviantart.com/) you might like it and feel free to use them.
Alright let’s start with the layout, so once you are ready with the schematic you start routing the tracks on a board. Eagle will basically just dump all the components on one corner of the screen and you have to pick them up and place them at appropriate places. Just remember one thing placement is everything in PCB design so spend a lot of time trying different arrangements, make sure the track (wire) lengths are as small as possible and there is minimum crossing of wires. Cause if you have not placed the components properly routing can turn out to be a headache. There are some considerations to be kept in mind while laying out a PCB, especially mixed signal PCBs. If you are working with analogue signals and digital signals on the same PCB isolate the grounds. Have separate grounds for analogue ICs and digital ICs and connect them only at one single point on the board. This ground link will make sure that the reference voltage is the same throughout the device but it will isolate the noise from digital ICs. Because logic chips deal with switching signals these impedance changes induce noise to the supply rails. And analogue circuits are very sensitive to noise; you want to keep them as clean as possible. I also added decoupling capacitors for the same reason that digital IC do induce noise into the power supply so these capacitors stabilize minor fluctuations in the supply voltage. Most IC vendors will tell you what should be the value for these decoupling capacitors and if you follow the documentation you will also find some other useful things if you are laying out a board. Below are my layouts the top layer and a bottom layer, I also added a Portoscope logo on the bottom layer
Conclusion So yeah time to wrap up this article and finish things. It was a really interesting project I personally feel that it covers a broad spectrum of electronics from analogue amplifier design to acquisition circuits, MCU programming and PCB design. So if someone else is looking forward to doing something similar can contact me at email@example.com or you can check my blog for more details on this project at sonirajan.com/blog. So I hope you had as much fun reading this article as I had writing it, if you did go like or share my blog. I will finish off with the final specifications which I achieved (table below). Until next time -NiNjasoar Unity gain bandwidth 17MHz Maximum sampling rate 34MSPs Waveforms/sec 33.3Hz Sample memory depth 1024/channel Voltage sensitivity 2V/div-20mV/div Time sensitivity 1uS/div-20ms/div