Difference between revisions of "Controller"
(Created page with "Currently an Artix-7 FPGA is used as the controller. It has a serial interface with a command width of 80 bytes.") |
|||
Line 1: | Line 1: | ||
Currently an Artix-7 FPGA is used as the controller. It has a serial interface with a command width of 80 bytes. | Currently an Artix-7 FPGA is used as the controller. It has a serial interface with a command width of 80 bytes. | ||
+ | |||
+ | The first byte gives the command. The command has a variable width, with a maximum length of 80 bits. Most commands just get enqueued into an internal FIFO with 64 entries. | ||
+ | |||
+ | The internal clock frequency is 20MHz. | ||
+ | |||
+ | Commands: | ||
+ | |||
+ | === Ramp === | ||
+ | - ramp('8h9a,'36h<acceleration>, '36h<clock count>) | ||
+ | |||
+ | For the given number of clocks increment the internal acceleration register by the value given in the command. | ||
+ | Acceleration can also be negative. | ||
+ | |||
+ | === Start === | ||
+ | - start('8hb5) | ||
+ | |||
+ | Start the engine. All commands in the fifo will be executed. | ||
+ | |||
+ | === Configure Rev === | ||
+ | - configure clocks/rev ('8ha3, '24h<step per revolution>) | ||
+ | |||
+ | Set number of steps for one revolution. With a 0.9deg stepper and 256 microstepping set it to 1024000. | ||
+ | If the internal position counter reaches this value, it is reset to zero and a pulse on the REV pin is generated. | ||
+ | |||
+ | === Sync Revcounter === | ||
+ | - sync('8h3d) | ||
+ | |||
+ | Run until the next rising edge of the home sensor. If reached, reset the internal position to 0. |
Revision as of 21:05, 21 March 2018
Currently an Artix-7 FPGA is used as the controller. It has a serial interface with a command width of 80 bytes.
The first byte gives the command. The command has a variable width, with a maximum length of 80 bits. Most commands just get enqueued into an internal FIFO with 64 entries.
The internal clock frequency is 20MHz.
Commands:
Contents
Ramp
- ramp('8h9a,'36h<acceleration>, '36h<clock count>)
For the given number of clocks increment the internal acceleration register by the value given in the command. Acceleration can also be negative.
Start
- start('8hb5)
Start the engine. All commands in the fifo will be executed.
Configure Rev
- configure clocks/rev ('8ha3, '24h<step per revolution>)
Set number of steps for one revolution. With a 0.9deg stepper and 256 microstepping set it to 1024000. If the internal position counter reaches this value, it is reset to zero and a pulse on the REV pin is generated.
Sync Revcounter
- sync('8h3d)
Run until the next rising edge of the home sensor. If reached, reset the internal position to 0.