Divide and conquer

Welcome to the blog post I wish I had read two days ago.

From now on I will make it a rule to get one peripheral working at a time. Why? Because it turns out if you don’t; they might interfere with each other in a bad way.

This particular one saved us a PCB spin. If I did not get the devkit, this is one of the things I could not foresee. That’s why my new rule is to test one peripheral at the time, then together!

Maybe it is getting a screen working, reading from an SD card or simply getting I2C working. Get them working one at a time, then together. Oh, and did I say I2C is simple? Let me take you on my ~20 hour journey getting it to work in my setup!

Continue reading “Divide and conquer”

Divide and conquer

Design for Debug

I’m not formally educated as an electronics engineer, though I am a software engineer. One of the things that happens with engineering is that you make mistakes. Because of this, I always design my first revision of a PCB for debugging.

This means that is has to be easy to test voltages, configure boot states and isolate  the various functional blocs of the design. Things of particular interests could be; power supply, charge circuits, external peripherals (DAC, ADC, Shift registers, LCD, encoder etc) and whatever that’s new for you at the time.

Let’s dive into the few and simple techniques I use when I intentionally design for debug!

Continue reading “Design for Debug”

Design for Debug