19
  mart eripheral C ontroller Low Cost Moto Cont olle Trademarks & Copyright AT, IBM, and PC are trademarks of International Business Machines Corp. Pentium is a registered trademark of Intel Corporation. Windows is a registered trademark of Microsoft Corporation. CodeVisionAVR is copyright by Pavel Haiduc, HP InfoTech s.r.l.

Manual SPC Low Cost Motor Controller

Embed Size (px)

Citation preview

Page 1: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 1/19Smart Peripheral Controller 

Page 2: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 2/19

Daftar Isi

1 Pendahuluan............................................................................................. 31.1 Spesifikasi SPC LOW COST MOTOR CONTROLLER......................... 31.2 Sistem yang Dianjurkan............................................................................ 3

2 Perangkat Keras SPC LOW COST MOTOR CONTROLLER......................... 32.1 Tata Letak Komponen SPC LOW COST MOTOR CONTROLLER..... 3

2.2 Konektor dan Pengaturan Jumper.......................................................... 4

3 Antarmuka SPC LOW COST MOTOR CONTROLLER................................. 63.1 Antarmuka UART TTL................................................................................. 63.2 Antarmuka I2C............................................................................................. 73.3 Command Set.............................................................................................. 83.3.1 DC Forward................................................................................................. 83.3.2 DC Reverse.................................................................................................. 9

3.3.3 DC Stop........................................................................................................ 103.3.4 DC All Stop.................................................................................................. 113.3.5 Stepper Continuous Run............................................................................ 113.3.6 Stepper Pulse Count Run........................................................................... 123.3.7 Stepper Brake............................................................................................ 143.3.8 Stepper Stop............................................................................................... 153.3.9 Set I2C Address........................................................................................... 153.3.10 Read I2C Address....................................................................................... 16

Page 3: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 3/19

1. PENDAHULUANSmart Peripheral Controller / SPC LOW COST MOTOR CONTROLLER

merupakan sebuah modul pengendali motor DC dan motor stepper yangringkas dan handal serta cocok untuk aplikasi robotik. Modul ini dapatdigunakan untuk mengendalikan arah dan kecepatan putaran 4 buah motorDC menggunakan metode Pulse Width Modulation (PWM) atau 2 buah motorstepper menggunakan full-step maupun half-step. Modul ini sudah dilengkapidengan quad full H-Bridge driver serta antarmuka UART level TTL dan I2Csehingga dapat dengan mudah dihubungkan dengan sistem lain.

1.1. SPESIFIKASI SPC LOW COST MOTOR CONTROLLERSpesifikasi SPC LOW COST MOTOR CONTROLLER adalah sebagai berikut:

• Sumber catu daya modul menggunakan tegangan 4,8 – 5,4 Volt.

• Sumber catu daya motor menggunakan tegangan 8 – 36 Volt.

• Menggunakan IC motor driver A3988.

• Kemampuan Arus Kontinu tiap driver 1,2 A.

• Dapat digunakan untuk motor stepper unipolar atau bipolar.

• Pin Input/Output kompatibel dengan level tegangan TTL dan CMOS.• Dilengkapi dengan antarmuka UART TTL dan I2C.

• Jika menggunakan I2C, SPC LOW COST MOTOR CONTROLLER dapat di-cascade hingga 8 modul.

1.2. SISTEM YANG DIANJURKAN

Sistem yang dianjurkan untuk penggunaan SPC LOW COST MOTORCONTROLLER adalah:

P k t k

Page 4: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 4/19

2. PERANGKAT KERAS SPC LOW COST MOTOR CONTROLLER

2.1. TATA LETAK KOMPONEN SPC LOW COST MOTOR CONTROLLER

2.2. KONEKTOR DAN PENGATURAN JUMPER

Konektor INTERFACE PORT (J1) berfungsi sebagai konektor untuk catu dayamodul, catu daya motor, antarmuka UART TTL, antarmuka I2C, dan koneksi kemotor.

Page 5: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 5/19

Jumper J3, J4, J6, dan J7 berfungsi untuk memilih mode operasi masing-masingH-Bridge pada modul SPC.

Fungsi M1 & M2 Posisi J3 & J4 Fungsi M3 & M4 Posisi J6 & J7

PengendaliMotor DC

PengendaliMotor DC

PengendaliMotor Stepper

PengendaliMotor Stepper

Perhatikan tipe motor stepper yang akan dihubungkan ke SPC LOW COSTMOTOR CONTROLLER karena koneksinya berbeda-beda untuk masing-masing

tipe. SPC LOW COST MOTOR CONTROLLER dapat dipergunakan untuk 3macam tipe motor stepper yaitu: Bipolar, Unipolar 5 kabel, dan Unipolar 6kabel. Berikut adalah contoh koneksi untuk tiap tipe motor stepper:

8V36V

Konektor J1

Bipolar 

J3 J4

1

23

J3 J4

12

3

J6 J7

1

23

J6 J7

123

Page 6: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 6/19

Jumper SCL-SDA (J5) berfungsi untuk mengaktifkan resistor pull-up untuk pinSDA dan SCL pada antarmuka I2C.

 Jumper SCL-SDAJ5

Fungsi

P ll id k k if

8V-36V

Ground Catu Daya Motor 

VM

M11/M31

M12/M32

M21/M41

MGND

M22/M42

Konektor J1

MB

A

C

D

COMMON 1

COMMON 2

Unipolar 6 kabel

Page 7: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 7/19

• tanpa flow control

Semua perintah yang dikirim melalui antarmuka UART TTL dimulai denganmengirim 1 byte data yang berisi <nomor perintah> dan (jika diperlukan) n-byte data parameter perintah.

Jika transmisi perintah berserta parameternya berhasil, maka SPC LOW COSTMOTOR CONTROLLER akan mengirimkan 0x06 (Acknowledged/ACK). Jikaperintah tidak dikenal, maka SPC LOW COST MOTOR CONTROLLER akanmengirimkan 0x15 (Not Acknowledged/NCK). Sedangkan jika perintah dikenal

tetapi parameter perintah salah, maka SPC LOW COST MOTORCONTROLLER tidak akan mengirimkan balasan.

Jika perintah yang telah dikirimkan merupakan perintah yang meminta datadari modul SPC LOW COST MOTOR CONTROLLER, maka SPC LOW COSTMOTOR CONTROLLER akan mengirimkan data melalui jalur TX TTL.

Sebuah data parameter yang memiliki range lebih besar dari 255 desimal

(lebih besar dari 1 byte) dikirim secara dua tahap. Satu byte data MSBdikirim lebih dahulu kemudian diikuti dengan data LSB. Misalnya parameter<pulse delay> yang memiliki range 1 - 65535. Jika <pulse delay> bernilai1500 maka byte MSB yang dikirim/diterima adalah 5 dan byte LSB yangdikirim/diterima adalah 220 ((5x256)+220=1500).

Perintah dan parameter yang bisa digunakan dapat dilihat pada bagian 3.3.

3 2 ANTARMUKA I2C

Page 8: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 8/19

Jika transmisi perintah berserta parameternya berhasil, maka SPC LOW COSTMOTOR CONTROLLER akan menulis respon heksadesimal 0x06

(Acknowledged/ACK) pada buffer I2C-nya. Sebaliknya jika perintah tidakdikenal atau parameter perintah salah, maka SPC LOW COST MOTORCONTROLLER akan menulis respon heksadesimal 0x15 (NotAcknowledged/NCK) pada buffer I2C-nya.

Master dapat mengirimkan perintah baca untuk membaca respon<ACK/NCK> tersebut. Jika perintah yang telah dikirimkan merupakanperintah yang meminta data dari modul SPC LOW COST MOTOR

CONTROLLER, maka data-data tersebut dapat dibaca, setelah membacarespon, dengan menggunakan urutan perintah baca.

Berikut urutan yang harus dilakukan untuk membaca respon dan/atau datadari SPC LOW COST MOTOR CONTROLLER. 

+ +1 1 1 0 X X X 1

Alamat Baca

Start

++0 0 0 X 0 1 X X

ACK / NCK

X X X X X X X X

Data 1 (jika ada)

Stop++ X X X X X X X X

Data n (jika ada)

...

Page 9: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 9/19

Keterangan ● Intensitas cahaya LED indikator masing2 H-Bridge (M1,M2, M3, dan M4) akan sebanding dengan nilai PWM

yang diberikan. Jika nilai PWM adalah 0 maka LEDindikator akan padam. Sedangkan jika nilai PWMadalah 255 maka LED indikator akan menyala denganintensitas yang paling tinggi.

● Pada kondisi forward , LED indikator juga akan akanberkedip.

● Pada kondisi forward , Mn1 (n merupakan nomor H-Bridge) akan mengeluarkan tegangan sebanding

dengan nilai PWM sedangkan Mn2 akan terhubungdengan MGND.

● Arah motor dan nilai PWM tidak akan disimpan diEEPROM. Saat modul SPC baru power on, nilai PWMsetiap H-bridge adalah 0 (nol) dan motor pada kondisistop (ke-4 LED indikator akan berkedip redup tiapkurang lebih 2 detik).

Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaranmaju motor DC yang terhubung ke M1. Misalkan duty cycle yang diinginkan50% (0,5 * 255 = 128) atau setara dengan bilangan desimal 128 danbilangan heksadesimal 0x80:

User : 0x30 0x01 0x80SPC : 0x06

Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan

k I

2

C ( i lk l I

2

C 0 E0)

Page 10: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 10/19

Respon 0x06 jika perintah dikenali0x15 jika perintah tidak dikenali

Delay antaraCommanddan Respon

10 µs

Keterangan ● Intensitas cahaya LED indikator masing2 H-Bridge (M1,M2, M3, dan M4) akan sebanding dengan nilai PWMyang diberikan. Jika nilai PWM adalah 0 maka LEDindikator akan padam. Sedangkan jika nilai PWMadalah 255 maka LED indikator akan menyala dengan

intensitas yang paling tinggi.● Pada kondisi reverse, Mn2 (n merupakan nomor H-

Bridge) akan mengeluarkan tegangan sebandingdengan nilai PWM sedangkan Mn1 akan terhubungdengan MGND.

● Arah motor dan nilai PWM tidak akan disimpan diEEPROM. Saat modul SPC baru power on, nilai PWMsetiap H-bridge adalah 0 (nol) dan motor pada kondisi

stop (ke-4 LED indikator akan berkedip redup tiapkurang lebih 2 detik).

Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaranmundur motor DC yang terhubung ke M1. Misalkan duty cycle yang diinginkan20% (0,25 * 255 = 64) atau setara dengan bilangan desimal 64 danbilangan heksadesimal 0x40:

User : 0x31 0x01 0x40

SPC 0 06

Page 11: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 11/19

Delay antara

Command

dan Respon

10 µs

Keterangan ● Pada kondisi stop, Mn1 dan Mn2 akan berada padakondisi tri state / high impedance.

Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yangterhubung ke M1:

User : 0x32 0x01SPC : 0x06

Berikut ini contoh pseudo code untuk menggunakan perintah ini denganantarmuka I2C (misalkan alamat I2C = 0xE0):

i2c_start(); // Start Conditioni2c_write(0xE0); // Tulis ke modul SPC Low Cost Motori2c_write(0x32); // Perintah “DC Stop”i2c_write(0x01); // nomor motori2c_stop(); // Stop Condition

delay_us(10); // delay 10 us

i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition

3 3 4 DC ALL STOP

Page 12: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 12/19

delay_us(10); // delay 10 us

i2c_start(); // Start Condition

i2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition

 3.3.5. STEPPER CONTINUOUS RUN

Fungsi Mengendalikan motor stepper agar berputar secara kontinuPerintah 0x34

Parameter <Motor number>1 motor stepper yang terhubung pada M1 dan M22 motor stepper yang terhubung pada M3 dan M4

<tipe step>1 Full-Step: motor akan berputar 1 step tiap 1 pulsa2   Half-Step: motor akan berputar 1/2 step tiap 1

pulsa

<direction>0 motor berputar searah jarum jam1 motor berputar berlawanan arah jarum jam

<pulse delay>1 - 65535 waktu tunda antar pulsa ke motor stepper.

S ki k il il i l d l k

Page 13: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 13/19

i2c_write(0x00); // derectioni2c_write(0x00); // pulse delay MSB

i2c_write(0x64); // pulse delay LSBi2c_stop(); // Stop Condition

delay_us(10); // delay 10 us

i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition

3.3.6. STEPPER PULSE COUNT RUN

Fungsi Mengendalikan motor stepper agar berputar sejumlah stepyang diberikan

Perintah 0x35

Parameter <Motor number>1 motor stepper yang terhubung pada M1 dan M22 motor stepper yang terhubung pada M3 dan M4

<tipe step>1 Full-Step: motor akan berputar 1 step tiap 1 pulsa2   Half-Step: motor akan berputar 1/2 step tiap 1

pulsa

<direction>

0

b h

Page 14: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 14/19

Contoh dengan antarmuka UART untuk menggerakkan motor stepper yangterhubung ke M1 dan M2 agar berputar searah jarum jam sebanyak 20

(bilangan heksadesimal 0x0014) pulsa dengan tipe step adalah full-step, sertadelay  antar pulsa sebesar kurang lebih 1000 ms (bilangan heksadesimal0x03E8):

User : 0x35 0x01 0x01 0x00 0x03 0xE8 0x00 0x14SPC : 0x06

Berikut ini contoh pseudo code untuk menggunakan perintah ini denganantarmuka I2C (misalkan alamat I2C = 0xE0):

i2c_start(); // Start Conditioni2c_write(0xE0); // Tulis ke modul SPC Low Cost Motori2c_write(0x35); // Perintah “Stepper Pulse Count Run”i2c_write(0x01); // nomor motori2c_write(0x01); // tipe stepi2c_write(0x00); // derectioni2c_write(0x03); // pulse delay MSBi2c_write(0xE8); // pulse delay LSB

i2c_write(0x00); // pulse count MSBi2c_write(0x14); // pulse count LSBi2c_stop(); // Stop Condition

delay_us(10); // delay 10 us

i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition

Page 15: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 15/19

Berikut ini contoh pseudo code untuk menggunakan perintah ini denganantarmuka I2C (misalkan alamat I2C = 0xE0):

i2c_start(); // Start Conditioni2c_write(0xE0); // Tulis ke modul SPC Low Cost Motori2c_write(0x36); // Perintah “Stepper Brake”i2c_write(0x01); // nomor motori2c_stop(); // Stop Condition

delay_us(10); // delay 10 us

i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition

3.3.8. STEPPER STOP

Fungsi Menghentikan motor stepper (lilitan motor tidak dialiri arus)

Perintah 0x37Parameter <Motor number>1 motor stepper yang terhubung pada M1 dan M22 motor stepper yang terhubung pada M3 dan M4

Respon 0x06 jika perintah dikenali0x15 jika perintah tidak dikenali

Delay antaraCommand

d R

10 µs

Page 16: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 16/19

3.3.9. SET I2C ADDRESS

Fungsi Mengubah alamat I2CPerintah 0x41

Parameter <0xAA> <0x55> <newAddress>Respon 0x06 jika perintah dikenali

0x15 jika perintah tidak dikenaliDelay antaraCommanddan Respon

10 µs

Keterangan ● Perintah ini hanya dapat dilakukan denganmenggunakan jalur komunikasi UART.● Modul SPC akan menggunakan alamat I2C yang baru

setelah melalui siklus power off .● Alamat I2C <newAddress> yang diperbolehkan dapat

dilihat pada tabel berikutnya.● Jika alamat baru yang diberikan tidak sesuai, maka

alamat I2C tidak akan diubah (tetap alamat

sebelumnya).● Alamat I2C default adalah 0xE0.● Data alamat I2C disimpan di EEPROM sehingga tidak

akan hilang saat power off .

Alamat I2C

Alamat Tulis I2C Alamat Baca I2C

0xE0 0xE1

Page 17: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 17/19

berkedip 1 kali. Jika alamat I2C adalah 0xE2 makaLED indikator akan berkedip 2 kali. Jika alamat I2C

adalah 0xE4 maka LED indikator akan berkedip 3 kalidan demikian seterusnya sampai alamat I2C 0xEE makaLED indikator akan berkedip 8 kali.

Contoh dengan antarmuka UART:

User : 0x42Modul SPC : <I2CAddress>

4. PROSEDUR PENGUJIAN

1. Hubungkan sumber catu daya 5 Volt ke VIN dan 9 - 12 Volt ke VM modulSPC LOW COST MOTOR CONTROLLER.

2. LED indikator akan berkedip yang menandakan alamat I2C.3. Kirimkan perintah “DC Forward” ke motor 1 (M1) dengan nilai PWM 255

melalui antarmuka UART TTL.4. LED indikator M1 akan berkedip dan jika diukur tegangan antara pin M11

dan M12, maka hasil akan mendekati nilai tegangan catu daya motoryang diberikan pada pin VM.

5. Ulangi langkah 3 dan 4 untuk motor 2 (M2), motor 3 (M3), dan motor 4(M4).

5. CONTOH APLIKASI DAN PROGRAMSebagai contoh aplikasi, dimisalkan modul SPC LOW COST MOTOR

Page 18: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 18/19

Sebagai contoh program untuk aplikasi di atas, pada DVD yang disertakanpada saat pembelian modul SPC LOW COST MOTOR CONTROLLERdisertakan program contoh_i2c.c dan contoh_uart.c yang ditulis denganmenggunakan CodeVisionAVR 1.25.2 versi evaluasi.

DT-AVR

LCMSRXD

TXD RX (PORTD.0)

TX (PORTD.1)

M1

M2

M11

M12

M21M22

VM (8V – 36V ) VIN (+5 V )

MGND

(Ground Catu Daya Motor)

PGND(Ground Catu Daya

Digital)

M3

M4

M31

M32M41M42

SPC

LOW COST

MOTORCONTROLLER

(alamat 0xE0)

Page 19: Manual SPC Low Cost Motor Controller

5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com

http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 19/19

LAMPIRAN A.Skematik SPC LOW COST MOTOR CONTROLLER

19