For my current project, a backplane bus, I need to distribute a shared clock signal to all participants on the bus. I don’t want to impose any rules on the topology of the bus and the number of participants and bus length (as in length of the wires) is variable. This means that I have to assume that there will be quite a few reflections. This is no problem for the data lines as they will only be read out once they have stabilised, but the signal to read or write is transmitted as a clock and reflections there can be messy.
Today I would like to present a little tutorial how to program a CPLD (in this case a Xilinx XC9572XL) using Ubuntu 12.4 LTS (64 bit) and the Bus Pirate v3. All the information needed to achieve this is already out there, but not conveniently boiled down to a tutorial. At least I did not find one. So here we go:
The first thing you will need to program Xilinx CPLDs, is Xilinx’s ISE development environment. Fortunately there is a version for Linux, but unfortunately it took a few tricks to make it work on my system. I cannot guarantee that any of this will be necessary or even advisable for you since it might depend on your flavour of Linux and version of ISE, but it worked for me.
Our hot water heater is broken. Or rather, it sometimes is. A while ago my flatmate and I noticed that sometimes, while taking a nice hot shower, the hot water turns cold. And that sucks big time. Our heater is in the kitchen and uses natural gas. It seems like sometimes the flame just goes out. We asked a friend who fixes these things for a living and after describing the symptoms to him, he suggested we open a kitchen window while showering. The reason for the flame going out might be that there is a build-up of exhaust gases and the safety kicking in to prevent people from suffocating. Opening a window would increase the chimney effect and thus temporarily solve the problem.
Sound advice, but there is one problem: How do we know opening a window actually works, if the problem only occurs sporadically to begin with? We don’t want to end up believing in tiger repellent rocks.
The answer — of course — is: Science!
This is the first article where I will focus on physics. Or rather on the methods used in experimental physics.
The aim of physics is to learn something about the world we live in. But how do we do that? Everybody knows that we have to do experiments. You do an experiment, you look at the data and then you learn something. Sounds straight forward, but — as always — the devil is in the details.
In this article I want to use the simple example of measuring the speed of sound to show you how to turn a set of data into knowledge, using free software.
Also, I needed something to do with my new TDC.
Now that I have a proper power supply, I can start building proper lab equipment and the first thing I set out to build was a Time to Digital Converter (TDC). Well, it’s really just a stop watch with microsecond resolution, but TDC sounds much fancier.
And here it is:
Now, how does this thing work?
What is the most basic ingredient you need, to dabble in hobby electronics?
For years I got mine by tapping an old AT-PSU with crocodile clips. It worked, but the unused cables were always in the way and the clips weren’t exactly the most fit connections for a power supply. So I decided to clean up my table, put the PSU into a nice case and — while I’m on it — include a variable voltage source.
I designed the case with
QCAD LibreCAD, gave some finishing touches with Inkscape and had it produced by Formulor, the German Ponoko.
This is the result of my efforts:
this is my new blog, in which I’d like to keep you posted about my projects and maybe sometimes write a little bit about physics. We’ll see how it goes.
I hope you’ll find something of interest!