learn Sparkfun - clockclock Project

Hello,

I would like to get to grips with FPGA programming and have therefore chosen the clockclock learning project. The pin assignment is defined in the clocklock.acf. Unfortunately, the information is missing here as to where the motor 0,1,2 etc is located (how is the matrix arranged?) and which motor (small pointer, larger pointer?) is (just odd)

I hope someone here can help me.

Regards

Matthew

This is an extremely complicated project; it mentions “I designed a movement where the minute hand would be directly driven off the motor shaft and the hour hand would be driven via a gear so the motor could be offset to the side.” - check out the ‘physical build’ portion

Which motor is which is defined elsewhere in the guide as abstraction layers, but it looks like the pin assignments were determined as such:

Pin Assignments

At this point you may be wondering how the step and dir signals map to the IO pins on the Au.

This mapping is defined in a constraint file. In this case they are in the clockclock.acf file. The acf extension is for Alchitry Constraint File. This format is very simple and allows you to specify the pin names as the pins on the Alchitry boards instead of the FPGA. For example, A2 maps to the second pin of the top left header (bank A) on the Au.

If you open this file you’ll see a whole bunch of lines that look like this.

pin step[0] A2;

pin dir[0] A3;

Each IO port needs to be mapped to a physical pin. The format is the pin keyword followed by the signal name and finally the physical pin location.

You can also add the pullup or pulldown keyword to add an internal pullup/down resistor to the pin. However, `pulldown is ignored on the Cu as the Lattice FPGA doesn’t have internal pulldown resistors.

Most of the pins on an FPGA are fully interchangeable and the pinout I used for the clock was super arbitrary with the exception of the Qwiic signals since they are wired to the Qwiic connector.

All that was important for this project was that I kept them all straight.

So…the main thing would likely be to label them as you build the clock, and assign them to the order you placed them by editing the acf file to match your setup. Best of luck! Share any improvements that you make!

Hello,

thanks for the information. I am planning an implementation with VID-28 engines. Two pointer instruments are combined here. Control via TMC220X.

The pin assignment is clear to me and is defined in the clockclock.acf file. but within the matrix which engine is engine 0???

M0-M1-M2-M3-M4-M5-M6-M7

M8-M9-M10-M11-M12-M13-M14-M15

M16-M17-M18-M19-M20-M21-M22-M23

is this correct in the top view?

You mentioned a pullup/pulldown that only the AU board offers. Does the structure also work with a CU board?

Regards

Hi,

Unfortunately, I still haven’t received an answer to my question. Can you help me? Which motor goes with which pinout in the acf file?

Image28.jpg