This design is a simple two-dimensional axis controller. It uses 4-bit wide counter, 4-bit Magnitude Comparator and a 4-bit wide target co-ordinate register for each dimension. A simple State Machine is used to acquire the target value for each dimension and then control the movement to the target co-ordinate value for each dimension in parallel operation. Comparisons of the current position and the target value for each dimension along the way and when the Target is reached, the controller sits in a "AT-REST" state and waits for another motion directive. The Target values can change at any time after the Motion begins. New Target values will not be captured until the NEXT MOTION request. The controller can be RESET at any time with the rst_n input.
Inputs:
TT Infrastructure Signals:
Outputs:
Set the X/Y Target values on ui_in[7:4] for X and ui_in[3:0] for Y. Press the Motion button and release. The Controller will advance the X and Y potions towards the target values by one increment for each clock. If one dimension's target value is reached before the other, the controller will hold the current position for that one while the other one continues to its destination. You may update the Target values at anytime after the motion has started. The controller will move towards the NEW target values onlyif the Motion button is pressed again.
Connect input switches to the ui_in[7:0] pins for the target X/Y co-ordiate inputs. Connect a push-button to the uio_in[0] pin for the Motion button. Each input should have a resistor pull-down of about 10 KOhms to GND of the TT06 chip. Each switch or push-button must connect the TT06Chip VDD to the input when closed. Connect either low-current (5-10 ma) LEDS or a LED Driver device a Logic Analyzer to the uo_out[7:0] pins for X and Y position values (4-bit binary for each axis) to be displayed.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | y_target0 | y_pos0 | motion_inp |
1 | y_target1 | y_pos1 | |
2 | y_target2 | y_pos2 | |
3 | y_target3 | y_pos3 | |
4 | x_target0 | x_pos0 | |
5 | x_target1 | x_pos1 | |
6 | x_target2 | x_pos2 | |
7 | x_target3 | x_pos3 |