* 본자료는모터구동의한예제로만사용하십시오. 어플리케이션적용으로인한문제에대해서 는싱크웍스에서책임지지않습니다. 또한, 기술적인지원도할수없음을알려드립니다. * 본예제프로그램은 Texas Instruments 사에서 DRV8412 를대상으로제공하는 Bipolar Stepper Motor 용 Microstepping 예제를싱크웍스의 Delfino EVM 모터모듈과 Delfino 프로세서에적합 하도록수정한것입니다. *Revision 2011.12.20 (v1.0) Bipolar Stepper Motor 의 Microstepping [1] page
*Revision History 날짜 내용 11. 12. 20. - V1.0 / 초판 [2] page
목차 1 DELFINO EVM 모터모듈환경설정... 4 1.1 DELFINO EVM 모터모듈에 STEPPER MOTOR 연결하기... 5 1.2 STEPPING MOTOR 사양및정격 / 성능... 7 1.3 전원공급예... 8 2 예제실습... 9 2.1 예제디렉터리색인... 9 2.2 예제구성... 10 2.3 실습따라하기 (BUILD LEVEL 1)... 11 2.4 실습따라하기 (BUILD LEVEL 2)... 14 2.5 실습따라하기 (BUILD LEVEL 3)... 16 3 실습끝내기절차... 18 [3] page
1 Delfino EVM 모터모듈환경설정 예제프로그램을실행하기위해아래의개발환경들이필요합니다. 1 Delfino EVM (Delfino 프로세서대상범용평가보드 ) 2 Delfino EVM 모터모듈 (Delfino EVM용모터확장모듈 ) 3 Delfino 프로세서모듈 (TMS320F2833x, TMS320C2834x) 4 Hybrid Stepper Motor (1.8 /Step, 1.2A/Phase) 5 Code Composer Studio(v3.3 혹은그이상의버전 ) 가설치된 IBM 호환 PC 6 JTAG 에뮬레이터 (TDS510USB-C2K 혹은동종의 JTAG 에뮬레이터 ) 7 DC 전원공급기 (DC Power Supply) 2개 (Delfino EVM용 / Delfino EVM 모터모듈용 ) [ 그림 1-1] 예제프로그램실행을위한개발환경 [4] page
1.1 Delfino EVM 모터모듈에 Stepper Motor 연결하기 Delfino EVM 모터모듈과함께제공되는 Hybrid Stepper Motor 는 1.8 /Step, 1.2A/Phase 의 2 상제 품이며, 아래의그림 1-2 / 그림 1-3 과같이 CN9200 터미널블록에연결할수있습니다. [ 그림 1-2] - Delfino EVM 모터모듈과 Stepper Motor 의연결 1 주황색 갈색 노란색 적색 [ 그림 1-3] - Delfino EVM 모터모듈과 Stepper Motor 의연결 2 [5] page
[ 그림 1-4] Stepper Motor 연결용 CN9200 터미널블록정의 CN9200 터미널블록 Stepper Motor OUT A A상 ( 갈색 ) OUT B /A상 ( 주황색 ) OUT C B상 ( 적색 ) OUT D /B상 ( 노란색 ) N/C N/C DC-Link+ (+24V) DC-Link+ (+24V) N/C N/C N/C N/C [ 표 1-1] CN9200 터미널블록과 Stepper Motor 의연결방법 [6] page
1.2 Stepping Motor 사양및정격 / 성능 Delfino EVM 모터모듈과함께제공되는 2상 Hybrid Stepping Motor는 Unipolar 방식이며, 내부의각상 (Phase) 과 Lead-wire 색의관계는아래의그림 1-5와같습니다. ( 본예제에서는 COM A[ 흑색 ], COM B[ 흰색 ] 선을사용하지않고, A[ 갈색 ], /A[ 주황색 ], B[ 적색 ], /B[ 노란색 ] 선만사용하여, Bipolar 구동하게됩니다.) [ 그림 1-5] Stepping Motor 의내부결선도 Rotor 상전류최대정지토크권선저항종류모델명관성모멘트 (A/Phase) (kgf cm) (Ω) (g cm 2 ) 42각축형 A3K-M244 1.2 2.97 56 3.3 모터길이 (mm) 40 ( 축길이제외 ) 정격전류 1.2A/Phase 기본 Step 각 1.8 / 0.9 (Full step / Half step) 절연등급 CLASS B종 (130 C) 절연저항 100MΩ 이상 (500VDC), Motor coil-case 사이 절연내압 0.5kVAC 50/60Hz에서 1분간, Motor coil-case 사이 사용주위온도 0 C ~ +50 C ( 보관시 : -20 C ~ +70 C) 사용주위습도 20% ~ 90%RH( 단, 결로되지않는상태 ) 보호구조 IP30(IEC34-5 규격 ) 중량 약 0.29kg [ 표 1-2] Delfino EVM 모터모듈과제공되는 Stepping Motor 의사양및정격 [7] page
1.3 전원공급예 DC +9V DC +24V Delfino EVM 모터모듈 Delfino EVM 2-Phase Hybrid Stepper Motor (1.8 /Step, 1.2A/Phase) [ 그림 1-7] Delfino EVM 과 Delfino EVM 모터모듈의전원공급예 주의 : 전력변환이나모터구동과같은어플리케이션은고 - 전압혹은 고-전류에노출되어있기쉽습니다. 이는부주의로인한사고발생시장비들을손상시킬뿐만아니라여러분에게도위험을줄수있습니다. 따라서실습을진행함에있어명시된절차를필히지켜주셔야합니다. 또한 Delfino EVM에공급되는전원과 Delfino EVM 모터모듈에공급되는전원을별도로분리하여사용하시기를권고드립니다. [8] page
2 예제실습 Delfino EVM 모터모듈의 Stepper Motor Microstepping 예제는, Delfino EVM과 Delfino EVM 모터모듈을이용하여, 1.8 /Step, 1.2A/Phase의 2상 Hybrid Stepper Motor의토크 / 속도 / 위치등을제어 (Open-loop) 해볼수있도록구성되어있으며, Texas Instruments(TI) 사가 Digital Motor Control Library를이용하여, DRV8412 Driver IC와 Piccolo 프로세서를대상으로제공하는예제를 Delfino EVM 모터모듈과 Delfino 프로세서에적합하도록수정한것입니다. - TI의최신예제및라이브러리는 TI 웹페이지가아닌 ControlSUITE( 클릭 ) 통해서받으실수있습니다. 2.1 예제디렉터리색인 [ 그림 2-1] Stepper Motor Microstepping 예제디렉터리색인 그림 2-1의 1번과 2번경로는 TMS320F28335 초소형모듈사용자를위한예제프로젝트가담겨있으며, MOTOR_V330 경로에는 CCS V3.3용, MOTOR_V400 경로에는 CCS V4.X용예제가준비되어있습니다. 3번과 4번경로에는 TMS320C28346 보급형모듈및 TMS320C28346 ADC 어댑터사용자를위한예제프로젝트가담겨있으며, 앞의경우와마찬가지로 MOTOR_V330은 CCS V3.3용예제프로젝트이고, MOTOR_V400은 CCS V4.X용예제프로젝트입니다. ( C:\SyncWorks\TIDCS\... 이하의폴더에는예제실행에필요한 TI 제공칩-지원헤더및소스가위치하며, 그림 2-1에서는생략되어있습니다.) [9] page
2.2 예제구성 Delfino EVM 모터모듈용 Stepper Motor Microstepping 예제는총 3단계의 Build Level로구분되어있으며, 각단계는아래와같습니다. Build Level 설정에따라, 그에적합한코드가 Compile 되도록구성되어있으며, Build Level 설정은예제프로그램의헤더 (MicroStepping.h) 파일에정의되어있습니다. (Stepper Motor Microstepping 예제는 ADC를통해검출되는전류정보를기초로, 전류 ( 토크 ) 제어에한하여 Closed-loop가구성되어있으며, 속도나위치제어의경우 Open-loop로이루어지게됩니다.) LEVEL 1 모터를 Open-loop 로구동하면서, ADC 를통한전류검출이정상적으로이루어지는지확 인하는단계입니다. LEVEL 2 ADC를통해검출한전류정보에디지털 PI 제어모듈 (S/W 모듈 ) 을붙이고, 이를기초로모터를구동시켜서, 전류 ( 토크 ) 를제어 (Closed-loop) 하는단계입니다. ( 속도제어는 Open-loop로제어됩니다.) LEVEL 3 Build Level 2의전류제어 (Closed-loop) 를기초로, 회전자의위치를제어 (Open-loop) 하는단계입니다. [10] page
2.3 실습따라하기 (Build Level 1) 1 Delfino EVM 과 Delfino EVM 모터모듈에각각 DC+9V, DC+24V 의전원을공급하고, JTAG 에뮬레이터를통해, Delfino EVM 에장착된프로세서모듈과 PC 의 Code Composer Studio 를연결합니다. 2 Code Composer Studio 에서예제프로젝트를열고, MicroStepping.h 파일에정의된 Build Level 이 LEVEL1 인지확인합니다. ( 다르다면 LEVEL1 로수정합니다.) 3 예제프로젝트를 Build 하고, 프로세서모듈에 Output File 을 Load 합니다. 4 Reset CPU Restart Enable Real-time Mode Run 명령을실행합니다. 5 예제프로젝트가위치한경로에포함된이미지파일 (*.png) 을참조하여, Watch Window에관찰및조작할변수를등록하고, Graph Window를설정합니다. CCS V3.3용예제의경우 GraphProperties1.png, GraphProperties2.png 파일을참조하여직접 Graph Window를설정해야하며, CCS V4.X용예제는 Import 기능을통해미리설정된값들을불러들일수있도록 GraphProperties1.graphPorp, GraphProperties2.graphPorp 파일이포함되어있습니다. Watch Window에등록할변수들은 CCS V3.3용예제와 CCS V4.X용예제모두이미지파일로제공되는예시 (WatchWindow_BuildLevel1.png) 를참조하여직접변수들을등록해줘야합니다.) 6 Watch Window 와 Graph Window 모두 Continuous Refresh 옵션을활성화합니다. 7 Watch Window 에등록된 EnableFlag 변수를 0 에서 1 로변경합니다. (EnableFlag 변수가 1 이되면, 모터가회전을시작합니다.) [11] page
8 Build Level 1 은일정한전압지령을통해, 모터를 Open-loop 로구동하면서, ADC 를통해 Stepper Motor 의상 - 전류가올바르게검출되는지확인하는단계입니다. 아래의설명을 참조하여 Watch Window 에등록된변수들을관찰하고, 조작해봅니다. 조작대상변수 VRef, MicroStep, SpeedRef VRef 변수를 -1.0 ~ +1.0 사이에서제어하면, 비율에따라 Microstepping을위한 Sine, Cosine 파형의이득이달라지고, 이는곧모터드라이버에전달되는 PWM의 Duty-Ratio 가달라지게됨을의미합니다. MicroStep 변수는기본스텝을몇개의작은스텝으로쪼갤것인지를결정짓는변수입니다. 예제에서는 MicroStepping.h 파일에 Full Stepping부터최대기본스텝을 128개의 Micro-step으로나누어제어할수있도록정의하고있습니다. 예를들어, MicroStep 변수가 128이면, 기본스텝구간을 32개의작은스텝으로나누어제어하고있음을의미합니다. SpeedRef 변수는 MicroStepping.h 파일에정의된 BASE_FREQ에대한속도비율지령입니다. 이변수가 Microstepping에활용되는 Sine, Cosine 파형의주파수를결정짓기에, Stepper Motor의회전속도를변경시키게됩니다. SpeedRef 변수의부호는모터의회전방향을의미합니다. (+ 값일경우정회전, -값일경우역회전 ) 주요관찰대상변수 IFdbk1, IFdbk2 IFdbk 변수는 ADC 를통해검출한상 - 전류의비율값으로 -1.0 ~ +1.0 까지의범위에서변 화하게됩니다. [12] page
9 Graph Window 를통해서도주요변수들의변화이력을관찰할수있습니다. Build Level 1 에서는아래의그림과같은화면을확인하실수있으며, 1 번부터차례로 Aout, IFdbk1, Bout, IFdbk2 변수의이력을의미합니다. 1 3 2 4 10 3 장의실습끝내기절차를참조하여, 안전하게예제실행을종료합니다. [13] page
2.4 실습따라하기 (Build Level 2) 1 Delfino EVM 과 Delfino EVM 모터모듈에각각 DC+9V, DC+24V 의전원을공급하고, JTAG 에뮬레이터를통해, Delfino EVM 에장착된프로세서모듈과 PC 의 Code Composer Studio 를연결합니다. 2 Code Composer Studio 에서예제프로젝트를열고, MicroStepping.h 파일에정의된 Build Level 이 LEVEL2 인지확인합니다. ( 다르다면 LEVEL2 로수정합니다.) 3 예제프로젝트를 Build 하고, 프로세서모듈에 Output File 을 Load 합니다. 4 Reset CPU Restart Enable Real-time Mode Run 명령을실행합니다. 5 예제프로젝트가위치한경로에포함된이미지파일 (*.png) 을참조하여, Watch Window에관찰및조작할변수를등록하고, Graph Window를설정합니다. CCS V3.3용예제의경우 GraphProperties1.png, GraphProperties2.png 파일을참조하여직접 Graph Window를설정해야하며, CCS V4.X용예제는 Import 기능을통해미리설정된값들을불러들일수있도록 GraphProperties1.graphPorp, GraphProperties2.graphPorp 파일이포함되어있습니다. Watch Window에등록할변수들은 CCS V3.3용예제와 CCS V4.X용예제모두이미지파일로제공되는예시 (WatchWindow_BuildLevel2.png) 를참조하여직접변수들을등록해줘야합니다.) 6 Watch Window 와 Graph Window 모두 Continuous Refresh 옵션을활성화합니다. 7 Watch Window 에등록된 EnableFlag 변수를 0 에서 1 로변경합니다. (EnableFlag 변수가 1 이되면, 모터가회전을시작합니다.) 8 Build Level 2는 ADC가검출한상-전류정보에디지털 PI 제어모듈 (S/W 모듈 ) 을연결하여, Sine, Cosine의형태로전달되는각상의지령에따라, 전류 ( 토크 ) 를제어 (Closed-loop) 하는단계입니다. 이어지는설명을참조하여 Watch Window에등록된변수들을관찰하고, 조작해봅니다. [14] page
조작대상변수 IRef, MicroStep, SpeedRef IRef 변수를 -1.0 ~ +1.0 사이에서제어하면, 비율에따라 Microstepping을위한 Sine, Cosine 파형의이득이달라지고, 이는곧모터드라이버에전달되는 PWM의 Duty-Ratio 가달라지게됨을의미합니다. MicroStep 변수는기본스텝을몇개의작은스텝으로쪼갤것인지를결정짓는변수입니다. 예제에서는 MicroStepping.h 파일에 Full Stepping부터최대기본스텝을 128개의 Micro-step으로나누어제어할수있도록정의하고있습니다. 예를들어, MicroStep 변수가 128이면, 기본스텝구간을 32개의작은스텝으로나누어제어하고있음을의미합니다. SpeedRef 변수는 MicroStepping.h 파일에정의된 BASE_FREQ에대한속도비율지령입니다. 이변수가 Microstepping에활용되는 Sine, Cosine 파형의주파수를결정짓기에, Stepper Motor의회전속도를변경시키게됩니다. SpeedRef 변수의부호는모터의회전방향을의미합니다. (+ 값일경우정회전, -값일경우역회전 ) 주요관찰대상변수 IFdbk1, IFdbk2 IFdbk 변수는 ADC 를통해검출한상 - 전류의비율값으로 -1.0 ~ +1.0 까지의범위에서변 화하게됩니다. 9 Graph Window 를통해서도주요변수들의변화이력을관찰할수있습니다. Build Level 2 에서는아래의그림과같은화면을확인하실수있으며, 1 번부터차례로 pid1_i.ref, pid1_i.fdb, pid2_i.ref, pid2_i.fdb 변수의이력을의미합니다. 1 3 2 4 10 3 장의실습끝내기절차를참조하여, 안전하게예제실행을종료합니다. [15] page
2.5 실습따라하기 (Build Level 3) 1 Delfino EVM 과 Delfino EVM 모터모듈에각각 DC+9V, DC+24V 의전원을공급하고, JTAG 에뮬레이터를통해, Delfino EVM 에장착된프로세서모듈과 PC 의 Code Composer Studio 를연결합니다. 2 Code Composer Studio 에서예제프로젝트를열고, MicroStepping.h 파일에정의된 Build Level 이 LEVEL3 인지확인합니다. ( 다르다면 LEVEL3 으로수정합니다.) 3 예제프로젝트를 Build 하고, 프로세서모듈에 Output File 을 Load 합니다. 4 Reset CPU Restart Enable Real-time Mode Run 명령을실행합니다. 5 예제프로젝트가위치한경로에포함된이미지파일 (*.png) 을참조하여, Watch Window에관찰및조작할변수를등록하고, Graph Window를설정합니다. CCS V3.3용예제의경우 GraphProperties1.png, GraphProperties2.png 파일을참조하여직접 Graph Window를설정해야하며, CCS V4.X용예제는 Import 기능을통해미리설정된값들을불러들일수있도록 GraphProperties1.graphPorp, GraphProperties2.graphPorp 파일이포함되어있습니다. Watch Window에등록할변수들은 CCS V3.3용예제와 CCS V4.X용예제모두이미지파일로제공되는예시 (WatchWindow_BuildLevel3.png) 를참조하여직접변수들을등록해줘야합니다.) 6 Watch Window 와 Graph Window 모두 Continuous Refresh 옵션을활성화합니다. 7 Watch Window 에등록된 EnableFlag 변수를 0 에서 1 로변경합니다. (EnableFlag 변수가 1 이되면, 모터가회전을시작합니다.) 8 Build Level 3 은 Build Level 2 의전류제어 (Closed-loop) 를기초로, 회전자의위치를제어 (Open-loop) 하는단계입니다. 이어지는설명을참조하여 Watch Window 에등록된변수 들을관찰하고, 조작해봅니다. [16] page
조작대상변수 PositionRef, MicroStep PositionRef 변수는 0 ~ 360 를 0.0 ~ +1.0의비율로환산한위치지령입니다. 예를들어 PositionRef 변수를 5.0으로설정하면, 초기위치로부터 1,800 에해당되는지령으로해석됩니다. PositionRef 변수와함께 MicroStep 변수를조작해보면, Full-Step이나 Half-Step에비해, MicroStepping 제어시, 보다부드럽게지령위치를추종함을확인하실수있습니다. 주요관찰대상변수 Position Position 변수는초기위치로부터현재회전자의위치를비율로표현합니다. 예를들어, Position 변수가 3.0을나타내고있다면, 현재회전자가초기위치로부터정방향 (+) 으로 1,080 이동했음을의미합니다. 9 Graph Window를통해서도주요변수들의변화이력을관찰할수있습니다. Build Level 3 에서는아래의그림과같은화면을확인하실수있으며, 1번부터차례로 pid1_i.fdb, pid2_i.fdb, SpeedRef, rg1.out 변수의이력을의미합니다. ( 그래프갱신을위해데이터를수집하는 S/W 모듈이 16-Bit Q15형을사용하기에, 변수값이 +-1을벗어나게되면, 그이상의값을표현하지못하게됩니다.) 1 3 2 4 10 3 장의실습끝내기절차를참조하여, 안전하게예제실행을종료합니다. [17] page
3 실습끝내기절차 1 Watch Window 에등록된 EnableFlag 변수를 0 으로변경합니다. ( 변경후모터가정지 하는것을확인합니다.) 2 Code Composer Studio 에서 Halt 명령으로프로그램실행을멈추고, Real-time Mode 도 해제합니다. 3 Code Composer Studio 를종료하고, Delfino EVM 과 Delfino EVM 모터모듈에공급된전원 을차단합니다. 4 JTAG 에뮬레이터와프로세서모듈을분리합니다. [18] page