9 ms·
How does USB device discovery work? [video]
- rtrunck 5y agoBen Eater (Author of this Video) is fantastic. Learned so much on electronics and computers through this series https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBy...
- thristian 5y agoPiggy-backing this comment to add some context for the OP video: This "USB device discovery" video is actually the latest in a series of videos where Ben Eater is building a simple 8-bit computer on breadboards. He hooked up a PS/2 keyboard as an input device, and then got sucked into a tangent of investigating and explaining keyboard protocols. - He investigates the PS/2 keyboard protocol: https://www.youtube.com/watch?v=7aXbh9VUB3U https://www.youtube.com/watch?v=7aXbh9VUB3U - Somebody on Patreon asked about USB keyboards having higher latency than PS/2, so he made a video about the basic USB protocol: https://www.youtube.com/watch?v=wdgULBpRoXk https://www.youtube.com/watch?v=wdgULBpRoXk - He made the OP video about USB keyboards being limited to holding six keys at once.
- throw0101a 5y ago> on breadboards. Whatever happened to wire wrap? * https://en.wikipedia.org/wiki/Wire_wrap https://en.wikipedia.org/wiki/Wire_wrap I can understand BBs for quick prototyping and tinkering, but once you've settled on the design, I'd think WW would be less fragile to deal with.
- internet2000 5y agoIs there a text version of the explanation?
- deleted 5y ago[deleted]
- balefrost 5y agoIn a sense... everything he covers is also covered in the USB spec. I can also personally recommend the book USB Complete by Jan Axelson. Is there a transcript / blog post version of this 30 minute video? I don't think so.
- amelius 5y agoKind of disappointing that his probably very expensive digital oscilloscope can't record the entire protocol. I mean, what is the price of ram these days? And note that (since it's a digital signal) you don't have to sample evenly; you can also record the timepoints of the edges.
- gruez 5y ago>I mean, what is the price of ram these days? It's probably more of a bandwidth issue than a memory issue. USB 2.0 runs at 480 Mbit/s, so if the oscilloscope can decode that, it would have to be able to output/store at least that much in terms of bandwidth. A USB keyboard would never hit that type of bandwidth, but presumably a buyer of such expensive oscilloscope would expect the feature to work every time, rather than only in best case scenarios. >And note that (since it's a digital signal) you don't have to sample evenly; you can also record the timepoints of the edges. Depending on the signal characteristics this can actually be worse. eg. if it switches very rapidly you'd probably be better off storing the reading as PCM or something, because the timestamps (which are presumably nanosecond level) would take more space to record than the raw sample reading (a few bits at most).
- amelius 5y ago> It's probably more of a bandwidth issue than a memory issue. Yeah, but you can use multiple banks and write in a round-robin fashion. > Depending on the signal characteristics this can actually be worse. Of course, that was only an example. You should probably do something like runlength encoding. In any case, the USB protocol is much slower than modern hardware can handle, so certainly doable.
- AussieWog93 5y agoConsumer grade DDR4 modules have a bandwidth of 25.6 GB/s. Even at 10 samples per bit you're laughing.
- snakke 5y agoYou're not wrong that the price of ram isn't that much these days. However, this is not simply a case of adding more ram and be done with it. There is a significant amount of extra engineering to be done. It would in the grand scheme of things be rather easy to "just add ram" but that's not how the product lines work for oscilloscopes. It's a bit like asking "Why does Intel price their high-end chips so high? It's not like the silicon is that much more expensive or yields that differ so much that they're 500% more expensive? And the consumer chips don't even support all the features that their Xeon's do!" And you're right, it's a digital signal, and in the normal world you would just use a logical analyzer and do it like you said. But this is for educational purposes and seeing the same tool and the actual edges is a great and clear example. That's not to say that oscilloscopes aren't useful for debugging digital signals. After all, seeing the exact glitch might help in some cases. So yeah, basically it's a combination of product differentiation and not the entirely right tool for the job.
- megous 5y agoThat's some fancy oscilloscope, but you can also get that info via usbmon, for example, directly to wireshark.
- metaphor 5y agoIt's a DSO first and foremost which just happens to be equipped with a certain $809 option[1] supporting a very specific application. If you cared about digital decode only, and had confidence in both the SI of your interface and tooling, sure. Great when things "just work"...entirely unhelpful when they don't at the lower layers of hardware domain. [1] https://www.keysight.com/us/en/product/D4000USBA/usb-2-0-triggering-analysis-4000-x-series.html https://www.keysight.com/us/en/product/D4000USBA/usb-2-0-tri...
- megous 5y agoYes, but if you ask question "How does USB device discovery work?" (enumeration, I guess) you don't need any fancy equipment to answer that. It's nice and instructive to "see" the signals using a DSO, but not necessary.
- thristian 5y agoThis video is a follow-up to a mini-series that started with examining the PS/2 keyboard protocol. The oscilloscope is there because the audience is already familiar with it, not because it's the best tool for this particular job.
- megous 5y agoYes, I'm not criticizing the author, but it's good to know that you don't need fancy tools and you can get to see the enumeration too on your own devices, practically in similar amount of detail.
- megous 5y agoI've recently been playing with CY7C68013A. Very approachable small USB (high speed!) microcontroller. With tiny amount of code, you can do quite a bit! It doesn't have flash and code is only loaded to SRAM over USB when you connect the controller to the host, so that's pretty flexible. So far I've been practicing on my saleae logic analyzer clone, which is based on this controller too, but there are cheap dev boards orderable from aliexpress, that have this chip which are not limited to input only. Muuuch simpler than STM32, and much faster interface. While some STM32 chips have high speed USB, most cheap boards don't include the high-speed PHY, so it's useless. Can't wait for the dev boards to arrive.
- ohazi 5y agoGlasgow [0, 1] uses one of these too. [0] https://www.crowdsupply.com/1bitsquared/glasgow https://www.crowdsupply.com/1bitsquared/glasgow [1] https://github.com/GlasgowEmbedded/glasgow https://github.com/GlasgowEmbedded/glasgow
- randyrand 5y agosounds interesting. Is it for USB device or USB host? Specs aren’t entirely clear.
- megous 5y agoDevice.