19
ITEC FlexDMC motion architecture Thiemo van Engelen 4 June, 2013 48th Systems/software Architecture Study Group Meeting

ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

ITEC FlexDMC motion architecture

Thiemo van Engelen

4 June, 2013

48th Systems/software Architecture Study Group Meeting

Page 2: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Contents

Introduction of ITEC

Software architecture

FlexDMC

Mechatronics

Scope

Measurement framework

February 10, 2014 NXP / ITEC / Thiemo van Engelen

2

Page 3: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

NXP discretes: Assemble for low costs

NXP manufactures and sells billions of standard products each year – Diodes, transistors, logic, zener, regulator,….

Extremely cost driven market, continuous price erosion

Assembly costs are ~75% of total for BL-GA Discretes products

ITEC equipment enables low cost assembly for BL-GA Discretes – Exclusively for NXP – Optimized for low cost / high volume products – Upgrade policy for installed base

February 10, 2014 NXP / ITEC / Thiemo van Engelen

3

1mm

Page 4: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

ITEC: Internal Customers only Dedicated to NXP

February 10, 2014 NXP / ITEC / Thiemo van Engelen

4

APM Seremban ,

Malaysia

APHK,

Hong Kong

APP Cabuyao,

Philippines

APG Guandong,

China

Power Management

Hazel Grove, UK

HPRF Products

Nijmegen, Netherlands

GA Discretes

Hamburg, Germany

APB Thailand,

Bangkok

Standard IC‘s

Sunnyvale, Cal

Page 5: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

BIM lines

Reel to reel BIM lines for: – Lower Cost

– Higher Quality

– Lower Throughput Times

February 10, 2014 NXP / ITEC / Thiemo van Engelen

5

B/E

B/E

B/E

Insp'n

Insp'n

Insp'n

DA WB WB MD WB WB DA DA DA

DA WB WB MD WB WB DA DA DA

DA WB WB MD WB WB DA DA DA

Plating

- no postcure

- waterjet deflash

- plating line

Latest version (SOT23 at APG): - 4 row high density leadframe

- 24k track speed

Page 6: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Adat 48k DBSG

February 10, 2014 NXP / ITEC / Thiemo van Engelen

6

Page 7: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

ITEC software development

Between 10-12 software developers

All code written in Ada (about 1.6Msloc)

Using Ada since 1994 when started with Windows NT – Now Ada 2012 on Windows 7 64bit

Example A3 DBSG real-time control: – Machine runs 13 products / second !!!

– About 70 tasks

– Controls 25 servo axis

– Has 4 cameras for positioning and inspection

– Real-time control done using Windows XP embedded on 1 PC: • Control generates all trajectory (25 * 2 * 8kHz) 400_000 setpoints/sec

• Control evaluates all pictures (13*4) 52 pictures/sec

• Typical response times 20us (500-1000 interrupts /sec)

February 10, 2014 NXP / ITEC / Thiemo van Engelen

7

Page 8: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Software architecture

Support all hardware versions (5 ..10) of a type of equipment with 1

executable.

Use APIs for common functionality

The functions in an API support are supported for as much hardware

platforms a possible – Typically all hardware platforms are supported

February 10, 2014 NXP / ITEC / Thiemo van Engelen

8

Motion Vision IO Scope Others

Application

Page 9: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Motion API

February 10, 2014 NXP / ITEC / Thiemo van Engelen

9

Application

Motion API

Hardware functions

(Move, Stop, Block, Unblock, …)

MCV60 PMAC FlexDMC

Calculations

Trajectory Compensations Measurement

Framework

Page 10: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

FlexDMC

Motor interfaces – 2 x 60V / 6A stage

– 2 x 150V / 15A stage

– Class D amplifiers with filtered (DC) output

– Stages can be combined for 3 phase or double current operation

Encoder interfaces – 4 encoder interfaces

– Quadrature or Sin/Cos encoders

Control loops – PID control + 2 x 2th order filter

– Setpoints and feedforwards received from the PC via firewire

– Current loops for current setpoint to PWM control

Analog and Digital I/O

February 10, 2014 NXP / ITEC / Thiemo van Engelen

10

Page 11: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

FlexDMC SW stack

February 10, 2014 NXP / ITEC / Thiemo van Engelen

11

Application

Motion API

Device drivers

DSP

FPGAs

Application calls:

Open_Motor

Move

Calculate splines from move

Queue spline to motor

Coordinate multi axis synch

Generate setpoints & feedforwards

Process incoming data (guarding)

Incoming

Data

Outgoing

Data

Handle encoders

Execute servo loop

Execute current loop

Handle encoders

Generate PWM

PC

Kernel driver

Data buffers

FlexDMC

Page 12: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Mechatronics

Feedback control is always slow and we have short trajectories so:

Make the feedforwards do all the work (as precise as possible)

Using feedforwards, we compensate for: – Mechanics => Springs, Friction, Inertia

– Position dependent motor constants

– Position dependent disturbances (cogging, springs)

– Non optimal Sin/Cos encoders

– Non rigid body behavior

These compensations can be determined automatically by the

application

For the calibration of these compensations we need a measurement

infrastructure

February 10, 2014 NXP / ITEC / Thiemo van Engelen

12

Page 13: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Scope tool

Use circular buffers to store events with the corresponding time – > 500.000 events per second (without locks).

– Application can store boolean, integer and floating point values

– To get timestamps, we use rdtsc of pentium (takes <<1µs)

– Application can read back data from these buffers.

Application has server thread that allows the scope client to retrieve the

data

Scope client: – Extract data from application

– Can store / read data in file

– Shows data graphically like oscilloscope

– Can compare scope data sets

– Computes mathematics on signals (+, -, *, derivate, FFT)

– Frequency domain: characterizing mechatronics & servo tuning

February 10, 2014 NXP / ITEC / Thiemo van Engelen

13

Page 14: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Scope application

February 10, 2014 NXP / ITEC / Thiemo van Engelen

14

Events

Float probe

8kHz samples

State probe

100ms cycle

Page 15: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

February 10, 2014 NXP / ITEC / Thiemo van Engelen

15

mechanics

Controller

Open loop

Page 16: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Measurement framework

For a motor, data can be retrieved from the scope buffers into a

measurement object: – Position (Setpoint & Encoder)

– Current

– Feedforward

– Noise

Measurements can be concatenated

Measurement object provides easy functions to extract the data, which

are used by the compensation functions

This provides a clear separation between gathering the data and

calculations on the data

February 10, 2014 NXP / ITEC / Thiemo van Engelen

16

Motion Scope buffers Measurement

object

Compensation

calculations

Page 17: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Conclusion

Measuring is key!!!

Investing in it significantly increases the development speed

The scope application is a very important debugging and mechatronic

tool for ITEC.

The measurement framework allows better code by separating data

collection and processing.

The motion API provides a uniform interface on all platforms, allowing

easy software development.

The FlexDMC offers ITEC the right combination of real time behavior

on the drive and flexibility on the PC.

February 10, 2014 NXP / ITEC / Thiemo van Engelen

17

Page 18: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC

Questions??

February 10, 2014 NXP / ITEC / Thiemo van Engelen

18

Page 19: ITEC FlexDMC motion architecturePUBLIC FlexDMC SW stack NXP / ITEC / Thiemo van Engelen February 10, 2014 11 Application Motion API Device drivers DSP FPGAs Application calls: Open_Motor

PUBLIC 19

Thank you