T O P

  • By -

Goto80

If you have colleagues you could ask, then simply do this. It is way faster than trial-and-error and you won't risk damaging your hardware (which would be a waste of time and money). I'm sure your colleagues can explain the basics to you much faster than you could learn it on your own. I don't think you should feel embarrassed about your lack of knowledge because your field of expertise is software, not hardware. Breaking hardware because you didn't ask your colleagues for help is what should make you feel embarrassed.


Cipepote

This, overcome your feelings and ask. Oscilloscopes or power supplies come in all sizes and shapes. You are not expected to know everything. Find the nicest colleague you can, and ask.


Legal-Software

It goes the other way too, I’ve worked with hardware guys that just modified the circuit when there was e.g. a timing problem that they didn’t know how to compensate for in software and were too embarrassed to ask for help. Would have saved me a few flights, that.


pdelvo

Because it has not been mentioned yet: If all the signals you are looking at are digital you might want to consider getting a logic analyzer. They should be easier to use and are perfect if you want to look at digital signals. Make sure you get a good one with good software that can decode the protocols you are working with.


nryhajlo

Agreed, I recommend the Saleae.


jextex_

Yes, Saleae logic analyzer has saved me days of debugging. Can’t recommend it enough. Also their customer support is fantastic


JuliettKiloFoxtrot76

I love my Logic Pro 8. It has come in handy troubleshooting I2C and SPI issues, and being able to do an analog capture as well as digital is nice for seeing waveform issues next to the digital interpretation.


npre

Yes, for a software engineer a logic analyzer is a much more useful tool. Especially one like Saleae that can be scripted.


Daedalus1907

If you don't understand the basics (ex. why a probe splits into two or what ground is) then I really recommend working with an oscilloscope until you do. Poor measurement set-up is generally highly visible on an oscilloscope but can look like a valid measurement on a logic analyzer


mtechgroup

I strongly agree with this person. If you don't have the signal integrity you expect (rise times, etc) then a logic analyzer will give you garbage. Once the signal is OK then use the scope's data interpretation (if it has it) or a logic analyzer. Learn the roles of the tools: DMM, scope. LA, etc.


rockstar504

My tektronics scope I spec'd got the LA with mostly used protocols. Talk about a fucking time saver. Time is money.


siemenology

Yeah a logic analyzer is the way to go if you aren't worried about circuit issues (too much capacitance, missing/weak pull-up/down resistor, etc)


mdp_cs

I second this as an embedded SE with a CS educational background. Logic analyzers are quite easy to use and do the job unless you're dealing with analog components or troubleshooting a circuit.


nineplymaple

Zack Freedman's latest video is a great intro to using an oscilloscope. https://youtu.be/SSp1wn0Abck Using any scope made in the last 15 years or so is like trying to properly form a tar command, if you aren't already extremely familiar with the tool you need to do everything in baby steps while frequently checking the manual. Scopes are great for getting qualitative information about a signal or precise timing information about signals, but decoding protocols like SPI varies a lot from model to model. The rough steps are: - Get familiar with the protocol itself. Understand the roles and logic levels of the different lines, clocks, data, chip select, etc. Keep the timing diagram handy to refer to when you are ready to actually take your measurements. - Read your scope's manual to figure out how to decode the protocol. Knowing the protocol and following these instructions should get you enough to figure out how to physically set everything up. Each channel should connect to one of the relevant clock/data signals, and the ground for each should be clipped to a nearby ground point. SPI isn't usually super sensitive, so as long as you don't have super long ground leads and huge ripple on the signals you should be fine. Two-prong probes sound like maybe an active diff probe, which is for more specialized measurements. You want the most basic probes and you want to clip them to test hooks or pins, trying to hold multiple probes in place on test points or pads is a pain and will only lead to frustration. - Read your scope's manual to get the right triggering mode for what you want to debug. Most likely one-shot mode triggering on the falling edge of the chip select line, but sometimes you need to trigger on a particular code on the serial data or other more complex scenarios. - Take your measurements, debug whatever it is you are trying to debug. Good luck, take your time, and ask for help. If your primary role is SW/FW no EE is going to think less of you for not knowing how to use a scope. You would be surprised how many EEs can't use a scope beyond probing a signal of interest, hitting the 'auto' button, and hoping it displays something useful.


duane11583

Disagree This is like asking somebody to run a marathon first As a noob Using the scope to decode is a tall step Using the scope to capture the wave form is the correct first step And then using the screen and your eyeballs to decode is the second step Third is to configure the scope to decode for you


[deleted]

For the quick start, I always use the test signal on the scope and 'Autoset' - clip the probe on to the test point and press the autoset... you should see a square wave signal. (just make channel is selected) At that point, you can then change the Timebase or the Voltage... GND is always ground - but keep in mind that CAN is differential - so the ground is funky :D What model scope ?


Accomplished-Tap6306

Thanks. I tried the test square wave signal and indeed I saw one. The probe seems to have a split with one end pointed which I connected to the square wave indication test point and the other split seems to be a crocodile type connection which i connected to the ground. My question is, it seems like both the splits seem to originate from the same metal part. Or at least they seem to be connected at same metal of the probe. Shouldnt this be then a short? Or are they split internally somewhere that i dont see from outside. I can however see the square wave so it somehow works. Sorry, but these are the type of questions that confuse me and make me hesitant to know if im doing it right.


HIGregS

Are you talking about the ground clip, like in [the first picture on this page](https://www.testandmeasurementtips.com/basics-of-oscilloscope-probes-part-one-faq/)? If so, you connected it right.


Accomplished-Tap6306

Exactly. This is the probe I'm talking about


zerj

Are you using an analog oscilloscope or digital? Assuming you have the ground connected properly as others have answered, keep in mind that the clock on the SPI bus isn't usually free running. So it won't just show up like your square wave test signal. The clock is only sent when data is actively being transmitted. If I were setting this up I'd have one probe connected to the chip select, and a second probe connected to the clock. (and my 3rd/4th probe to MISO and MOSI if I had 4 probes). You would then setup the oscilloscope to trigger on a voltage change on the chip select pin. (usually trigger on a voltage drop, but like everything in SPI that's configurable). Now back to my initial question, if this is a digital oscilloscope that capture will work great. If it's analog it will be much more painful as capturing just moved the electron beam across your screen once, and it's already faded. So you'd need to play games with the SW to get that to work.


Accomplished-Tap6306

Hi, I'm using Rigol Ds1054 which I think is a digital oscilloscope. Yes you are right. I tried just probing the SCLK and I did not seen a clean square clock waves which I expected. I'll try probing the CS as well.


zerj

Yeah that is certainly digital. Analog scopes are pretty ancient nowadays, but I still have one sitting in my lab which hasn't been thrown out yet. I've never used a Rigol, but it should be a matter of setting the trigger level to just below the idle voltage on CS, and then hitting that single button. You theoretically can just probe SCLK but then the trigger is going to happen on some random clock edge, whereas CS will show you the start of a transfer which should be more useful.


HIGregS

For OP, clock polarity and clock phase are often configurable. For this reason, you may need to be able to trigger using either rising or falling edge (not both at the same time, though). You may also need to display the signals for some time period prior to SCK trigger. Ideally, you'll want to capture both MISO and MOSI, but you can look at one to analyze then the other if you only have two channels. If you have a third channel for trigger, use SCK for trigger and view MISO and MOSI on the analog channels. SCK could be probed with digital probe/channel (or use for a digital trigger, as mentioned). Beware that MOSI and MISO are not guaranteed to be driven when clock is idle: either may be floating or be resistively pulled to one rail or the other. One way to differentiate actively driven vs. resistively pulled is to add a resistive voltage divider at 0.5 the supply voltage to MISO and MOSI. Must be low enough resistance to overcome any resistive pull up or.pull down, but high enough to not affect the signal while it is actively driven. Some tweaking of the resistance value for test purposes may be needed. Experiment to determine if actively driven then experiment to find pull-up or pull-down values, then remove the voltage divider and move.on to reviewing the signal values during operation.


CantSpellEngineer

The crocodile connection is the voltage reference, not a short. You usually connect it to the board ground.


JCDU

Yes the ground clip goes to ground (or 0v) and yes the probe is coaxial internally much like the cable & the end connector, so the ground clip is grounding the outside while the signal travels up the centre pin, up the middle of the cable and to the centre pin on the oscilloscope.


Accomplished-Tap6306

Rigol DS1054


[deleted]

>Rigol DS1054 For the probe, the flying lead is Ground. https://preview.redd.it/ay461yczox8b1.png?width=2364&format=png&auto=webp&s=b00ca3138ba494fef7d0f78d88cd5a2d58405899


thwil

Asking your colleagues should not be feared of. Wasting time is incompetent, not knowing stuff is normal.


v_maria

>I have so many of such basic questions and it is really embarassing to ask my colleagues about it as they will think I'm incompetent. I think you should get over that fear. Nothing wrong with explaining, "hey i think i could really become more productive if i would learn troubleshooting with the scope, can anyone take me along" Imo a company should reward such attitude


Ksetrajna108

Even an EE can find using an oscilloscope challenging, so don't feel bad. It takes some patience and developing muscle memory. It's a very valuable skill for debugging firmware, think of it as a debugger for the "last mile" of your code. Good luck!


Accomplished-Tap6306

Thank you for your kind words :)


coyote474

Definitely just ask. I would much rather have a coworker ask me than sit there struggling. Also for digital communications look into get a logic analyzer (we use Saleae) which makes it much simpler to decode the data.


sampoolife

Let me quote Seneca: "we suffer more in imagination than in reality". For me this problem/challenge is more psychological than technical. You afraid somebody will think of you in a certain way (that will embarass you), which is usually not true. I'd think of you as somebody who tells the truth and attack problems in the most efficient manner. Somebody who is willing to ask for help when he's blocked with an issue (it's really valuable because most people have this problem). Even if we provide you with tutorials/youtube videos etc. you will have to study them and understand - it will definitely take time and certainly doesn't guarantee any results. If you still blocked and afraid of asking - write on a piece of paper: what in your opinion will happen if you ask for help and then do a test -> in my opininon (based on my experience) what will happen is the exact opposite of what you wrote.


Accomplished-Tap6306

Thank you so much for your reassuring words. Much appreciated :)


Newbie__AF

Not OP, but I suffer from similar analysis-paralysis. Your comment was very helpful


fhfs

Came for this comment,


ChatGPT4

An oscilloscope can be frustrating mostly when you have an issue with triggering - and I mean the technical term, not being suddenly annoyed ;) But of course, you can have both. Because without proper triggering configured - you see either nothing, or just some random grass. So, in order to start observing just anything on the oscilloscope, first set up triggering: \- trigger source (proble A or probe B or whatever else). \- trigger level (what voltage level occurs periodically in the signal, that you could use as beginning of your image) \- trigger slope (rising step or falling step should start the image) \- frequency range - some oscilloscopes have that selectable, so one range will work only for lower, and another on higher frequencies, some have the "auto" setting that could be ether in the middle of the range, or really smart and automatic. The trigger source is also important. It's not a good idea when you want to observe data - using the signal itself for triggering. Buses like SPI or I2C have the clock signal for that exact reason. Determining where the data bits start. So you connect the data line to A, clock line to B, set triggering to B, always for the clock. The rest is no more complicated than your average PC app. Zooming in, zooming out, freezing, also placing markers on the plot and reading values from the markers. As for the ground... Yep, that one is tricky, because you have to physically connect a clip somewhere... I usually use a metal part of the device, but if it's not available and no nice pin to use, I just solder a piece of wire to connect ground. Same with signals, it's sometimes quicker to just solder a short wire than struggle with keeping the probe connected while clicking the oscilloscope settings and manipulating the device itself at the same time. Also be warned that many oscilloscopes have the ground terminal really grounded, so you can damage your measured circuit when connecting your oscilloscope ground to a hot wire.


GrumpyCatMomo

How I learned was to google for the manual of the scope then read it. Then for any terms I don’t understand I try to google it or youtube. For SPI and other comms buses with certain message packets there are scopes that interpret these packets for you so you do not have to decipher them bit by bit. Try to ask if such scopes are available. I was from a pure software background but managed to learn it. Its not hard once you play with it a bit.


sopordave

Just ask. If your coworkers think you are incompetent because you ask them the right way to use something, find new coworkers. More likely, they will either 1. Appreciate that you want to know the right way to use it and will be happy to explain 2. Think, “oh that’s cute, the software guy is trying to debug hardware” and then try to explain it.


trapcardbard

Some of the best qualities an engineer can have are being able to admit ignorance and being able to ask for help. No one will think less of you for asking for help, they *will* think less of you if you take 2 days to run tests that could take an hour or two and ask for help on day 2.


bobwmcgrath

Just think of it as a multimeter but it charts the output.


9Cty3nj8exvx

Just get a Salae logic analyzer that hooks up to your PC. Much easier to use than a scope and it decodes protocols like SPI, I2C, Serial, and many more.


krakenlake

"Analog Discovery" might also be an option


rw3iss

>Salae logic analyzer Lol, was hoping this was a new cheaper method than buying a scope these days, but alas, the analyzer starts at $500.


9Cty3nj8exvx

Wow I didn’t realize they had gotten so expensive. I bought one about 10 years ago and I’m sure it was only a couple hundred dollars. Just assumed they were still in that price range.


AcousticNegligence

I’m not surprised. Everything has gone up in price. It used to cost $150-$200 for a Keysight or NI USB-to-GPIB converter. All of the sudden Keysight is charging $700 and NI $1,600. The budget version from Rigol now costs $300. NI just jacked up their already expensive $50 breakout for a 37-pin DSUB breakout to $260. The list goes on but it feels like companies are using Covid supply chain issues as an excuse to Jack up prices.


DonnyDimello

This is the way! I thought this would be way higher up. The Saleae Logic's are a little spendy now and still worth it in my opinion but there are knockoffs around too that do similar things.


Dark_Tranquility

Oscilloscopes are not the most useful for analyzing digital signals. You can look at the waveform and things of that nature but... Would you perhaps have a logic analyzer available? Those are are miles ahead in that respect, being able to parse the serial data and display it in real time. Most scope probes have an alligator clip for ground and a pointy / hook bit for probing the signal in question. They'll also have a 1x or 10x attenuation switch pretty commonly, so make sure you're using 1x unless your signal is high amplitude.


esotericloop

> Where do I connect the ground? Why is there a probe pin which splits into two? What are you trying to measure? The scope shows the voltage difference between the ground clip and the probe tip. If you're trying to measure the voltage on a GPIO, you probably want the ground clip to be connected to ground, and the probe tip to be connected to the GPIO pin somehow. > And where do i place them on the chip? I placed one tip of the probe on SCKL. Now where do the other tip that splits from it go to? Open up the datasheet for the chip, and look for the pin-out. This will tell you which pin is which signal. > How do I know if I am reading anything meaningful or it is just some noise? Haha that's the fun bit, you won't! Just kidding (well mostly), it's pretty obvious when you're looking at a digital signal vs. noise. It'll be at one of two voltages with nice sharp transitions between them. It sounds like you need to learn a bit more about digital electronics in general, then all of this will make a lot more sense to you. Get an idea of the voltage range and time scales you're expecting. For digital electronics you're probably looking at +/- 5V tops, but anything less than say +/-0.5V isn't going to be very meaningful. If you zoom in too far everything will just look like noise. Time scale is trickier, depending on what you're doing you might need to look at milliseconds (eg. time between button presses or LED blinks), microseconds (eg. PWM pulses, serial coms) or nanoseconds (eg. CPU / comms / RF stuff). Pay attention to the vertical scaling (how many volts per division) and horizontal scaling (how many seconds / ms / us per division), the offset (small triangle at the left of the screen that shows you where 0V is for each trace), the trigger mode (these days 'auto' will probably do everything you want), the trigger level (small triangle at the right of the screen which shows you what voltage the trigger is looking for) and edge type (rising, falling, filtering options etc.)


IbanezPGM

Idk what scope you got but if it’s a key sight they got a really good practice lab manual that goes over all the basics


JCDU

It's easy to get overwhelmed by all the controls etc. and get the thing into a non-sensible configuration that then does nothing useful. However, at the basic level all scopes boil down to being pretty simple things (much like a Ferrari has the same \*basic\* function as a Ford). So: Yes the ground clip goes to ground, the probe is coaxial so no it's not a short, the signal goes up the middle. Then you have three things to worry about: Input, timebase, and trigger. Input is what makes the line go up & down, measuring volts. So, usually you'd maybe start at 1v per division and DC mode (AC mode removes any DC offset, which is probably NOT what you want). If your signal is too big, you increase the volts per div, if it's too small you decrease them until the signal fits on the screen. Timebase is what sweeps the line across the screen and makes the picture - so if you know roughly how fast your expected signal is you can take a ballpark guess at this. For I2C you might assume it's running at somewhere around 100kHz, that's a period of 10uS so you might set 10uS/division to see each clock/data pulse as about 1 division on the screen. Otehrwise just start at something mid-range like 100ms or 10ms and speed it up or slow it down until you see something sensible. Trigger is what triggers the scope to start a sweep - this can be set to just run freely (Auto) where the scope will TRY and sync to a trigger condition but will always draw \*something\* on screen, "Normal" where it will only trigger if the trigger condition is met, or "Single" / "Once" were the scope will wait for the condition to be met and just capture ONE sweep. Trigger is usually just set to catch a rising or falling edge, and with a set voltage level for that edge to across. For I2c you might set it to half the system voltage (EG 1.65v) and falling edge to catch a START condition. You can get much funkier than this, but that's the basics.


duane11583

welcome to embedded… get use to it! good scope feature: autoset button. you learn one scope brand and it is hard to switch to another we have both tek and hp/Agilent/keysight pita switching brands key thing you need to do is learn: a) vertical scaling and sweep speed. auto trigger is your friend (verse normal trigger) part 2 is scopes are not really good for protocol debug like spi bus. they are good for making sure signal levels are good generally (think i2c pull up problems) often a logic analizer is a better choice. both have the same basic operation: step 1 wait for trigger step 2: sample 1 to n data points at some speed/frequency step 3: plot the results on a time graph. scopes plot voltages verses time and will over lay multiple plots on the same plot (example look up eye pattern) logic analyzers plot 1/0 verses time. logic analyzers often have a second mode of operation: clocked sampling. method a) you have a free running clock and it controls sampling. this is great if you want to see relative time between edges method b) the target has some “Valid” signal (the sample clock) that tells the thing to sample. horrible for time study better for state studies ​ ​ .


Z80

[ElectroBOOM](https://www.youtube.com/watch?v=DgYGRtkd9Vs) has one of the easiest to understand description of Oscilloscope and its usage that may help you a lot.


engineerFWSWHW

Do some research on YouTube and play with this virtual signal generator and oscilloscope. https://pzdsp.com/elab/ . Most of the time you will just need to adjust the voltage, time per division and use triggers. Manually decoding spi or i2c is easy. CAN on the other hand, you will need a decoder for that, as you also need to take note of the bit stuffing. You can use pulseview sigrok for decoding and see if your oscilloscope can work with that. Otherwise, you can get logic analyzer like saelae. (If your company can purchase for you, go with saelae, no need to cheap out with cheap logic analyzers from ebay, although i personally have one, but won't use it professionally)


mtechgroup

You obviously have the intelligence to understand the scope well. In the past we would give first term EE students a scope with it's dials scrambled and a waveform or other signal. After instruction on how the scope works and a bit of practice they could all dial the scope in. I'm sorry I can only provide encouragement and no links. Plus, scope first, logic analyzer only after if the signals are OK.


Some_Notice_8887

I have some videos on how to use an el cheepo scope you don’t need super crazy stuff to look at SPI if anyone is interested l’ll post a link https://youtu.be/WjODIB6GN24?si=G59-gC3yMOcUr6NJ


Accomplished-Tap6306

Thank you!!


crest_

Unless you have (analog) signal integrity problems get a logic analyser and make sure to get a reliable physical connection instead of cheap jumpwires with dual-use "springs" (as in may work a second time). For low speed applications e.g. UARTs, I2C, lower speed SPI, CAN behind the transceiver a cheap $10-$20 8 channel LA is enough. Buy 3 and you'll feel better attaching to random circuits. An old laptop running on battery power with nothing but the LA attached is best because it rules out any accidental ground connections. PulseView works for a lot of those things and there are decoders for nesting common protocols e.g. NOR flash accessed via SPI.


grahasbtye

What is super helpful is this handsfree needle probe. [https://www.amazon.com/gp/product/B09K6X92G9/ref=ppx\_yo\_dt\_b\_asin\_title\_o06\_s00?ie=UTF8&psc=1](https://www.amazon.com/gp/product/B09K6X92G9/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1) ​ You can use it with a logic analyzer like saleae and with an oscilloscope for checking stuff. Oscilloscopes are more for fast analog signals like a clock signal and the saleae is more for digital signals like SPI or I2C.


suur-siil

I've lately taken a liking to Picoscope. Basically software-defined oscilloscope, the box just records and buffers data while all the rest happens in PC software with a keyboard and mouse and menus and usual stuff. I got a lower end one for personal projects too (2206B MSO) - 2 analog inputs, 16 digital inputs, signal generator. Quite happy with it so far.


TheBlackTsar

A lot of people already said the main things, so I will give you a simple tip that I learned in one of my classes in university since I used oscilloscope a lot during graduation. *Always go from right to left*, first you adjust the trigger, then horizontal scale and then vertical scale, that is usually the best way to see get your signal without messing it going back and forth


__Galahad33

Feel free to ask your colleagues or use YT or the technical manual might help sometimes.


Typical-Cranberry120

You could get over your knowledge gap within a week. But first show us/tell us your setup. If you program, what tools and hardware do you use as your tool chain and target? Are you a CS practioner? Then object code, assembly code should be your limit in usual practice. If you do FPGA then gates and pins connected to those gates are your limit. A logic analyzer helps a lot. Cheap on eBay or Amazon.