Hello,
This is my first post/question here. I did make an attempt to find information in other threads, but were not able to. If there are some good threads already, then simply point me in the right direction.
TLDR; See questions at the end. Basically, how would you test a board, to ensure that digital signals behaves correctly.I'm having some thought on how to test newly designed boards, and though I poke the brains on this forum on this topic. My end-game is to ensure peace of mind, when it comes to new boards that I have designed. Even if the boards are fully functional (in my environment), I would be ever so more satisfied if I knew for certain that all parts of the board are behaving correctly (not just good enough). I'm sure you could make a long check list of various aspects of a design that would be "good behavior", but I am in particular thinking about digital circuits and the impact of impedance miss matching and cross talk. I believe I know enough about these topics to know how to design to avoid such issues, but I would like to verify that as well. Maybe I made some mistakes, or maybe I am not as well versed as I would like to think. At the very least, I want that peace of mind that this is something that I tested and verified. In case of problems, I would of course like to be able to make corrections and verify the result.
From what I have learned, a good approach is to first simulate your design before building it, and finally test and verify the fabricated board.
Simulations - My main problem here is that I have gone from EasyEDA to Eagle, then DipTrace, and most recently to KiCad. I can't really find anything appropriate to do any simulations with digital designs with these tools. Moving over to one of the big boys (Altium or OrCad?) might be too big of a step for me. ngspice does not really do digital simulations (I think?) What are my options here? Also, it seems somewhat labor intensive to simulate a whole board. What is a good approach? Simulate everything, skip this step, or perhaps only simulate critical signals and/or components? I am good enough with datasheets and some math to do some calculations (poor mans simulations? ;-)), but would like to see if I can do better than that.
Tests I have a fairly inexpensive scope (only 1Mohm input, max 250Mhz I think). I'm mainly looking at I2C, UART, PWM etc (max 1Mhz), clocks (10-125Mhz), typical 74-serize ICS (shift registers etc) and some more complex circuits (MCU etc), so nothing excessive in the Ghz range. With newer ICs, with quite aggressive rise/fall times, I know that I will get ringing and cross talk even with fairly low clock rates and medium length traces. I can match impedance and know how to space tracks etc, but how do I verify the end result? What I would like to do is simply probe all signals on the board to verify that there is little cross talk and ringing. However, I know that what I see on the scope can/is far from what the signal actually look like, because of the high impedance of my scope. I'm not sure just how bad the result is. If I can see some ringing on the scope, how would I know if it originates from my design or from the probe/scope itself? Am I being overly cautions here?
I've read up on "soldered probes" and "active probes", which looks like something I want to use. I am not sure if I need to upgrade my scope first though. Also, I guess I don't quite understand how (why) they work, so here are some questions about that as well:
"solder-in probes". I'm referring to something like this
https://www.hackster.io/news/make-your-own-solder-in-passive-oscilloscope-probes-7728c12ad11a. I do not have a 50ohm input on my scope, but I guess I could use a bnc-t connector and put on a 50 ohm terminator. This will essentially be a resistor divider which will drain a few mA from the signal that is being probed. I can see how this works if you connect your probe to a signal output which is not connected to anything else, but I think I would see at least one reflection because of the high impedance of the other end of the signal (presumably a high impedance input of another circuit). Is this a problem in practice? Also, wouldn't the 2ma drain cause problems on for example crystals etc? How do I probe clocks in that case? My T-connector would also cause a reflection, right? What would you expect the end-result be like? Is it worth it to go this route?
"active probes". I'm referring to something like a CT4121
https://www.mouser.se/datasheet/2/701/Cal_Test_Cat_No_23-1308212.pdf. Again, would it make sense to use such a probe with a T-connector and a 50 ohm termination? Would a DIY FETProbes that can be found on for example ebay, work good enough for my needs?
I guess this boils down to three questions:
1) Given a newly designed board with digital signals, how would you test and verify that the signals behave correctly?
2) Do I need to move (yet again) to a new CAD software if I want to do simulations? All in all, is it worth it?
3) Do I need to buy a new scope, or will any of the solutions listed above work good enough for what I need?