4 ms·
This is a great list of some basic rules of thumb! Over the years I have encountered many of these in practice. I think it is important as engineers to always
by roland35 6y ago
This is a great list of some basic rules of thumb! Over the years I have encountered many of these in practice.
I think it is important as engineers to always try and keep an eye on the big picture. Many times it is easy to get bogged down in an interesting technical problem in embedded engineering, and we can forget how that problem fits in with the overall state of the project. One example was I found that I could not send more than 1 USB bulk packet per millisecond using Texas Instruments' USB library, even though in theory you could send 19 per millisecond. I wasted a few days to try and fix that, but it was a waste of time because speeding up USB only sped up firmware updates which were not a big deal! There are many examples like this unfortunately.
I think the biggest thing missing from this list is how important it is to thoughtfully design the hardware to make the firmware easier to design. This requires a less agile approach, or more flexible prototype hardware until requirements are better understood. Just one example is using separate SPI/I2C busses for separate peripherals, even though technically they can be shared. This helps you not have to worry at all about collisions or managing Direct Memory Interfaces (DMA).
- bradstewart 6y agoDefinitely agree with thoughtful hardware design. Simple things like good placement of test points to attach scopes on relevant signals is extremely helpful.
- roland35 6y agoYes test points are important for absolutely everything on the first iteration of a new hardware design, you just have no idea which ones you need before starting the project! I think it is also important to have a big enough test point to actually use too! There have been many times I have been trying to hold a probe to a tiny little exposed circle pad, just wishing it was something big enough to clip a lead to.
- astrobe_ 6y agoI don't think solving the USB issue was a total waste of time. Knowing what is going on is always valuable. The "My USB throughput is not what it should be... Oh, well. Must be the USB cable..." attitude is something that can bite you later, because it can be the symptom of a bug (e.g. packets lost because of a buggy ISR) that's just waiting the worst moment to show its ugly face.
- roland35 6y agoYes I did end up learning a lot more about USB bulk mode and the TI drivers so it wasn't all bad! But there probably were higher priorities...