elhep / Motor_controller_DIOT

Multi channel biphase motor controller for optics alignment
0 stars 0 forks source link

Motor_controller_DIOT

Multi channel biphase motor controller for optics alignment

Requirements

Design

Motion controller is an FPGA based control system based on Magneto board. It uses CMOD-A7 as main control unit. It is used as a controller for optics adjustment. The control is done through SPI interface which allows for register based control of the 8 sin/cos channels that are connected to 2-phase stepper motors. MC also has a quadrature input for optical sensors that can be read out through SPI.

Block diagram

---
title: Motion controller 
---
block-beta
columns 9 
  MCU:1 
  space:2
  block:MC:3
  SPI
  block:FPGA:1
  NCOx8
  end
  DAC 
  end
  space:2
  MOTOR:1 
  MCU -->MC
  MC--"x8"-->MOTOR

FPGA Digital System

Digital system of motion controller is depicted in the diagram below. The design is a mix of IPs and microblaze soft core for SPI handling. The host controls MC through SPI that is handled by microblaze which set and reads registers controlling sin/cos channels and quadrature inputs.

DDS Core configuration

DDS core clock is set to 1 MHz and is enabled when sync signal of TLV5675 IP is high to capture sin/cos output of the NCO. The phase increment value is

Control system

The main control of the motion controller is done through SPI interface. SPI is designed in FPGA and controlled through microblaze MCU. The

PCB design

Tests

Contact

Piotr Zdunek - p.zdunek90@gmail.com

433c31c... Initial commit. Dummy project and data.