Here is a calibration system I worked up that will...
# mpw-2-silicon
t
Here is a calibration system I worked up that will calibrate a chip almost instantly (compared to ~10 minutes for the existing method). It only needs to be flashed once, and the calibration is done mostly on-chip with some (efficient) handshaking between the chip and Nucleo board. I also have provided code that can be inserted into a program to calculate the correct configuration on-chip, so that you can write a program that is only minimally different from what you would use in simulation. Provided for anyone who wants to play around with it. Instructions are in the README file, and the method is described in detail in the
calibration.c
file comments. One caveat: This method (as written) does not report back on errors, so if any point in the GPIO serial chain fails to configure correctly after two attempts, it will go unreported (I could just flag with one bit that an error occurred, but I'd rather report on exactly where an error occurred, since there are a number of chips that can be made functional even though the middle section of the GPIO can't be programmed properly. Making the information available just requires some additional handshaking between the Caravel chip and the Nucleo board).
👍 3
I should note that this method uses GPIO[0] as an output in several places and so it will not work on the Caravan analog chips, which have a broken GPIO[0] output.
This code could be adapted to work on the analog projects by using GPIO[2] for communication with the Nucleo when calibrating the high side (calibrating the low side should work fine because it only uses GPIO[0] as an input for that).