<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://support.hitecrcd.net:7700/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adam</id>
	<title>HITEC_HELP - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://support.hitecrcd.net:7700/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adam"/>
	<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php/Special:Contributions/Adam"/>
	<updated>2026-05-23T04:26:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/XHY/Info&amp;diff=533</id>
		<title>CanServo/XHY/Info</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/XHY/Info&amp;diff=533"/>
		<updated>2021-10-05T12:40:25Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServp/XHY/Info to CanServo/XHY/Info without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Image Checksum&lt;br /&gt;
** SHA256&lt;br /&gt;
** 32 byte&lt;br /&gt;
* id - image id&lt;br /&gt;
** 16 byte&lt;br /&gt;
** ex) &amp;quot;MD-B2-CAN&amp;quot;&lt;br /&gt;
* version&lt;br /&gt;
** 8 byte&lt;br /&gt;
** format: YY-YY-MM-DD-RR-V1-V2-V3&lt;br /&gt;
** ex) 20-19-06-01-01-01-02-03&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/POSITION_NEW&amp;diff=159</id>
		<title>CanServo/POSITION NEW</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/POSITION_NEW&amp;diff=159"/>
		<updated>2021-09-18T00:55:06Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보의 목표 위치를 지정합니다.&lt;br /&gt;
&lt;br /&gt;
해상도는 16384 = 360 deg 입니다.&lt;br /&gt;
&lt;br /&gt;
Turn Mode 에서는 [[CanServo/TURN_NEW]] 와 조합됩니다.&lt;br /&gt;
&lt;br /&gt;
Address: 0x&lt;br /&gt;
&lt;br /&gt;
권장 범위는 [[CanServo/MODE/RUN]] 에 따라 다릅니다.&lt;br /&gt;
* Servo Mode&lt;br /&gt;
** 0 ~ 16383&lt;br /&gt;
* Turn Mode&lt;br /&gt;
** -16383 ~ +16383&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/TURN_NEW&amp;diff=158</id>
		<title>CanServo/TURN NEW</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/TURN_NEW&amp;diff=158"/>
		<updated>2021-09-18T00:54:45Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[CanServo/MODE/RUN]] 설정이 Turn Mode 일 때, 회전수를 지정합니다.&lt;br /&gt;
&lt;br /&gt;
[[CanServo/POSITION_NEW]] 와 조합하여 목표 위치를 지정합니다.&lt;br /&gt;
&lt;br /&gt;
목표 위치 = TURN_NEW x 16384 + POSITION_NEW&lt;br /&gt;
&lt;br /&gt;
Address: 0x&lt;br /&gt;
&lt;br /&gt;
Range: -32760 ~ 0 ~ +32760&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Address&amp;diff=157</id>
		<title>CanServo/Stream/Address</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Address&amp;diff=157"/>
		<updated>2021-09-18T00:54:11Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stream 기능을 켜면, [[CanServo/MODE/RUN]] 설정에 따라 [[CanServo/POSITION]], [[CanServo/TURN_COUNT]] 등의 정보를 전송합니다.&lt;br /&gt;
&lt;br /&gt;
기본적으로 전송하는 데이터 대신, 원하는 특정 주소를 지정하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
4개의 Register 를 통하여, Register 당 2개씩 총 8개의 주소를 지정할수 있습니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Address&amp;diff=156</id>
		<title>CanServo/Stream/Address</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Address&amp;diff=156"/>
		<updated>2021-09-18T00:54:02Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stream 기능을 켜면, [[CanServo/MODE/RUNE]] 설정에 따라 [[CanServo/POSITION]], [[CanServo/TURN_COUNT]] 등의 정보를 전송합니다.&lt;br /&gt;
&lt;br /&gt;
기본적으로 전송하는 데이터 대신, 원하는 특정 주소를 지정하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
4개의 Register 를 통하여, Register 당 2개씩 총 8개의 주소를 지정할수 있습니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Manual/Summary&amp;diff=155</id>
		<title>CanServo/Manual/Summary</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Manual/Summary&amp;diff=155"/>
		<updated>2021-09-18T00:53:33Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==개요==&lt;br /&gt;
CAN 서보는 CAN 통신을 통해 제어하는 서보 입니다. CAN 2.0A, 2.0B 을 지원하며, UAVCAN protocol 을 지원합니다.&lt;br /&gt;
*문서 개요&lt;br /&gt;
**이 문서는 요약본입니다.&lt;br /&gt;
**각 Register 의 정확한 주소는 Manual 을 참조해 주십시오.&lt;br /&gt;
==FW Type==&lt;br /&gt;
지원하는 Protocol 의 종류에 따라 나뉩니다.&lt;br /&gt;
*C Type = CAN 2.0A, 2.0B 지원&lt;br /&gt;
*U Type = UAVCAN 지원&lt;br /&gt;
*A Type = CAN 2.0A, 2.0B, UAVCAN 지원&lt;br /&gt;
==통신 설정==&lt;br /&gt;
*통신 설정은 서보 Reset 시점에만 적용됩니다.&lt;br /&gt;
*CAN 통신을 처음 사용하는 경우에는 [[CAN/개요]] 를 참조해 주십시오.&lt;br /&gt;
===통신 속도===&lt;br /&gt;
사용할 통신 속도를 선택합니다. 단위는 kbps 입니다.&lt;br /&gt;
*1000&lt;br /&gt;
*800&lt;br /&gt;
*750&lt;br /&gt;
*500&lt;br /&gt;
*350&lt;br /&gt;
*250&lt;br /&gt;
*125&lt;br /&gt;
===통신 Protocol===&lt;br /&gt;
통신에 사용할 Protocol 을 선택합니다.&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A, 2.0B, UAVCAN 중에 선택합니다. Protocol 에 따라서는 FW Type 을 바꾸어야 할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A,B 가 나뉘어 있는 것은, CAN ID 의 값도 일치해야 하지만, Type 도 확인하기 때문입니다. 즉, CAN 2.0A 인 CAN ID = 100 과 CAN 2.0B 인 CAN ID = 100 은 다르게 인식합니다.&lt;br /&gt;
* 자세한 내용은 [[CanServo/Packet Accept Rule]] 을 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A, 2.0B 에서는 다음 Protocol 을 따릅니다.&lt;br /&gt;
*[[CanServo/Protocol/Control]]&lt;br /&gt;
&lt;br /&gt;
===서보의 ID 지정===&lt;br /&gt;
특정 서보의 Register 를 읽거나 쓰려면, 서보를 구분할수 있어야 합니다.&lt;br /&gt;
&lt;br /&gt;
서보 구분용 ID 는 2가지 입니다.&lt;br /&gt;
*CAN 2.0A,B 에서는 CAN ID, Servo ID&lt;br /&gt;
*UAVCAN 에서는 Node ID, Actuator ID 입니다.&lt;br /&gt;
ID 설정은&lt;br /&gt;
*CAN ID, Node ID 는 Register [[CanServo/ID2]] 를 통해 설정합니다.&lt;br /&gt;
*Servo ID, Actuator ID 는 Register [[CanServo/ID1]] 을 통해 설정합니다.&lt;br /&gt;
&lt;br /&gt;
==동작 모드 ( [[CanServo/MODE/RUN]] )==&lt;br /&gt;
*CAN 서보는 1회전이내로 동작하는 Servo Mode 와 +/-32760 x 360 deg 동작이 가능한 Turn Mode 를 지원합니다.&lt;br /&gt;
**주의: Turn Mode 선택시, 서보 Reset 시점의 위치가 0 deg, 0 Turn 위치가 됩니다.&lt;br /&gt;
*2가지 중에 선택합니다.&lt;br /&gt;
*동작 모드는 서보 Reset 시점에 적용됩니다.&lt;br /&gt;
&lt;br /&gt;
==서보의 제어 방식==&lt;br /&gt;
*CAN 서보는 2 byte 크기의 Register 128개를 가지고 있습니다.&lt;br /&gt;
*이 값들에 따라 동작합니다.&lt;br /&gt;
*예를 들어&lt;br /&gt;
**Servo Mode 에서는, Register POSITION_NEW 에 8192 라는 값을 넣으면, 중앙 위치로 이동합니다.&lt;br /&gt;
**Register POSITION 값을 읽어보면, 서보의 현재 위치값을 알수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/Protocol/Control]]&lt;br /&gt;
*[[CanServo/Register/Write]]&lt;br /&gt;
*[[CanServo/Register/Read]]&lt;br /&gt;
&lt;br /&gt;
==설정값 변경시 적용 시점==&lt;br /&gt;
*대부분의 사용자용 설정값은 변경 즉시 적용됩니다.&lt;br /&gt;
*다음 예외 항목들은, Servo Reset 시점에 적용되므로, SAVE, RESET 절차를 수행해야 합니다.&lt;br /&gt;
**통신 설정 = 통신 속도, 통신 Protocol, ID2, ID1&lt;br /&gt;
**동작 모드 ( [[CanServo/MODE/RUN]] )&lt;br /&gt;
**Stream CAN ID 설정값 ( [[CanServo/Stream/CAN ID]] )&lt;br /&gt;
&lt;br /&gt;
==설정값의 저장==&lt;br /&gt;
*제어값(POSITION_NEW, TURN_NEW 등), 각종 상태값, 예외인 일부 항목등을 제외한 대부분의 Register 는, SAVE 명령시 저장되어 Servo Reset 후에도 유지됩니다.&lt;br /&gt;
* !!! 주의 !!!&lt;br /&gt;
**SAVE 는 모터를 정지 시킨 상태에서 하는 것을 추천합니다.&lt;br /&gt;
**SAVE 를 너무 자주 해서는 안됩니다.&lt;br /&gt;
**특히 주기적으로 해서는 안됩니다.&lt;br /&gt;
**가능한 여러가지 값을 변경 한 후 SAVE, Servo Reset 하는 것을 추천합니다.&lt;br /&gt;
**단, 통신 설정값, ID, RUN_MODE 등은, 다른 값들과 함께 변경하지 말고 별도로 변경, Reset 하는 것을 추천합니다.&lt;br /&gt;
&lt;br /&gt;
==위치 좌표계==&lt;br /&gt;
*POSITION, POSITION_NEW: Resolution: 16384 = 360 deg&lt;br /&gt;
**Position Sensor's Actual Resolution: 4096 = 360 deg&lt;br /&gt;
===Servo Mode===&lt;br /&gt;
*1회전 이내에서 동작하는 모드 입니다.&lt;br /&gt;
&lt;br /&gt;
*Register POSITION_NEW 에 원하는 위치를 넣습니다.&lt;br /&gt;
**위치값은 0 ~ 16383&lt;br /&gt;
*POSITION_MIN, POSITION_MAX 로 동작 범위를 제한 할 수 있습니다.&lt;br /&gt;
===Turn Mode===&lt;br /&gt;
*다회전 모드 입니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/TURN_NEW]] 에 회전수를 넣고, [[CanServo/POSITION_NEW]] 에 360도 이내 각도를 넣으면 동작합니다.&lt;br /&gt;
*두 값은 int16_t ( 16 bits signed integer ) 방식을 따르므로, 음수 지정이 가능합니다.&lt;br /&gt;
&lt;br /&gt;
* !!! 주의 !!!&lt;br /&gt;
**서보가 Reset 될 때의 위치값이 0 으로 초기화 됩니다.&lt;br /&gt;
**서보 Reset 직후, TURN_NEW = 0, POSITION_NEW = 0 을 전송하면 움직이지 않고 그대로 있습니다.&lt;br /&gt;
&lt;br /&gt;
*목표 위치를 지정하는 방식은, POSITION_NEW 의 음수 사용 여부에 따라 2가지 형태로 사용 가능합니다.&lt;br /&gt;
**목표의 예로, -370 deg, -10 deg, 10 deg&lt;br /&gt;
***-370 deg = -370 x 16384 / 360 = -16839.111 = -16839&lt;br /&gt;
***-10 deg = -10 x 16384 / 360 = -455.111 = -455&lt;br /&gt;
***10 deg = 10 x 16384 / 360 = 455.111 = 455&lt;br /&gt;
**-370 deg&lt;br /&gt;
***TURN_NEW = -1, POSITION_NEW = -455 -&amp;gt; 음수 사용할때&lt;br /&gt;
***TURN_NEW = -2, POSITION_NEW = 15929 -&amp;gt; 음수 사용하지 않을때&lt;br /&gt;
**-10 deg&lt;br /&gt;
***TURN_NEW = 0, POSITION_NEW = -455 -&amp;gt; 음수 사용할때&lt;br /&gt;
***TURN_NEW = -1, POSITION_NEW = 15929 -&amp;gt; 음수 사용하지 않을때&lt;br /&gt;
**10 deg&lt;br /&gt;
***TURN_NEW = 0, POSITION_NEW = 455&lt;br /&gt;
&lt;br /&gt;
===UAVCAN UNITLESS 좌표계===&lt;br /&gt;
*UAVCAN Actuator.ArrayCommand 메시지에서 목표 위치를 지정할때 UNITLESS 모드를 사용하면 -1.0000 부터 +1.0000 까지 정규화된 형태로 지정할수 있습니다.&lt;br /&gt;
*이렇게 지정한 위치값은, -1 ~ 0 ~ +1 ---&amp;gt; POSITION_MIN, POSITION_MID, POSITION_MAX 까지의 실제 위치값으로 환산됩니다. &lt;br /&gt;
*예를 들면, -0.5000 는 (POSITION_MIN+POSITION_MID)/2 가 됩니다.&lt;br /&gt;
&lt;br /&gt;
===현재 위치===&lt;br /&gt;
*Register TURN_COUNT, POSITOIN 를 통해 서보의 현재 위치를 알 수 있습니다.&lt;br /&gt;
**위치값 = TURN_COUNT x 16384 + POSITION&lt;br /&gt;
***TURN_COUNT: Range: -32768 ~ +32767&lt;br /&gt;
***POSITION: Range: 0 ~ 16383&lt;br /&gt;
**도단위 = ( TURN_COUNT x 16384 + POSITION ) x 360 / 16384&lt;br /&gt;
*위의 위치값 데이터가 32 비트 값으로 들어가 있는 Register 2개를 사용 할수 도 있습니다.&lt;br /&gt;
**POSITION_32_LOW, POSITION_32_HIGH&lt;br /&gt;
**type: int32_t ( 32 bits signed integer )&lt;br /&gt;
&lt;br /&gt;
*주의&lt;br /&gt;
**Register POSITION: 0 ~ 16383&lt;br /&gt;
**위치 0 에서 -1 된다면, POSITION 은 -1 이 아닌 16383 이 되고 TURN_COUNT 가 -1 됩니다.&lt;br /&gt;
&lt;br /&gt;
==통신 예제==&lt;br /&gt;
예를 들어 다음과 같이 4개의 서보가 있다면&lt;br /&gt;
*S1: PROTOCOL=2.0A, ID2 = 10, ID1 = 101&lt;br /&gt;
*S2: PROTOCOL=2.0A, ID2 = 10, ID1 = 102&lt;br /&gt;
*S3: PROTOCOL=2.0B, ID2 = 11, ID1 = 103&lt;br /&gt;
*S4: PROTOCOL=2.0B, ID2 = 11, ID1 = 104&lt;br /&gt;
S2 서보의 Register 0x30 에 0x11 값을 쓴다고 하면&lt;br /&gt;
*CAN ID = 0, TYPE=2.0A, DATA = 'w', 102, 0x30, 0x11, 0x00 -&amp;gt; S2 가 수신 및 처리&lt;br /&gt;
*CAN ID = 0, TYPE=2.0B, DATA = 'w', 102, 0x30, 0x11, 0x00 -&amp;gt; S2 가 무시, TYPE 틀림&lt;br /&gt;
*여기서 DATA 의 첫 바이트 'w' 는 1개의 Register 를 쓰라는 명령을 뜻합니다.&lt;br /&gt;
**자세한 내용은 [[CanServo/Protocol/Control]] 를 참조해 주십시오.&lt;br /&gt;
*DATA 두번째 102 는 Target Servo ID 를 뜻하며, 102 이므로 S2 를 가리킵니다.&lt;br /&gt;
&lt;br /&gt;
==기본 사용법==&lt;br /&gt;
===목표 위치 바꾸기===&lt;br /&gt;
*Register POSITION_NEW 를 통해 목표 위치를 지정할수 있습니다.&lt;br /&gt;
**Turn Mode 에서는 Register TURN_NEW 추가 사용&lt;br /&gt;
**Servo Mode 에서는 Register TURN_NEW 가 무시됩니다.&lt;br /&gt;
&lt;br /&gt;
*POSITION_NEW, TURN_NEW 는 저장되지 않습니다.&lt;br /&gt;
&lt;br /&gt;
*Turn Mode 에서 TURN_NEW, POSITION_NEW 변경하기&lt;br /&gt;
**목표 각도 deg 를 POSITION 단위로 바꿉니다.&lt;br /&gt;
***pos = (정수 환산) ( deg x 16384 / 360 )&lt;br /&gt;
**turn 과 나머지를 구합니다.&lt;br /&gt;
***TURN_NEW = pos / 16384&lt;br /&gt;
***POSITION_NEW = pos % 16384 ( C style )&lt;br /&gt;
**두 값을 전송 (TYPE 1)&lt;br /&gt;
**만일, POSITION_NEW 를 양수로 바꾸는 경우에는 TURN_COUNT 를 -1 합니다. (TYPE 2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int32_t pos = (int32_t)(deg * 16384 / 360);&lt;br /&gt;
int32_t turn = pos / 16384;&lt;br /&gt;
int32_t posi = pos % 16834;&lt;br /&gt;
// TYPE 1: send 'W' command: turn -&amp;gt; TURN_NEW, posi -&amp;gt; POSITION_NEW&lt;br /&gt;
while( posi &amp;lt; 0 )&lt;br /&gt;
{&lt;br /&gt;
    posi += 16384;&lt;br /&gt;
    turn -= 1;&lt;br /&gt;
}&lt;br /&gt;
// TYPE 2: send 'W' command: turn -&amp;gt; TURN_NEW, posi -&amp;gt; POSITION_NEW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===목표 위치 제한 하기===&lt;br /&gt;
*Servo Mode 에서는 Register POSITION_MIN, POSITION_MAX 에 동작 범위를 지정할수 있습니다.&lt;br /&gt;
*Resolution 은 16384 = 360 deg 입니다.&lt;br /&gt;
*권장 최대 가동 범위: Center(8192) +/- 150도&lt;br /&gt;
&lt;br /&gt;
*예를 들어, +/- 60도 를 지정한다면&lt;br /&gt;
**60 deg = 60 x 16384 / 360 = 2730&lt;br /&gt;
**POSITION_MIN = -60 deg = 8192 - 2730 = 5462&lt;br /&gt;
**POSITION_MAX = +60 deg = 8192 + 2730 = 10922&lt;br /&gt;
===현재 위치 읽기===&lt;br /&gt;
*Register TURN_COUNT, POSITION 또는 POSITION_32_LOW, POSITION_32_HIGH 을 읽으면 현재 위치를 알수 있습니다.&lt;br /&gt;
*Servo Mode 에서는, POSITION 또는 POSITION_32_LOW 를 읽습니다.&lt;br /&gt;
*Turn Mode 에서는, POSITION, TURN_COUNT 를 읽습니다. 혹은 POSITION_32_LOW, POSITION_32_HIGH 를 읽습니다.&lt;br /&gt;
&lt;br /&gt;
*POSITION 과 POSITION_32_LOW 의 차이&lt;br /&gt;
**POSITION 은 0 ~ 16383 까지만 들어가고, TURN 이 바뀌는 것은 TURN_COUNT 를 읽어봐야 알수 있습니다.&lt;br /&gt;
**POSITION_32_LOW 는 2비트 추가로 있으므로, 앞뒤로 총 4 turn 까지 상태를 알수 있습니다.&lt;br /&gt;
===속도 바꾸기===&lt;br /&gt;
*동작 최대 속도를 지정할수 있습니다.&lt;br /&gt;
*0 으로 변경하면 목표 위치를 바꾸더라도 움직이지 않습니다.&lt;br /&gt;
===토크 바꾸기===&lt;br /&gt;
*최대 출력을 조절합니다.&lt;br /&gt;
*최대 속도도 비례적으로 조정됩니다.&lt;br /&gt;
*0 으로 변경하면 힘이 완전히 풀리면서 외력에 의해 움직일수 있습니다.&lt;br /&gt;
===비상 정지===&lt;br /&gt;
*일시적으로 모터 출력을 끕니다.&lt;br /&gt;
*이 상태는 저장되지 않으며, 서보 Reset 후에는 풀립니다.&lt;br /&gt;
*비상 정지 모드에 따라 정지까지의 과정과 상태 유지 방식이 다릅니다.&lt;br /&gt;
**0 = 비상 정지 해제&lt;br /&gt;
**1 = 즉시 모터 출력을 끕니다. 외력에 의해 움직일수 있습니다.&lt;br /&gt;
**2 = Time Speed ES 값에 맞추어 감속하고, 정지 위치를 고수합니다.&lt;br /&gt;
**3 = 즉시 멈추고, 정지 위치를 고수합니다.&lt;br /&gt;
===전압, MCU 온도에 따른 비상 정지===&lt;br /&gt;
*MCU 온도와 전압의 상태가 지정한 작동 범위를 벗어나면 모터 출력이 꺼집니다.&lt;br /&gt;
*실시간은 아니고 어느정도 평균처리가 됩니다.&lt;br /&gt;
===가감속 시간 지정 하기===&lt;br /&gt;
*이 기능은 사다리꼴 속도 프로파일을 구현합니다.&lt;br /&gt;
*지정한 최대 속도까지 가속하는 시간, 최대 속도에서 속도 0까지 감속하는 시간을 지정할수 있습니다.&lt;br /&gt;
===현재 속도 읽기===&lt;br /&gt;
*Register VELOCITY 를 읽으면 서보의 현재 속도를 알수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/Speed]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===현재 가속도 읽기===&lt;br /&gt;
*Register ACC 를 읽으면 서보의 현재 가속도를 알수 있습니다.&lt;br /&gt;
===서보 내부 온도 센서 종류===&lt;br /&gt;
*CAN 서보는 제품에 따라 다양한 온도 센서를 가지고 있습니다.&lt;br /&gt;
**MCU 온도&lt;br /&gt;
***제어 보드의 MCU 에 내장된 온도 센서의 데이터 입니다.&lt;br /&gt;
**모터 온도&lt;br /&gt;
***모터에 부착된 온도 센서의 데이터 입니다.&lt;br /&gt;
**습도 센서의 온도&lt;br /&gt;
***습도 센서에 포함된 온도 센서의 데이터 입니다.&lt;br /&gt;
&lt;br /&gt;
*온도에 의한 모터 출력 끄기&lt;br /&gt;
**MCU 온도의 최소, 최대 값을 각각 지정하여, 모터 출력을 끌 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*모터 온도, 습도 센서의 온도 데이터는 별도의 감시 코드가 없으므로, Host 에서 주기적으로 읽어서 판단하여 서보 출력을 끄거나 제어해야 합니다.&lt;br /&gt;
==추가 기능==&lt;br /&gt;
===User Data===&lt;br /&gt;
*Register 2개에 사용자가 원하는 정보를 넣어 둘수 있습니다.&lt;br /&gt;
*값을 변경하고 SAVE 절차를 수행하면, Reset 되어도 유지됩니다.&lt;br /&gt;
===Stream===&lt;br /&gt;
*Register POSITION, TURN_COUNT 등의 정보를 지정한 간격으로 전송합니다.&lt;br /&gt;
*UAVCAN 에서는 Actuator Status 메시지를 발신합니다.&lt;br /&gt;
*[[CanServo/Stream]] 을 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Stream Address===&lt;br /&gt;
*총 4개의 Register 를 통해, 원하는 주소 2개씩 최대 8개까지 설정할수 있습니다.&lt;br /&gt;
*PROTOCOL = CAN 2.0A, 2.0B 에서만 적용됩니다.&lt;br /&gt;
*[[CanServo/Stream/Address]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Stream CAN ID===&lt;br /&gt;
*Stream CAN Packet 발신 때 사용할 CAN ID 를 별도 지정하는 기능입니다.&lt;br /&gt;
*[[CanServo/ID2]] 값 대신 사용됩니다.&lt;br /&gt;
*PROTOCOL = CAN 2.0A, 2.0B 에서만 적용됩니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/Stream/CAN ID]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Start Position===&lt;br /&gt;
*CAN 서보는 기동시 Reset 시점의 위치를 유지합니다.&lt;br /&gt;
*Reset 시점에 특정 위치로 이동시키고 싶을 때 사용하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/Start Position]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Fail Safe===&lt;br /&gt;
*POSITION_NEW 가 일정 시간 동안 오지 않으면 특정 위치로 이동시키고 싶을 때 사용하는 기능입니다.&lt;br /&gt;
*시간과 위치를 각각 설정합니다.&lt;br /&gt;
*[[CanServo/Fail Safe]] 를 참조해 주십시오.&lt;br /&gt;
===Pause Stream===&lt;br /&gt;
*Stream 발신을 일시적으로 정지시키는 기능입니다. 이 상태는 저장되지 않으며, 서보 Reset 이 되면 정지는 풀립니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/Stream/Pause]] 를 참조해 주십시오.&lt;br /&gt;
===Switch to Bootloader===&lt;br /&gt;
*FW 실행 중에 Bootloader 로 전환하는 기능입니다.&lt;br /&gt;
*Bootloader 에서 사용할 통신 속도, CAN ID 등을 지정할수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*[[CanServo/Switch to Bootloader]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
==기능별 구분==&lt;br /&gt;
===전류 측정 회로가 있는 경우===&lt;br /&gt;
*MD 시리즈 일부 (예: MD89), SG 시리즈, RB 시리즈, DB 시리즈는 전류 측정 회로가 있습니다.&lt;br /&gt;
&lt;br /&gt;
*실시간 측정한 전압과 전류를 이용하여 출력을 조절합니다.&lt;br /&gt;
===모터 온도 센서가 있는 경우===&lt;br /&gt;
*일부 모델에서는, 모터의 온도 데이터를 제공합니다.&lt;br /&gt;
*Host 에서 주기적으로 확인하여, 서보를 끄거나, 출력을 낮추어야 합니다.&lt;br /&gt;
===전압 상승 방지 회로가 있는 경우===&lt;br /&gt;
*특정 전압 이상이 되지 못하도록 제한해 주는 회로가 장착된 모델이 있습니다.&lt;br /&gt;
**예: SG50&lt;br /&gt;
&lt;br /&gt;
*서보는 동작 상황에 따라 발전이 되어 전압이 높아지는 경우가 있습니다.&lt;br /&gt;
**예: 감속 동작, 윈치 내리기&lt;br /&gt;
**이를 하드웨어적으로 방지해 주는 회로입니다.&lt;br /&gt;
**다만, 어느 한도가 넘어서면, 전자 퓨즈에 의해 회로가 꺼지면서 기능이 멈춥니다.&lt;br /&gt;
&lt;br /&gt;
*이 회로가 꺼지면 그 다음으로 Over Voltage Brake 기능이 고전압을 잡아줍니다.&lt;br /&gt;
&lt;br /&gt;
*SG50 의 경우에는 방지 회로가 1차로 막고, 2차로 Over Voltage Brake 기능이 막습니다.&lt;br /&gt;
===습도 센서가 있는 경우===&lt;br /&gt;
*습도 센서가 추가로 있는 모델이 있습니다.&lt;br /&gt;
**예: SG 시리즈 일부: SG33, SG50&lt;br /&gt;
*습도 센서는 서보 내부의 상대 습도와 온도 데이터를 제공합니다.&lt;br /&gt;
*Low Data 를 그대로 제공하므로, 공식에 따라 계산해야 합니다.&lt;br /&gt;
*주기적으로 데이터를 받아서, Host 에서 판단하여 서보를 끄거나, 동작을 제한해야 합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/RUN&amp;diff=154</id>
		<title>CanServo/MODE/RUN</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/RUN&amp;diff=154"/>
		<updated>2021-09-18T00:52:47Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServo/RUN MODE to CanServo/MODE/RUN without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;서보 작동 모드를 선택합니다.&lt;br /&gt;
1회전 이내의 Servo Mode 와 다회전인 Turn Mode 를 고를수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* Register Address: 0x44&lt;br /&gt;
* Value&lt;br /&gt;
** 0 = Multi Turn&lt;br /&gt;
** 1 = Servo&lt;br /&gt;
&lt;br /&gt;
* Multi Turn 선택시, [[CanServo/TURN_NEW]], [[CanServo/POSITION_NEW]] 2개의 값으로 서보의 목표 위치를 지정하여 다회전을 할수 있습니다.&lt;br /&gt;
* Servo 선택시, [[CanServo/POSITION_NEW]] 값을 지정하여 서보의 목표 위치를 바꿀수 있습니다.&lt;br /&gt;
&lt;br /&gt;
주의:&lt;br /&gt;
* Multi Turn 선택시, Servo Reset 시점의 위치가 POSITION = 0 이 됩니다.&lt;br /&gt;
&lt;br /&gt;
적용 시점 및 변경 절차:&lt;br /&gt;
* 이 설정은 리셋 시점에 적용됩니다.&lt;br /&gt;
* 바꾸고자하는 경우에는, SAVE, RESET 을 해야 합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Write&amp;diff=153</id>
		<title>CanServo/Register/Write</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Write&amp;diff=153"/>
		<updated>2021-09-18T00:51:59Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
다음 페이지를 먼저 읽어 주십시오:&lt;br /&gt;
* [[CanServo/Packet Accept Rule]]&lt;br /&gt;
&lt;br /&gt;
메시지를 수신할 서보에 대한 다음 정보가 필요합니다:&lt;br /&gt;
* CAN_MODE - [[CanServo/MODE/CAN]] = CAN 2.0A or 2.0B - 선택 - 몰라도 가능&lt;br /&gt;
* CAN ID - [[CanServo/ID2]] - 선택 - 몰라도 가능&lt;br /&gt;
* SERVO ID - [[CanServo/ID1]] - 선택 - 몰라도 가능&lt;br /&gt;
* Register Address - 필수&lt;br /&gt;
* Data - 필수&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = ?, ID2 = ?, ID1 = ?, Address = 0x20, Data = 0x1234&lt;br /&gt;
* 서보의 정보를 전혀 모를때 입니다.&lt;br /&gt;
* 다음 정보를 가지는 CAN 2.0A packet 과 2.0B packet 을 각각 1개씩 총 2개 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'w', 0, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 모든 서보가 수신하라는 뜻 입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = 0x77, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A Packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'w', 0x77, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* ID1 = 0x77, ID2 = 0x123 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = ?, ID1 = ?, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'w', 0, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 수신한 모든 서보가 대상이 됩니다. ID1, ID2 의 값에 관계 없이 모든 서보가 반응합니다.&lt;br /&gt;
** 다만, CAN Packet 의 포맷이 2.0A 이므로, CAN MODE = 2.0A 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = ?, ID1 = 0x77, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'w', 0x77, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 수신한 모든 서보가 대상이 됩니다. ID1 을 0 이 아닌 0x77 을 지정했으므로, ID1 = 0x77 로 설정된 서보만 반응합니다.&lt;br /&gt;
** 다만, CAN Packet 의 포맷이 2.0A 이므로, CAN MODE = 2.0A 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = ?, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'w', 0, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 수신한 모든 서보가 대상이 됩니다. ID2 을 0 이 아닌 0x123 을 지정했으므로, ID2 = 0x123 로 설정된 서보만 반응합니다.&lt;br /&gt;
** 다만, CAN Packet 의 포맷이 2.0A 이므로, CAN MODE = 2.0A 인 서보만 반응합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Read&amp;diff=152</id>
		<title>CanServo/Register/Read</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Read&amp;diff=152"/>
		<updated>2021-09-18T00:51:21Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
다음 페이지를 먼저 읽어 주십시오:&lt;br /&gt;
* [[CanServo/Packet Accept Rule]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
읽을 대상이 되는 서보의 정보가 필요합니다:&lt;br /&gt;
* CAN_MODE - [[CanServo/MODE/CAN]] = CAN 2.0A or 2.0B - 선택 - 몰라도 가능&lt;br /&gt;
* CAN ID - [[CanServo/ID2]] - 선택 - 몰라도 가능&lt;br /&gt;
* SERVO ID - [[CanServo/ID1]] - 선택 - 몰라도 가능&lt;br /&gt;
* Register Address - 필수&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
서보가 Read Command 메시지에 반응하여, Return Message 를 발신할때에는&lt;br /&gt;
* CAN ID 에는 서보의 ID2 값이 들어가며&lt;br /&gt;
* Servo ID 에는 서보의 ID1 값이 들어갑니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = ?, ID2 = ?, ID1 = ?, Address = 0x20&lt;br /&gt;
* 서보의 CAN_MODE 도 모르고, ID2, ID1 도 모두 모를때 입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷과 2.0B 패킷을 각각 1개씩 총 2개를 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'r', 0, 0x20&lt;br /&gt;
** DLC = 3&lt;br /&gt;
* 서보는&lt;br /&gt;
** CAN ID = 0 이므로, ID2 과 비교하지 않습니다.&lt;br /&gt;
** Target Servo ID = 0 이므로, ID1 과 비교하지 않습니다.&lt;br /&gt;
** 패킷을 수신한 모든 서보가 Register 0x20 의 값을 Return Message 에 실어서 보냅니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = 0x77, Address = 0x20&lt;br /&gt;
* 서보의 정보를 모두 알고 있는 경우입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'r', 0x77, 0x20&lt;br /&gt;
** DLC = 3&lt;br /&gt;
* 서보는&lt;br /&gt;
** CAN ID 가 0x123 이고 Target Servo ID = 0x77 이므로, ID2 = 0x123 이고, ID1 = 0x77 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = ?, ID1 = 0x77, Address = 0x20&lt;br /&gt;
* 서보의 ID2 정보를 모를때 입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷을 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'r', 0x77, 0x20&lt;br /&gt;
** DLC = 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = ?, Address = 0x20&lt;br /&gt;
* 서보의 ID2 정보를 모를때 입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'r', 0, 0x20&lt;br /&gt;
** DLC = 3&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID1&amp;diff=151</id>
		<title>CanServo/ID1</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID1&amp;diff=151"/>
		<updated>2021-09-18T00:50:53Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보를 구분하는 ID 입니다.&lt;br /&gt;
&lt;br /&gt;
* Register Address: 0x32&lt;br /&gt;
* 값의 범위는 [[CanServo/MODE/CAN]] 설정에 따라&lt;br /&gt;
** CAN 2.0A, 2.0B: 1 ~ 255&lt;br /&gt;
*** 이 값은 [[CanServo/ID/Servo]] 로서 작동합니다.&lt;br /&gt;
** UAVCAN: 1 ~ 127&lt;br /&gt;
*** 이 값은 [[CanServo/ID/Actuator]] 로서 작동합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Packet_Accept_Rule&amp;diff=150</id>
		<title>CanServo/Packet Accept Rule</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Packet_Accept_Rule&amp;diff=150"/>
		<updated>2021-09-18T00:50:33Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
이 절차는 서보가 CAN_MODE = 2.0A 혹은 2.0B 로 동작할때만 의미가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
서보가 수신한 패킷:&lt;br /&gt;
* CAN PACKET TYPE: 2.0A, 2.0B&lt;br /&gt;
* CAN ID = 11 bits or 29 bits&lt;br /&gt;
* Message Type = CAN Data 의 첫 바이트&lt;br /&gt;
* Target Servo ID = CAN Data 의 두번째 바이트&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Message Type 과 Servo ID 는 [[CanServo/Protocol/Control]] 을 참조하기 바랍니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
관련된 서보의 설정은 다음과 같습니다:&lt;br /&gt;
* CAN Packet Type: [[CanServo/MODE/CAN]]&lt;br /&gt;
* CAN ID: [[CanServo/ID2]]&lt;br /&gt;
* Servo ID: [[CanServo/ID1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음 검사를 모두 통과하면 서보는 수신한 패킷을 실행합니다.&lt;br /&gt;
* CAN Packet Type 검사&lt;br /&gt;
** [[CanServo/MODE/CAN]] 에서 선택한 Type ( 2.0A or 2.0B ) 과 같은지 확인&lt;br /&gt;
* CAN ID 검사&lt;br /&gt;
** CAN ID = 0 또는 CAN ID = ID2&lt;br /&gt;
* Message Type 검사&lt;br /&gt;
** Write, Read, Write and Read 인 경우만 통과&lt;br /&gt;
** Return Message 는 무시&lt;br /&gt;
* Target Servo ID 검사&lt;br /&gt;
** Target Servo ID = 0 또는 Target Servo ID = ID1&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/CAN&amp;diff=149</id>
		<title>CanServo/MODE/CAN</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/CAN&amp;diff=149"/>
		<updated>2021-09-18T00:49:59Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServo/CAN MODE to CanServo/MODE/CAN without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CAN 서보는 CAN 2.0A, 2.0B 패킷을 수신할수 있습니다.&lt;br /&gt;
&lt;br /&gt;
어떤 패킷을 수신할 것인지 선택합니다.&lt;br /&gt;
&lt;br /&gt;
* 0 - CAN 2.0A&lt;br /&gt;
* 1 - CAN 2.0B&lt;br /&gt;
* 2 - UAVCAN&lt;br /&gt;
&lt;br /&gt;
[[CanServo/FW Type]] 에 따라 조금 바뀝니다.&lt;br /&gt;
* A FW Type 에서는 0,1,2 를 선택 할수 있습니다.&lt;br /&gt;
* C FW Type 에서는 0,1 을 선택 할수 있습니다. 2 를 선택하면 0 으로 작동합니다.&lt;br /&gt;
* U FW Type 에서는 이 설정값을 무시합니다.&lt;br /&gt;
** 단, FW Ver 1.1(2) [ OLD 2.1(2) ] 에서는 이 값이 강제로 2 로 바뀝니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Actuator&amp;diff=148</id>
		<title>CanServo/ID/Actuator</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Actuator&amp;diff=148"/>
		<updated>2021-09-18T00:47:07Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServo/ID/Acuator to CanServo/ID/Actuator without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UAVCAN 의 장치들 중에 특별히 Actuator 들만을 묶어서 구분하는 ID 입니다.&lt;br /&gt;
[[CanServo/ID/Node]] 와는 무관하게 작동합니다.&lt;br /&gt;
&lt;br /&gt;
범위는 1 부터 127 까지 가능합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID1&amp;diff=147</id>
		<title>CanServo/ID1</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID1&amp;diff=147"/>
		<updated>2021-09-18T00:46:23Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보를 구분하는 ID 입니다.&lt;br /&gt;
&lt;br /&gt;
* Register Address: 0x32&lt;br /&gt;
* 값의 범위는 [[CanServo/CAN_MODE]] 설정에 따라&lt;br /&gt;
** CAN 2.0A, 2.0B: 1 ~ 255&lt;br /&gt;
*** 이 값은 [[CanServo/ID/Servo]] 로서 작동합니다.&lt;br /&gt;
** UAVCAN: 1 ~ 127&lt;br /&gt;
*** 이 값은 [[CanServo/ID/Actuator]] 로서 작동합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID2&amp;diff=146</id>
		<title>CanServo/ID2</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID2&amp;diff=146"/>
		<updated>2021-09-18T00:45:55Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
ID2 는 4 byte 값으로 Register 0x3E, 0x3C 를 묶어서 부릅니다.&lt;br /&gt;
* 0x3C - High 2 byte&lt;br /&gt;
* 0x3E - Low 2 byte&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A, 2.0B 상태에서는 서보의 CAN ID 를 지정하며, UAVCAN 상태에서는 [[CanServo/ID/Node]] 를 지정합니다.&lt;br /&gt;
* CAN 2.0A, 2.0B 에서의 패킷 수신 절차는 [[CanServo/Packet Accept Rule]] 을 참조해 주십시오.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Node&amp;diff=145</id>
		<title>CanServo/ID/Node</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Node&amp;diff=145"/>
		<updated>2021-09-18T00:45:33Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UAVCAN 의 각 장치를 구분하기 위한 통신용 ID 입니다.&lt;br /&gt;
[[CanServo/ID/Acuator]] 와는 다릅니다.&lt;br /&gt;
&lt;br /&gt;
각 장치는 유니크한 Node ID 를 가져야 합니다.&lt;br /&gt;
&lt;br /&gt;
서보는 이 값이 처음에는 0 으로 설정되어 있습니다.&lt;br /&gt;
0 으로 설정된 경우는 1 로 강제로 바뀌어 작동합니다.&lt;br /&gt;
&lt;br /&gt;
Register [[CanServo/ID2]] 에 원하는 Node ID 를 넣으면 됩니다.&lt;br /&gt;
범위는 1 부터 127 까지 입니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Actuator&amp;diff=144</id>
		<title>CanServo/ID/Actuator</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Actuator&amp;diff=144"/>
		<updated>2021-09-18T00:45:06Z</updated>

		<summary type="html">&lt;p&gt;Adam: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UAVCAN 의 장치들 중에 특별히 Actuator 들만을 묶어서 구분하는 ID 입니다.&lt;br /&gt;
[[CanServo/ID/Node]] 와는 무관하게 작동합니다.&lt;br /&gt;
&lt;br /&gt;
범위는 1 부터 127 까지 가능합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Node&amp;diff=143</id>
		<title>CanServo/ID/Node</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Node&amp;diff=143"/>
		<updated>2021-09-18T00:44:04Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServo/Node ID to CanServo/ID/Node without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UAVCAN 의 각 장치를 구분하기 위한 통신용 ID 입니다.&lt;br /&gt;
[[CanServo/Acuator ID]] 와는 다릅니다.&lt;br /&gt;
&lt;br /&gt;
각 장치는 유니크한 Node ID 를 가져야 합니다.&lt;br /&gt;
&lt;br /&gt;
서보는 이 값이 처음에는 0 으로 설정되어 있습니다.&lt;br /&gt;
0 으로 설정된 경우는 1 로 강제로 바뀌어 작동합니다.&lt;br /&gt;
&lt;br /&gt;
Register [[CanServo/ID2]] 에 원하는 Node ID 를 넣으면 됩니다.&lt;br /&gt;
범위는 1 부터 127 까지 입니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Actuator&amp;diff=142</id>
		<title>CanServo/ID/Actuator</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID/Actuator&amp;diff=142"/>
		<updated>2021-09-18T00:43:44Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServo/Acuator ID to CanServo/ID/Acuator without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UAVCAN 의 장치들 중에 특별히 Actuator 들만을 묶어서 구분하는 ID 입니다.&lt;br /&gt;
[[CanServo/Node ID]] 와는 무관하게 작동합니다.&lt;br /&gt;
&lt;br /&gt;
범위는 1 부터 127 까지 가능합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/Control&amp;diff=130</id>
		<title>CanServo/Protocol/Control</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/Control&amp;diff=130"/>
		<updated>2021-09-18T00:10:50Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page CanServo/Message Format to CanServo/Protocol/Control without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
CAN Packet 의 Data 8 byte 에 들어가는 메시지는 구형 3가지 신형 8가지, 총 11가지가 있습니다.&lt;br /&gt;
첫 바이트는 메시지의 종류를 나타냅니다.&lt;br /&gt;
&lt;br /&gt;
여기서 Target Servo ID 는 Servo 의 [[CanServo/ID1]] 의 값과 일치해야 합니다.&lt;br /&gt;
만일 0 을 지정하면, 모든 서보가 반응합니다.&lt;br /&gt;
&lt;br /&gt;
구식 포맷:&lt;br /&gt;
&lt;br /&gt;
* Old Write Command&lt;br /&gt;
** write 1 register&lt;br /&gt;
*** 0x96, (target servo id), (address), 2, (data low byte), (data high byte), (chksum)&lt;br /&gt;
*** DLC = 7&lt;br /&gt;
* Old Read Command&lt;br /&gt;
** read 1 register&lt;br /&gt;
*** 0x96, (target servo id), (address), 0, (chksum)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
* Old Return Message&lt;br /&gt;
** return 1 register&lt;br /&gt;
*** 0x69, (servo id), (address), 2, (data low byte), (data high byte), (chksum)&lt;br /&gt;
*** DLC = 7&lt;br /&gt;
* Old message's chksum&lt;br /&gt;
** add all bytes before chksum, except first byte&lt;br /&gt;
&lt;br /&gt;
신형 포맷:&lt;br /&gt;
&lt;br /&gt;
* Write Command&lt;br /&gt;
** write 1 register&lt;br /&gt;
*** 'w', (target servo id), (address), (data low byte), (data high byte)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
** write 2 registers&lt;br /&gt;
*** 'W', (target servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)&lt;br /&gt;
*** DLC = 8&lt;br /&gt;
&lt;br /&gt;
* Read Command&lt;br /&gt;
** read 1 register&lt;br /&gt;
*** 'r', (target servo id), (address)&lt;br /&gt;
*** DLC = 3&lt;br /&gt;
** read 2 registers&lt;br /&gt;
*** 'R', (target servo id), (address 0), (address 1)&lt;br /&gt;
*** DLC = 4&lt;br /&gt;
&lt;br /&gt;
* Write and Read Command&lt;br /&gt;
** write and read: 1 register&lt;br /&gt;
*** 'x', (target servo id), (address), (data low byte), (data high byte)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
** write and read: 2 registers&lt;br /&gt;
*** 'X', (target servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)&lt;br /&gt;
*** DLC = 8&lt;br /&gt;
&lt;br /&gt;
* Return Message : Servo --&amp;gt; Host&lt;br /&gt;
** return 1 register&lt;br /&gt;
*** 'v', (servo id), (address), (data low byte), (data high byte)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
** return 2 registers&lt;br /&gt;
*** 'V', (servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)&lt;br /&gt;
*** DLC = 8&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Write&amp;diff=101</id>
		<title>CanServo/Register/Write</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Write&amp;diff=101"/>
		<updated>2021-09-17T21:09:42Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Write data to Register to CanServo/Register/Write without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
다음 페이지를 먼저 읽어 주십시오:&lt;br /&gt;
* [[Ko/CanServo/Packet Accept Rule]]&lt;br /&gt;
&lt;br /&gt;
메시지를 수신할 서보에 대한 다음 정보가 필요합니다:&lt;br /&gt;
* [[Ko/CanServo/CAN_MODE]] = CAN 2.0A or 2.0B - 선택 - 몰라도 가능&lt;br /&gt;
* CAN ID = [[Ko/CanServo/ID2]] - 선택 - 몰라도 가능&lt;br /&gt;
* SERVO ID = [[Ko/CanServo/ID1]] - 선택 - 몰라도 가능&lt;br /&gt;
* Register Address - 필수&lt;br /&gt;
* Data - 필수&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = ?, ID2 = ?, ID1 = ?, Address = 0x20, Data = 0x1234&lt;br /&gt;
* 서보의 정보를 전혀 모를때 입니다.&lt;br /&gt;
* 다음 정보를 가지는 CAN 2.0A packet 과 2.0B packet 을 각각 1개씩 총 2개 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'w', 0, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 모든 서보가 수신하라는 뜻 입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = 0x77, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A Packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'w', 0x77, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* ID1 = 0x77, ID2 = 0x123 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = ?, ID1 = ?, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'w', 0, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 수신한 모든 서보가 대상이 됩니다. ID1, ID2 의 값에 관계 없이 모든 서보가 반응합니다.&lt;br /&gt;
** 다만, CAN Packet 의 포맷이 2.0A 이므로, CAN MODE = 2.0A 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = ?, ID1 = 0x77, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'w', 0x77, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 수신한 모든 서보가 대상이 됩니다. ID1 을 0 이 아닌 0x77 을 지정했으므로, ID1 = 0x77 로 설정된 서보만 반응합니다.&lt;br /&gt;
** 다만, CAN Packet 의 포맷이 2.0A 이므로, CAN MODE = 2.0A 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = ?, Address = 0x20, Data = 0x1234&lt;br /&gt;
* CAN 2.0A packet 을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'w', 0, 0x20, 0x34, 0x12&lt;br /&gt;
** DLC = 5&lt;br /&gt;
* 0 은 수신한 모든 서보가 대상이 됩니다. ID2 을 0 이 아닌 0x123 을 지정했으므로, ID2 = 0x123 로 설정된 서보만 반응합니다.&lt;br /&gt;
** 다만, CAN Packet 의 포맷이 2.0A 이므로, CAN MODE = 2.0A 인 서보만 반응합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/TURN_NEW&amp;diff=100</id>
		<title>CanServo/TURN NEW</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/TURN_NEW&amp;diff=100"/>
		<updated>2021-09-17T21:09:19Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/TURN NEW to CanServo/TURN NEW without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Ko/CanServo/RUN_MODE]] 가 Turn Mode 일 때, 회전수를 지정합니다.&lt;br /&gt;
&lt;br /&gt;
[[Ko/CanServo/POSITION_NEW]] 와 조합하여 목표 위치를 지정합니다.&lt;br /&gt;
&lt;br /&gt;
목표 위치 = TURN_NEW x 16384 + POSITION_NEW&lt;br /&gt;
&lt;br /&gt;
Address: 0x&lt;br /&gt;
&lt;br /&gt;
Range: -32760 ~ 0 ~ +32760&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/TURN_COUNT&amp;diff=99</id>
		<title>CanServo/TURN COUNT</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/TURN_COUNT&amp;diff=99"/>
		<updated>2021-09-17T21:09:01Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/TURN COUNT to CanServo/TURN COUNT without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보의 회전 상태가 저장된 Register 입니다.&lt;br /&gt;
&lt;br /&gt;
* Address: 0x&lt;br /&gt;
* Range: -32768 ~ 0 ~ +32767&lt;br /&gt;
* Type: int16_t&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Switch_to_Bootloader&amp;diff=98</id>
		<title>CanServo/Switch to Bootloader</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Switch_to_Bootloader&amp;diff=98"/>
		<updated>2021-09-17T21:08:20Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Switch to Bootloader to CanServo/Switch to Bootloader without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;서보 FW 실행 상태에서 Bootloader 상태로 변경하는 기능입니다.&lt;br /&gt;
다음 조건을 만족해야 합니다:&lt;br /&gt;
* FW Ver 1.4 이상&lt;br /&gt;
* Bootloader Type: B3&lt;br /&gt;
&lt;br /&gt;
부트로더 상태에서 사용할 CAN ID, 통신 속도 등을 지정할수 있습니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/CAN_ID&amp;diff=97</id>
		<title>CanServo/Stream/CAN ID</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/CAN_ID&amp;diff=97"/>
		<updated>2021-09-17T21:07:50Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Stream/CAN ID to CanServo/Stream/CAN ID without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보가 [[Ko/CanServo/Stream]] Packet 을 발신 할 때, CAN ID 에는 [[Ko/CanServo/ID2]] 의 값이 들어갑니다.&lt;br /&gt;
이때, ID2 대신 다른 값을 사용하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
설정 항목은 다음과 같습니다.&lt;br /&gt;
* [[Ko/CanServo/Stream CAN ID/OnOff]] - On/Off&lt;br /&gt;
* [[Ko/CanServo/Stream CAN ID/SCID]] - CAN ID 지정&lt;br /&gt;
&lt;br /&gt;
주의: 이 기능은 CAN 2.0A, 2.0B 에서만 작동합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/CAN_ID&amp;diff=96</id>
		<title>CanServo/Stream/CAN ID</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/CAN_ID&amp;diff=96"/>
		<updated>2021-09-17T21:07:28Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Stream CAN ID to Ko/CanServo/Stream/CAN ID without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보가 [[Ko/CanServo/Stream]] Packet 을 발신 할 때, CAN ID 에는 [[Ko/CanServo/ID2]] 의 값이 들어갑니다.&lt;br /&gt;
이때, ID2 대신 다른 값을 사용하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
설정 항목은 다음과 같습니다.&lt;br /&gt;
* [[Ko/CanServo/Stream CAN ID/OnOff]] - On/Off&lt;br /&gt;
* [[Ko/CanServo/Stream CAN ID/SCID]] - CAN ID 지정&lt;br /&gt;
&lt;br /&gt;
주의: 이 기능은 CAN 2.0A, 2.0B 에서만 작동합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Address&amp;diff=95</id>
		<title>CanServo/Stream/Address</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Address&amp;diff=95"/>
		<updated>2021-09-17T21:07:06Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Stream/Address to CanServo/Stream/Address without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stream 기능을 켜면, [[Ko/CanServo/RUN_MODE]] 에 따라 [[Ko/CanServo/POSITION]], [[Ko/CanServo/TURN_COUNT]] 등의 정보를 전송합니다.&lt;br /&gt;
&lt;br /&gt;
원하는 특정 주소를 지정하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
4개의 Register 를 통하여 2개씩 총 8개의 주소를 지정할수 있습니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream&amp;diff=94</id>
		<title>CanServo/Stream</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream&amp;diff=94"/>
		<updated>2021-09-17T21:06:49Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Stream to CanServo/Stream without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보 상태 정보를 주기적으로 발신해 주는 기능입니다.&lt;br /&gt;
* [[Ko/CanServo/POSITION]]&lt;br /&gt;
* [[Ko/CanServo/TURN_COUNT]]&lt;br /&gt;
&lt;br /&gt;
설정 항목은 다음과 같습니다.&lt;br /&gt;
* [[Ko/CanServo/Stream/OnOff]]&lt;br /&gt;
* [[Ko/CanServo/Stream/Period]]&lt;br /&gt;
&lt;br /&gt;
FW Ver 1.4 부터는 원하는 주소 8개 까지 직접 지정할수 있습니다.&lt;br /&gt;
* [[Ko/CanServo/Stream/Address]]&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Start_Position&amp;diff=93</id>
		<title>CanServo/Start Position</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Start_Position&amp;diff=93"/>
		<updated>2021-09-17T21:06:32Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Start Position to CanServo/Start Position without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
CAN 서보는 리셋 시점의 위치를 고수합니다.&lt;br /&gt;
* 단, Torque 가 0 이면, 외력에 의해 움직일수 있습니다.&lt;br /&gt;
특정 위치로 움직이게 하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
* [[Ko/CanServo/Start Position/OnOff]]&lt;br /&gt;
* [[Ko/CanServo/Start Position/Positon]]&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Speed&amp;diff=92</id>
		<title>CanServo/Speed</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Speed&amp;diff=92"/>
		<updated>2021-09-17T21:06:13Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Speed to CanServo/Speed without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
CAN 서보에서 속도의 단위는 pos/100msec 입니다.&lt;br /&gt;
&lt;br /&gt;
pos 의 단위는 16384 = 360 deg 입니다.&lt;br /&gt;
&lt;br /&gt;
Vt (sec/60deg) 와 Vp (pos/100msec) 의 변환식은 다음과 같습니다. 단, PT = Reg PID TIME, PX = PT / 10&lt;br /&gt;
* Vp = 60 x 16384 / 360 / Vt / 10 x PX&lt;br /&gt;
* Vt = 60 x 16384 / 360 / Vp / 10 x PX&lt;br /&gt;
&lt;br /&gt;
ex) 1920 pos/100msec = 0.142 sec/60deg, PT=10&lt;br /&gt;
&lt;br /&gt;
ex) 1920 pos/100msec = 0.284 sec/60deg, PT=20&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Read&amp;diff=91</id>
		<title>CanServo/Register/Read</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Register/Read&amp;diff=91"/>
		<updated>2021-09-17T21:05:54Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Read Register to CanServo/Register/Read without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
다음 페이지를 먼저 읽어 주십시오:&lt;br /&gt;
* [[Ko/CanServo/Packet Accept Rule]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
읽을 대상이 되는 서보의 정보가 필요합니다:&lt;br /&gt;
* [[Ko/CanServo/CAN_MODE]] = CAN 2.0A or 2.0B - 선택 - 몰라도 가능&lt;br /&gt;
* CAN ID - [[Ko/CanServo/ID2]] - 선택 - 몰라도 가능&lt;br /&gt;
* SERVO ID - [[Ko/CanServo/ID1]] - 선택 - 몰라도 가능&lt;br /&gt;
* Register Address - 필수&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
서보가 Read Command 메시지에 반응하여, Return Message 를 발신할때에는&lt;br /&gt;
* CAN ID 에는 서보의 ID2 값이 들어가며&lt;br /&gt;
* Servo ID 에는 서보의 ID1 값이 들어갑니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = ?, ID2 = ?, ID1 = ?, Address = 0x20&lt;br /&gt;
* 서보의 CAN_MODE 도 모르고, ID2, ID1 도 모두 모를때 입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷과 2.0B 패킷을 각각 1개씩 총 2개를 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'r', 0, 0x20&lt;br /&gt;
** DLC = 3&lt;br /&gt;
* 서보는&lt;br /&gt;
** CAN ID = 0 이므로, ID2 과 비교하지 않습니다.&lt;br /&gt;
** Target Servo ID = 0 이므로, ID1 과 비교하지 않습니다.&lt;br /&gt;
** 패킷을 수신한 모든 서보가 Register 0x20 의 값을 Return Message 에 실어서 보냅니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = 0x77, Address = 0x20&lt;br /&gt;
* 서보의 정보를 모두 알고 있는 경우입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'r', 0x77, 0x20&lt;br /&gt;
** DLC = 3&lt;br /&gt;
* 서보는&lt;br /&gt;
** CAN ID 가 0x123 이고 Target Servo ID = 0x77 이므로, ID2 = 0x123 이고, ID1 = 0x77 인 서보만 반응합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = ?, ID1 = 0x77, Address = 0x20&lt;br /&gt;
* 서보의 ID2 정보를 모를때 입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷을 발신합니다.&lt;br /&gt;
** CAN ID = 0&lt;br /&gt;
** CAN DATA = 'r', 0x77, 0x20&lt;br /&gt;
** DLC = 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: CAN MODE = 2.0A, ID2 = 0x123, ID1 = ?, Address = 0x20&lt;br /&gt;
* 서보의 ID2 정보를 모를때 입니다.&lt;br /&gt;
* 다음과 같은 구조의 CAN 2.0A 패킷을 발신합니다.&lt;br /&gt;
** CAN ID = 0x123&lt;br /&gt;
** CAN DATA = 'r', 0, 0x20&lt;br /&gt;
** DLC = 3&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/RUN&amp;diff=90</id>
		<title>CanServo/MODE/RUN</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/RUN&amp;diff=90"/>
		<updated>2021-09-17T21:05:27Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/RUN MODE to CanServo/RUN MODE without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;서보 작동 모드를 선택합니다.&lt;br /&gt;
1회전 이내의 Servo Mode 와 다회전인 Turn Mode 를 고를수 있습니다.&lt;br /&gt;
&lt;br /&gt;
* Register Address: 0x44&lt;br /&gt;
* Value&lt;br /&gt;
** 0 = Multi Turn&lt;br /&gt;
** 1 = Servo&lt;br /&gt;
&lt;br /&gt;
* Multi Turn 선택시, [[Ko/CanServo/TURN_NEW]], [[Ko/CanServo/POSITION_NEW]] 2개의 값으로 서보의 목표 위치를 지정하여 다회전을 할수 있습니다.&lt;br /&gt;
* Servo 선택시, [[Ko/CanServo/POSITION_NEW]] 값을 지정하여 서보의 목표 위치를 바꿀수 있습니다.&lt;br /&gt;
&lt;br /&gt;
주의:&lt;br /&gt;
* Multi Turn 선택시, Servo Reset 시점의 위치가 POSITION = 0 이 됩니다.&lt;br /&gt;
&lt;br /&gt;
적용 시점 및 변경 절차:&lt;br /&gt;
* 이 설정은 리셋 시점에 적용됩니다.&lt;br /&gt;
* 바꾸고자하는 경우에는, SAVE, RESET 을 해야 합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Pause&amp;diff=89</id>
		<title>CanServo/Stream/Pause</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Stream/Pause&amp;diff=89"/>
		<updated>2021-09-17T21:05:08Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Pause Stream to CanServo/Stream/Pause without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보의 Stream 발신을 일시적으로 정지시킵니다.&lt;br /&gt;
이 값은 저장되지 않습니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Packet_Accept_Rule&amp;diff=88</id>
		<title>CanServo/Packet Accept Rule</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Packet_Accept_Rule&amp;diff=88"/>
		<updated>2021-09-17T21:04:40Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Packet Accept Rule to CanServo/Packet Accept Rule without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
이 절차는 서보가 CAN_MODE = 2.0A 혹은 2.0B 로 동작할때만 의미가 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
서보가 수신한 패킷:&lt;br /&gt;
* CAN PACKET TYPE: 2.0A, 2.0B&lt;br /&gt;
* CAN ID = 11 bits or 29 bits&lt;br /&gt;
* Message Type = CAN Data 의 첫 바이트&lt;br /&gt;
* Target Servo ID = CAN Data 의 두번째 바이트&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
관련된 서보의 설정은 다음과 같습니다:&lt;br /&gt;
* CAN Packet Type: [[Ko/CanServo/CAN_MODE]]&lt;br /&gt;
* CAN ID: [[Ko/CanServo/ID2]]&lt;br /&gt;
* Servo ID: [[Ko/CanServo/ID1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
다음 검사를 모두 통과하면 서보는 수신한 패킷을 실행합니다.&lt;br /&gt;
* CAN Packet Type 검사&lt;br /&gt;
** [[Ko/CanServo/CAN_MODE]] 에서 선택한 Type ( 2.0A or 2.0B ) 과 같은지 확인&lt;br /&gt;
* CAN ID 검사&lt;br /&gt;
** CAN ID = 0 또는 CAN ID = ID2&lt;br /&gt;
* Message Type 검사&lt;br /&gt;
** Write, Read, Write and Read 인 경우만 통과&lt;br /&gt;
** Return Message 는 무시&lt;br /&gt;
** [[Ko/CanServo/Message Format]] 참조&lt;br /&gt;
* Target Servo ID 검사&lt;br /&gt;
** Target Servo ID = 0 또는 Target Servo ID = ID1&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/POSITION_NEW&amp;diff=87</id>
		<title>CanServo/POSITION NEW</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/POSITION_NEW&amp;diff=87"/>
		<updated>2021-09-17T21:04:24Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/POSITION NEW to CanServo/POSITION NEW without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보의 목표 위치를 지정합니다.&lt;br /&gt;
&lt;br /&gt;
해상도는 16384 = 360 deg 입니다.&lt;br /&gt;
&lt;br /&gt;
Turn Mode 에서는 [[Ko/CanServo/TURN_NEW]] 와 조합됩니다.&lt;br /&gt;
&lt;br /&gt;
Address: 0x&lt;br /&gt;
&lt;br /&gt;
권장 범위는 [[Ko/CanServo/RUN_MODE]] 에 따라 다릅니다.&lt;br /&gt;
* Servo Mode&lt;br /&gt;
** 0 ~ 16383&lt;br /&gt;
* Turn Mode&lt;br /&gt;
** -16383 ~ +16383&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/POSITION&amp;diff=86</id>
		<title>CanServo/POSITION</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/POSITION&amp;diff=86"/>
		<updated>2021-09-17T21:04:07Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/POSITION to CanServo/POSITION without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CAN 서보의 1회전 이내의 위치가 들어가 있는 Register 입니다.&lt;br /&gt;
&lt;br /&gt;
Adress: 0x&lt;br /&gt;
&lt;br /&gt;
Range: 0 ~ 16383&lt;br /&gt;
&lt;br /&gt;
Resolution: 16384 = 360 deg&lt;br /&gt;
&lt;br /&gt;
주의: 실제 위치가 0 에서 -1 되면, POSITION 값이 16383 이 되면서 [[Ko/CanServo/TURN_COUNT]] 가 -1 변화합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/Control&amp;diff=85</id>
		<title>CanServo/Protocol/Control</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Protocol/Control&amp;diff=85"/>
		<updated>2021-09-17T21:03:52Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Message Format to CanServo/Message Format without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
CAN Packet 의 Data 8 byte 에 들어가는 메시지는 구형 3개 신형 8개, 총 11개가 있습니다.&lt;br /&gt;
첫 바이트는 메시지의 종류를 나타냅니다.&lt;br /&gt;
&lt;br /&gt;
여기서 Target Servo ID 는 Servo 의 [[Ko/CanServo/ID1]] 의 값과 일치해야 합니다.&lt;br /&gt;
만일 0 을 지정하면, 모든 서보가 반응합니다.&lt;br /&gt;
&lt;br /&gt;
구식 포맷:&lt;br /&gt;
&lt;br /&gt;
* Old Write Command&lt;br /&gt;
** write 1 register&lt;br /&gt;
*** 0x96, (target servo id), (address), 2, (data low byte), (data high byte), (chksum)&lt;br /&gt;
*** DLC = 7&lt;br /&gt;
* Old Read Command&lt;br /&gt;
** read 1 register&lt;br /&gt;
*** 0x96, (target servo id), (address), 0, (chksum)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
* Old Return Message&lt;br /&gt;
** return 1 register&lt;br /&gt;
*** 0x69, (servo id), (address), 2, (data low byte), (data high byte), (chksum)&lt;br /&gt;
*** DLC = 7&lt;br /&gt;
* Old message's chksum&lt;br /&gt;
** add all bytes before chksum, except first byte&lt;br /&gt;
&lt;br /&gt;
신형 포맷:&lt;br /&gt;
&lt;br /&gt;
* Write Command&lt;br /&gt;
** write 1 register&lt;br /&gt;
*** 'w', (target servo id), (address), (data low byte), (data high byte)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
** write 2 registers&lt;br /&gt;
*** 'W', (target servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)&lt;br /&gt;
*** DLC = 8&lt;br /&gt;
&lt;br /&gt;
* Read Command&lt;br /&gt;
** read 1 register&lt;br /&gt;
*** 'r', (target servo id), (address)&lt;br /&gt;
*** DLC = 3&lt;br /&gt;
** read 2 registers&lt;br /&gt;
*** 'R', (target servo id), (address 0), (address 1)&lt;br /&gt;
*** DLC = 4&lt;br /&gt;
&lt;br /&gt;
* Write and Read Command&lt;br /&gt;
** write and read: 1 register&lt;br /&gt;
*** 'x', (target servo id), (address), (data low byte), (data high byte)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
** write and read: 2 registers&lt;br /&gt;
*** 'X', (target servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)&lt;br /&gt;
*** DLC = 8&lt;br /&gt;
&lt;br /&gt;
* Return Message : Servo --&amp;gt; Host&lt;br /&gt;
** return 1 register&lt;br /&gt;
*** 'v', (servo id), (address), (data low byte), (data high byte)&lt;br /&gt;
*** DLC = 5&lt;br /&gt;
** return 2 registers&lt;br /&gt;
*** 'V', (servo id), (address 0), (data 0 low byte), (data 0 high byte), (address 1), (data 1 low byte), (data 1 high byte)&lt;br /&gt;
*** DLC = 8&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Manual/Summary&amp;diff=84</id>
		<title>CanServo/Manual/Summary</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Manual/Summary&amp;diff=84"/>
		<updated>2021-09-17T21:03:33Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Manual/Summary to CanServo/Manual/Summary without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==개요==&lt;br /&gt;
CAN 서보는 CAN 통신을 통해 제어하는 서보 입니다. CAN 2.0A, 2.0B 을 지원하며, UAVCAN protocol 을 지원합니다.&lt;br /&gt;
*문서 개요&lt;br /&gt;
**이 문서는 요약본입니다.&lt;br /&gt;
**각 Register 의 정확한 주소는 Manual 을 참조해 주십시오.&lt;br /&gt;
==FW Type==&lt;br /&gt;
지원하는 Protocol 의 종류에 따라 나뉩니다.&lt;br /&gt;
*C Type = CAN 2.0A, 2.0B 지원&lt;br /&gt;
*U Type = UAVCAN 지원&lt;br /&gt;
*A Type = CAN 2.0A, 2.0B, UAVCAN 지원&lt;br /&gt;
==통신 설정==&lt;br /&gt;
*통신 설정은 서보 Reset 시점에만 적용됩니다.&lt;br /&gt;
*CAN 통신을 처음 사용하는 경우에는 [[Ko/CAN/개요]] 를 참조해 주십시오.&lt;br /&gt;
===통신 속도===&lt;br /&gt;
사용할 통신 속도를 선택합니다. 단위는 kbps 입니다.&lt;br /&gt;
*1000&lt;br /&gt;
*800&lt;br /&gt;
*750&lt;br /&gt;
*500&lt;br /&gt;
*350&lt;br /&gt;
*250&lt;br /&gt;
*125&lt;br /&gt;
===통신 Protocol===&lt;br /&gt;
통신에 사용할 Protocol 을 선택합니다.&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A, 2.0B, UAVCAN 중에 선택합니다. Protocol 에 따라서는 FW Type 을 바꾸어야 할 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A,B 가 나뉘어 있는 것은, CAN ID 의 값도 일치해야 하지만, Type 도 확인하기 때문입니다. 즉, CAN 2.0A 인 CAN ID = 100 과 CAN 2.0B 인 CAN ID = 100 은 다르게 인식합니다.&lt;br /&gt;
* 자세한 내용은 [[Ko/CanServo/Packet Accept Rule]] 을 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A, 2.0B 에서는 다음 메시지 포맷을 따릅니다.&lt;br /&gt;
*[[Ko/CanServo/Message Format]]&lt;br /&gt;
&lt;br /&gt;
===서보의 ID 지정===&lt;br /&gt;
특정 서보의 Register 를 읽거나 쓰려면, 서보를 구분할수 있어야 합니다.&lt;br /&gt;
&lt;br /&gt;
서보 구분용 ID 는 2가지 입니다.&lt;br /&gt;
*CAN 2.0A,B 에서는 CAN ID, Servo ID&lt;br /&gt;
*UAVCAN 에서는 Node ID, Actuator ID 입니다.&lt;br /&gt;
ID 설정은&lt;br /&gt;
*CAN ID, Node ID 는 Register [[Ko/CanServo/ID2]] 를 통해 설정합니다.&lt;br /&gt;
*Servo ID, Actuator ID 는 Register [[Ko/CanServo/ID1]] 을 통해 설정합니다.&lt;br /&gt;
&lt;br /&gt;
==동작 모드 ( [[Ko/CanServo/RUN_MODE]] )==&lt;br /&gt;
*CAN 서보는 1회전이내로 동작하는 Servo Mode 와 +/-32760 x 360 deg 동작이 가능한 Turn Mode 를 지원합니다.&lt;br /&gt;
**주의: Turn Mode 선택시, 서보 Reset 시점의 위치가 0 deg, 0 Turn 위치가 됩니다.&lt;br /&gt;
*2가지 중에 선택합니다.&lt;br /&gt;
*동작 모드는 서보 Reset 시점에 적용됩니다.&lt;br /&gt;
&lt;br /&gt;
==서보의 제어 방식==&lt;br /&gt;
*CAN 서보는 2 byte 크기의 Register 128개를 가지고 있습니다.&lt;br /&gt;
*이 값들에 따라 동작합니다.&lt;br /&gt;
*예를 들어&lt;br /&gt;
**Servo Mode 에서는, Register POSITION_NEW 에 8192 라는 값을 넣으면, 중앙 위치로 이동합니다.&lt;br /&gt;
**Register POSITION 값을 읽어보면, 서보의 현재 위치값을 알수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/Message Format]]&lt;br /&gt;
*[[Ko/CanServo/Write data to Register]]&lt;br /&gt;
*[[Ko/CanServo/Read Register]]&lt;br /&gt;
&lt;br /&gt;
==설정값 변경시 적용 시점==&lt;br /&gt;
*대부분의 사용자용 설정값은 변경 즉시 적용됩니다.&lt;br /&gt;
*다음 예외 항목들은, Servo Reset 시점에 적용되므로, SAVE, RESET 절차를 수행해야 합니다.&lt;br /&gt;
**통신 설정 = 통신 속도, 통신 Protocol, ID2, ID1&lt;br /&gt;
**동작 모드 ( [[Ko/CanServo/RUN_MODE]] )&lt;br /&gt;
**Stream CAN ID 설정값 ( [[Ko/CanServo/Stream CAN ID]] )&lt;br /&gt;
&lt;br /&gt;
==설정값의 저장==&lt;br /&gt;
*제어값(POSITION_NEW, TURN_NEW 등), 각종 상태값, 예외인 일부 항목등을 제외한 대부분의 Register 는, SAVE 명령시 저장되어 Servo Reset 후에도 유지됩니다.&lt;br /&gt;
* !!! 주의 !!!&lt;br /&gt;
**SAVE 는 모터를 정지 시킨 상태에서 하는 것을 추천합니다.&lt;br /&gt;
**SAVE 를 너무 자주 해서는 안됩니다.&lt;br /&gt;
**특히 주기적으로 해서는 안됩니다.&lt;br /&gt;
**가능한 여러가지 값을 변경 한 후 SAVE, Servo Reset 하는 것을 추천합니다.&lt;br /&gt;
**단, 통신 설정값, ID, RUN_MODE 등은, 다른 값들과 함께 변경하지 말고 별도로 변경, Reset 하는 것을 추천합니다.&lt;br /&gt;
&lt;br /&gt;
==위치 좌표계==&lt;br /&gt;
*POSITION, POSITION_NEW: Resolution: 16384 = 360 deg&lt;br /&gt;
**Position Sensor's Actual Resolution: 4096 = 360 deg&lt;br /&gt;
===Servo Mode===&lt;br /&gt;
*1회전 이내에서 동작하는 모드 입니다.&lt;br /&gt;
&lt;br /&gt;
*Register POSITION_NEW 에 원하는 위치를 넣습니다.&lt;br /&gt;
**위치값은 0 ~ 16383&lt;br /&gt;
*POSITION_MIN, POSITION_MAX 로 동작 범위를 제한 할 수 있습니다.&lt;br /&gt;
===Turn Mode===&lt;br /&gt;
*다회전 모드 입니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/TURN_NEW]] 에 회전수를 넣고, [[Ko/CanServo/POSITION_NEW]] 에 360도 이내 각도를 넣으면 동작합니다.&lt;br /&gt;
*두 값은 int16_t ( 16 bits signed integer ) 방식을 따르므로, 음수 지정이 가능합니다.&lt;br /&gt;
**Range: -32768 ~ 0 ~ +32767&lt;br /&gt;
&lt;br /&gt;
* !!! 주의 !!!&lt;br /&gt;
**서보가 Reset 될 때의 위치값이 0 으로 초기화 됩니다.&lt;br /&gt;
**서보 Reset 직후, TURN_NEW = 0, POSITION_NEW = 0 을 전송하면 움직이지 않고 그대로 있습니다.&lt;br /&gt;
&lt;br /&gt;
*목표 위치를 지정하는 방식은, POSITION_NEW 의 음수 사용 여부에 따라 2가지 형태로 사용 가능합니다.&lt;br /&gt;
**목표의 예로, -370 deg, -10 deg, 10 deg&lt;br /&gt;
***-370 deg = -370 x 16384 / 360 = -16839.111 = -16839&lt;br /&gt;
***-10 deg = -10 x 16384 / 360 = -455.111 = -455&lt;br /&gt;
***10 deg = 10 x 16384 / 360 = 455.111 = 455&lt;br /&gt;
**-370 deg&lt;br /&gt;
***TURN_NEW = -1, POSITION_NEW = -455 -&amp;gt; 음수 사용할때&lt;br /&gt;
***TURN_NEW = -2, POSITION_NEW = 15929 -&amp;gt; 음수 사용하지 않을때&lt;br /&gt;
**-10 deg&lt;br /&gt;
***TURN_NEW = 0, POSITION_NEW = -455 -&amp;gt; 음수 사용할때&lt;br /&gt;
***TURN_NEW = -1, POSITION_NEW = 15929 -&amp;gt; 음수 사용하지 않을때&lt;br /&gt;
**10 deg&lt;br /&gt;
***TURN_NEW = 0, POSITION_NEW = 455&lt;br /&gt;
&lt;br /&gt;
===UAVCAN UNITLESS 좌표계===&lt;br /&gt;
*UAVCAN Actuator.ArrayCommand 메시지에서 목표 위치를 지정할때 UNITLESS 모드를 사용하면 -1.0000 부터 +1.0000 까지 정규화된 형태로 지정할수 있습니다.&lt;br /&gt;
*이렇게 지정한 위치값은, -1 ~ 0 ~ +1 ---&amp;gt; POSITION_MIN, POSITION_MID, POSITION_MAX 까지의 실제 위치값으로 환산됩니다. &lt;br /&gt;
*예를 들면, -0.5000 는 (POSITION_MIN+POSITION_MID)/2 가 됩니다.&lt;br /&gt;
&lt;br /&gt;
===현재 위치===&lt;br /&gt;
*Register TURN_COUNT, POSITOIN 를 통해 서보의 현재 위치를 알 수 있습니다.&lt;br /&gt;
**위치값 = TURN_COUNT x 16384 + POSITION&lt;br /&gt;
***TURN_COUNT: Range: -32768 ~ +32767&lt;br /&gt;
***POSITION: Range: 0 ~ 16383&lt;br /&gt;
**도단위 = ( TURN_COUNT x 16384 + POSITION ) x 360 / 16384&lt;br /&gt;
*위의 위치값 데이터가 32 비트 값으로 들어가 있는 Register 2개를 사용 할수 도 있습니다.&lt;br /&gt;
**POSITION_32_LOW, POSITION_32_HIGH&lt;br /&gt;
**type: int32_t ( 32 bits signed integer )&lt;br /&gt;
&lt;br /&gt;
*주의&lt;br /&gt;
**Register POSITION: 0 ~ 16383&lt;br /&gt;
**위치 0 에서 -1 된다면, POSITION 은 -1 이 아닌 16383 이 되고 TURN_COUNT 가 -1 됩니다.&lt;br /&gt;
&lt;br /&gt;
==통신 예제==&lt;br /&gt;
예를 들어 다음과 같이 4개의 서보가 있다면&lt;br /&gt;
*S1: PROTOCOL=2.0A, ID2 = 10, ID1 = 101&lt;br /&gt;
*S2: PROTOCOL=2.0A, ID2 = 10, ID1 = 102&lt;br /&gt;
*S3: PROTOCOL=2.0B, ID2 = 11, ID1 = 103&lt;br /&gt;
*S4: PROTOCOL=2.0B, ID2 = 11, ID1 = 104&lt;br /&gt;
S2 서보의 Register 0x30 에 0x11 값을 쓴다고 하면&lt;br /&gt;
*CAN ID = 0, TYPE=2.0A, DATA = 'w', 102, 0x30, 0x11, 0x00 -&amp;gt; S2 가 수신 및 처리&lt;br /&gt;
*CAN ID = 0, TYPE=2.0B, DATA = 'w', 102, 0x30, 0x11, 0x00 -&amp;gt; S2 가 무시, TYPE 틀림&lt;br /&gt;
*여기서 DATA 의 첫 바이트 'w' 는 1개의 Register 를 쓰라는 명령을 뜻합니다.&lt;br /&gt;
**자세한 내용은 [[Ko/CanServo/Message Format]] 를 참조해 주십시오.&lt;br /&gt;
*DATA 두번째 102 는 Target Servo ID 를 뜻하며, 102 이므로 S2 를 가리킵니다.&lt;br /&gt;
&lt;br /&gt;
==기본 사용법==&lt;br /&gt;
===목표 위치 바꾸기===&lt;br /&gt;
*Register POSITION_NEW 를 통해 목표 위치를 지정할수 있습니다.&lt;br /&gt;
**Turn Mode 에서는 Register TURN_NEW 추가 사용&lt;br /&gt;
**Servo Mode 에서는 Register TURN_NEW 가 무시됩니다.&lt;br /&gt;
&lt;br /&gt;
*POSITION_NEW, TURN_NEW 는 저장되지 않습니다.&lt;br /&gt;
&lt;br /&gt;
*Turn Mode 에서 TURN_NEW, POSITION_NEW 변경하기&lt;br /&gt;
**목표 각도 deg 를 POSITION 단위로 바꿉니다.&lt;br /&gt;
***pos = (정수 환산) ( deg x 16384 / 360 )&lt;br /&gt;
**turn 과 나머지를 구합니다.&lt;br /&gt;
***TURN_NEW = pos / 16384&lt;br /&gt;
***POSITION_NEW = pos % 16384 ( C style )&lt;br /&gt;
**두 값을 전송 (TYPE 1)&lt;br /&gt;
**만일, POSITION_NEW 를 양수로 바꾸는 경우에는 TURN_COUNT 를 -1 합니다. (TYPE 2)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int32_t pos = (int32_t)(deg * 16384 / 360);&lt;br /&gt;
int32_t turn = pos / 16384;&lt;br /&gt;
int32_t posi = pos % 16834;&lt;br /&gt;
// TYPE 1: send 'W' command: turn -&amp;gt; TURN_NEW, posi -&amp;gt; POSITION_NEW&lt;br /&gt;
while( posi &amp;lt; 0 )&lt;br /&gt;
{&lt;br /&gt;
    posi += 16384;&lt;br /&gt;
    turn -= 1;&lt;br /&gt;
}&lt;br /&gt;
// TYPE 2: send 'W' command: turn -&amp;gt; TURN_NEW, posi -&amp;gt; POSITION_NEW&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===목표 위치 제한 하기===&lt;br /&gt;
*Servo Mode 에서는 Register POSITION_MIN, POSITION_MAX 에 동작 범위를 지정할수 있습니다.&lt;br /&gt;
*Resolution 은 16384 = 360 deg 입니다.&lt;br /&gt;
*권장 최대 가동 범위: Center(8192) +/- 150도&lt;br /&gt;
&lt;br /&gt;
*예를 들어, +/- 60도 를 지정한다면&lt;br /&gt;
**60 deg = 60 x 16384 / 360 = 2730&lt;br /&gt;
**POSITION_MIN = -60 deg = 8192 - 2730 = 5462&lt;br /&gt;
**POSITION_MAX = +60 deg = 8192 + 2730 = 10922&lt;br /&gt;
===현재 위치 읽기===&lt;br /&gt;
*Register TURN_COUNT, POSITION 또는 POSITION_32_LOW, POSITION_32_HIGH 을 읽으면 현재 위치를 알수 있습니다.&lt;br /&gt;
*Servo Mode 에서는, POSITION 또는 POSITION_32_LOW 를 읽습니다.&lt;br /&gt;
*Turn Mode 에서는, POSITION, TURN_COUNT 를 읽습니다. 혹은 POSITION_32_LOW, POSITION_32_HIGH 를 읽습니다.&lt;br /&gt;
&lt;br /&gt;
*POSITION 과 POSITION_32_LOW 의 차이&lt;br /&gt;
**POSITION 은 0 ~ 16383 까지만 들어가고, TURN 이 바뀌는 것은 TURN_COUNT 를 읽어봐야 알수 있습니다.&lt;br /&gt;
**POSITION_32_LOW 는 2비트 추가로 있으므로, 앞뒤로 총 4 turn 까지 상태를 알수 있습니다.&lt;br /&gt;
===속도 바꾸기===&lt;br /&gt;
*동작 최대 속도를 지정할수 있습니다.&lt;br /&gt;
*0 으로 변경하면 목표 위치를 바꾸더라도 움직이지 않습니다.&lt;br /&gt;
===토크 바꾸기===&lt;br /&gt;
*최대 출력을 조절합니다.&lt;br /&gt;
*최대 속도도 비례적으로 조정됩니다.&lt;br /&gt;
*0 으로 변경하면 힘이 완전히 풀리면서 외력에 의해 움직일수 있습니다.&lt;br /&gt;
===비상 정지===&lt;br /&gt;
*일시적으로 모터 출력을 끕니다.&lt;br /&gt;
*이 상태는 저장되지 않으며, 서보 Reset 후에는 풀립니다.&lt;br /&gt;
*비상 정지 모드에 따라 정지까지의 과정과 상태 유지 방식이 다릅니다.&lt;br /&gt;
**0 = 비상 정지 해제&lt;br /&gt;
**1 = 즉시 모터 출력을 끕니다. 외력에 의해 움직일수 있습니다.&lt;br /&gt;
**2 = Time Speed ES 값에 맞추어 감속하고, 정지 위치를 고수합니다.&lt;br /&gt;
**3 = 즉시 멈추고, 정지 위치를 고수합니다.&lt;br /&gt;
===전압, MCU 온도에 따른 비상 정지===&lt;br /&gt;
*MCU 온도와 전압의 상태가 지정한 작동 범위를 벗어나면 모터 출력이 꺼집니다.&lt;br /&gt;
*실시간은 아니고 어느정도 평균처리가 됩니다.&lt;br /&gt;
===가감속 시간 지정 하기===&lt;br /&gt;
*이 기능은 사다리꼴 속도 프로파일을 구현합니다.&lt;br /&gt;
*지정한 최대 속도까지 가속하는 시간, 최대 속도에서 속도 0까지 감속하는 시간을 지정할수 있습니다.&lt;br /&gt;
===현재 속도 읽기===&lt;br /&gt;
*Register VELOCITY 를 읽으면 서보의 현재 속도를 알수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/Speed]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===현재 가속도 읽기===&lt;br /&gt;
*Register ACC 를 읽으면 서보의 현재 가속도를 알수 있습니다.&lt;br /&gt;
===서보 내부 온도 센서 종류===&lt;br /&gt;
*CAN 서보는 제품에 따라 다양한 온도 센서를 가지고 있습니다.&lt;br /&gt;
**MCU 온도&lt;br /&gt;
***제어 보드의 MCU 에 내장된 온도 센서의 데이터 입니다.&lt;br /&gt;
**모터 온도&lt;br /&gt;
***모터에 부착된 온도 센서의 데이터 입니다.&lt;br /&gt;
**습도 센서의 온도&lt;br /&gt;
***습도 센서에 포함된 온도 센서의 데이터 입니다.&lt;br /&gt;
&lt;br /&gt;
*온도에 의한 모터 출력 끄기&lt;br /&gt;
**MCU 온도의 최소, 최대 값을 각각 지정하여, 모터 출력을 끌 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*모터 온도, 습도 센서의 온도 데이터는 별도의 감시 코드가 없으므로, Host 에서 주기적으로 읽어서 판단하여 서보 출력을 끄거나 제어해야 합니다.&lt;br /&gt;
==추가 기능==&lt;br /&gt;
===User Data===&lt;br /&gt;
*Register 2개에 사용자가 원하는 정보를 넣어 둘수 있습니다.&lt;br /&gt;
*값을 변경하고 SAVE 절차를 수행하면, Reset 되어도 유지됩니다.&lt;br /&gt;
===Stream===&lt;br /&gt;
*Register POSITION, TURN_COUNT 등의 정보를 지정한 간격으로 전송합니다.&lt;br /&gt;
*UAVCAN 에서는 Actuator Status 메시지를 발신합니다.&lt;br /&gt;
*[[Ko/CanServo/Stream]] 을 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Stream Address===&lt;br /&gt;
*총 4개의 Register 를 통해, 원하는 주소 2개씩 최대 8개까지 설정할수 있습니다.&lt;br /&gt;
*PROTOCOL = CAN 2.0A, 2.0B 에서만 적용됩니다.&lt;br /&gt;
*[[Ko/CanServo/Stream/Address]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Stream CAN ID===&lt;br /&gt;
*Stream CAN Packet 발신 때 사용할 CAN ID 를 별도 지정하는 기능입니다.&lt;br /&gt;
*[[Ko/CanServo/ID2]] 값 대신 사용됩니다.&lt;br /&gt;
*PROTOCOL = CAN 2.0A, 2.0B 에서만 적용됩니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/Stream CAN ID]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Start Position===&lt;br /&gt;
*CAN 서보는 기동시 Reset 시점의 위치를 유지합니다.&lt;br /&gt;
*Reset 시점에 특정 위치로 이동시키고 싶을 때 사용하는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/Start Position]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
===Fail Safe===&lt;br /&gt;
*POSITION_NEW 가 일정 시간 동안 오지 않으면 특정 위치로 이동시키고 싶을 때 사용하는 기능입니다.&lt;br /&gt;
*시간과 위치를 각각 설정합니다.&lt;br /&gt;
*[[Ko/CanServo/Fail Safe]] 를 참조해 주십시오.&lt;br /&gt;
===Pause Stream===&lt;br /&gt;
*Stream 발신을 일시적으로 정지시키는 기능입니다. 이 상태는 저장되지 않으며, 서보 Reset 이 되면 정지는 풀립니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/Pause Stream]] 를 참조해 주십시오.&lt;br /&gt;
===Switch to Bootloader===&lt;br /&gt;
*FW 실행 중에 Bootloader 로 전환하는 기능입니다.&lt;br /&gt;
*Bootloader 에서 사용할 통신 속도, CAN ID 등을 지정할수 있습니다.&lt;br /&gt;
&lt;br /&gt;
*[[Ko/CanServo/Switch to Bootloader]] 를 참조해 주십시오.&lt;br /&gt;
&lt;br /&gt;
==기능별 구분==&lt;br /&gt;
===전류 측정 회로가 있는 경우===&lt;br /&gt;
*MD 시리즈 일부 (예: MD89), SG 시리즈, RB 시리즈, DB 시리즈는 전류 측정 회로가 있습니다.&lt;br /&gt;
&lt;br /&gt;
*실시간 측정한 전압과 전류를 이용하여 출력을 조절합니다.&lt;br /&gt;
===모터 온도 센서가 있는 경우===&lt;br /&gt;
*일부 모델에서는, 모터의 온도 데이터를 제공합니다.&lt;br /&gt;
*Host 에서 주기적으로 확인하여, 서보를 끄거나, 출력을 낮추어야 합니다.&lt;br /&gt;
===전압 상승 방지 회로가 있는 경우===&lt;br /&gt;
*특정 전압 이상이 되지 못하도록 제한해 주는 회로가 장착된 모델이 있습니다.&lt;br /&gt;
**예: SG50&lt;br /&gt;
&lt;br /&gt;
*서보는 동작 상황에 따라 발전이 되어 전압이 높아지는 경우가 있습니다.&lt;br /&gt;
**예: 감속 동작, 윈치 내리기&lt;br /&gt;
**이를 하드웨어적으로 방지해 주는 회로입니다.&lt;br /&gt;
**다만, 어느 한도가 넘어서면, 전자 퓨즈에 의해 회로가 꺼지면서 기능이 멈춥니다.&lt;br /&gt;
&lt;br /&gt;
*이 회로가 꺼지면 그 다음으로 Over Voltage Brake 기능이 고전압을 잡아줍니다.&lt;br /&gt;
&lt;br /&gt;
*SG50 의 경우에는 방지 회로가 1차로 막고, 2차로 Over Voltage Brake 기능이 막습니다.&lt;br /&gt;
===습도 센서가 있는 경우===&lt;br /&gt;
*습도 센서가 추가로 있는 모델이 있습니다.&lt;br /&gt;
**예: SG 시리즈 일부: SG33, SG50&lt;br /&gt;
*습도 센서는 서보 내부의 상대 습도와 온도 데이터를 제공합니다.&lt;br /&gt;
*Low Data 를 그대로 제공하므로, 공식에 따라 계산해야 합니다.&lt;br /&gt;
*주기적으로 데이터를 받아서, Host 에서 판단하여 서보를 끄거나, 동작을 제한해야 합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID1&amp;diff=83</id>
		<title>CanServo/ID1</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID1&amp;diff=83"/>
		<updated>2021-09-17T21:03:20Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/ID1 to CanServo/ID1 without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
서보를 구분하는 ID 입니다.&lt;br /&gt;
&lt;br /&gt;
* Register Address: 0x32&lt;br /&gt;
* 값의 범위는 [[Ko/CanServo/CAN_MODE]] 설정에 따라&lt;br /&gt;
** CAN 2.0A, 2.0B: 1 ~ 255&lt;br /&gt;
*** 이 값은 [[Ko/CanServo/Servo ID]] 로서 작동합니다.&lt;br /&gt;
** UAVCAN: 1 ~ 127&lt;br /&gt;
*** 이 값은 [[Ko/CanServo/Actuator ID]] 로서 작동합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/Fail_Safe&amp;diff=82</id>
		<title>CanServo/Fail Safe</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/Fail_Safe&amp;diff=82"/>
		<updated>2021-09-17T21:02:58Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/Fail Safe to CanServo/Fail Safe without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
POSITION_NEW 에 쓰는 메시지가 도착한후 일정 시간이 지나면 특정 위치로 이동시키는 기능입니다.&lt;br /&gt;
&lt;br /&gt;
* [[Ko/CanServo/Fail Safe/OnOff]]&lt;br /&gt;
* [[Ko/CanServo/Fail Safe/Time]]&lt;br /&gt;
* [[Ko/CanServo/Fail Safe/Position]]&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Version_Value&amp;diff=81</id>
		<title>CanServo/FW Version Value</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Version_Value&amp;diff=81"/>
		<updated>2021-09-17T21:02:35Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/FW Version Value to CanServo/FW Version Value without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Register 0xFC 와 0xFE 를 읽어보면 FW Version, Type, Bootloader 의 종류 등의 정보를 알수 있습니다.&lt;br /&gt;
&lt;br /&gt;
1. Register 0xFC, 0xFE 를 읽어서 각각 V, nV 에 보관합니다.&lt;br /&gt;
&lt;br /&gt;
* V = REG[0xFC]&lt;br /&gt;
* nV = REG[0xFE]&lt;br /&gt;
&lt;br /&gt;
2. V 가 nV 를 비트 반전 시킨 값과 같은지 확인합니다.&lt;br /&gt;
&lt;br /&gt;
만일 같지 않다면,&lt;br /&gt;
* 1.x 버전 입니다.&lt;br /&gt;
* Bootloader Type 은 알수 없습니다.&lt;br /&gt;
* 절차 끝입니다.&lt;br /&gt;
&lt;br /&gt;
3. 만일 같다면&lt;br /&gt;
&lt;br /&gt;
V 의 값을 분석합니다.&lt;br /&gt;
* Bit 15 가 1 이면, Bootloader Type 이 B1(OLD Bootloader) 인 것입니다.&lt;br /&gt;
** 0 이면, 신형(B2 또는 그 이후 버전)입니다.&lt;br /&gt;
* Bit 14:0 까지 0 ~ 32767 까지의 값에서 FW Version 을 알수 있습니다.&lt;br /&gt;
** 10 진수 5자리로 배치하여 aabbc 라고 하면&lt;br /&gt;
** 버전은 a.b(c) 가 됩니다.&lt;br /&gt;
*** 식으로 표시하면 Version = a x 1000 + b x 10 + c&lt;br /&gt;
&lt;br /&gt;
예를 들어&lt;br /&gt;
* 3052 = 3.5(2) = &amp;quot;1.5(2) /A&amp;quot;&lt;br /&gt;
* 11052 = 11.5(2) = &amp;quot;1.5(2) /C&amp;quot;&lt;br /&gt;
* 21052 = 21.5(2) = &amp;quot;1.5(2) /U&amp;quot;&lt;br /&gt;
* 2012 = 2.1(2) = &amp;quot;1.1(2) /U&amp;quot; --&amp;gt; 예외의 경우&lt;br /&gt;
** 이 버전은 첫 UAVCAN FW 로 예외 적인 경우 입니다.&lt;br /&gt;
** PC UI 2021_09_03 버전부터 1.1(2) [ OLD 2.1(2) ] 라고 표시합니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Type&amp;diff=80</id>
		<title>CanServo/FW Type</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/FW_Type&amp;diff=80"/>
		<updated>2021-09-17T21:02:16Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/FW Type to CanServo/FW Type without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CAN FW 는 지원하는 Protocol 종류에 따라, 3가지 종류가 있습니다.&lt;br /&gt;
* C Type = CAN ( 2.0A, 2.0B )&lt;br /&gt;
* U Type = UAVCAN&lt;br /&gt;
* A Type = CAN + UAVCAN ( 2.0A, 2.0B, UAVCAN )&lt;br /&gt;
&lt;br /&gt;
FW 파일의 버전 정보에서 FW 의 종류를 알수 있습니다.&lt;br /&gt;
* Ver 3.m(n) = A Type&lt;br /&gt;
* Ver 11.m(n) = C Type&lt;br /&gt;
* Ver 21.m(n) = U Type&lt;br /&gt;
&lt;br /&gt;
첫 자리 3, 11, 21 을 모두 1 로 바꾸면 됩니다.&lt;br /&gt;
* Ver 1.m(n) /A = Ver 3.m(n)&lt;br /&gt;
* Ver 1.m(n) /C = Ver 11.m(n)&lt;br /&gt;
* Ver 1.m(n) /U = Ver 21.m(n)&lt;br /&gt;
&lt;br /&gt;
이 규칙에 예외인 버전은 다음과 같습니다.&lt;br /&gt;
* 1.x = 1.1(2) [ OLD 2.1(2) ] 이전 버전 FW 입니다.&lt;br /&gt;
* 1.1(2) [ OLD 2.1(2) ]&lt;br /&gt;
** 첫 UAVCAN FW 2.1(2) 입니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CAN 서보의 Register 를 읽으면 FW Type 이 포함된 정보를 얻을수 있습니다.&lt;br /&gt;
* [[Ko/CanServo/FW Version Value]]&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/CAN&amp;diff=79</id>
		<title>CanServo/MODE/CAN</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/MODE/CAN&amp;diff=79"/>
		<updated>2021-09-17T21:01:57Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/CAN MODE to CanServo/CAN MODE without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CAN 서보는 CAN 2.0A, 2.0B 메시지를 수신할수 있습니다.&lt;br /&gt;
&lt;br /&gt;
어떤 패킷을 수신할 것인지 선택합니다.&lt;br /&gt;
&lt;br /&gt;
* 0 - CAN 2.0A&lt;br /&gt;
* 1 - CAN 2.0B&lt;br /&gt;
* 2 - UAVCAN&lt;br /&gt;
&lt;br /&gt;
[[Ko/CanServo/FW Type]] 에 따라 조금 바뀝니다.&lt;br /&gt;
* A FW Type 에서는 0,1,2 를 선택 할수 있습니다.&lt;br /&gt;
* C FW Type 에서는 0,1 을 선택 할수 있습니다. 2 를 선택하면 0 으로 작동합니다.&lt;br /&gt;
* U FW Type 에서는 이 설정값을 무시합니다.&lt;br /&gt;
** 단, FW Ver 1.1(2) [ OLD 2.1(2) ] 에서는 이 값이 강제로 2 로 바뀝니다.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CAN/%EA%B0%9C%EC%9A%94&amp;diff=78</id>
		<title>CAN/개요</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CAN/%EA%B0%9C%EC%9A%94&amp;diff=78"/>
		<updated>2021-09-17T21:01:28Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CAN/개요 to CAN/개요 without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
CAN 통신은 2개의 선을 사용하는 통신 방식입니다.&lt;br /&gt;
&lt;br /&gt;
전원과 분리되어 있고, 전압 차이로 인식하므로 안정적인 통신이 가능합니다.&lt;br /&gt;
&lt;br /&gt;
CAN 패킷은, 11 비트 혹은 29 비트인 CAN ID 와 최대 8 바이트의 CAN DATA, 기타 체크섬 비트 등으로 구성됩니다.&lt;br /&gt;
* CAN ID 가 11 비트 인 것이 CAN 2.0A Packet&lt;br /&gt;
* CAN ID 가 29 비트 인 것이 CAN 2.0B Packet&lt;br /&gt;
* CAN 2.0B 통신 칩은, CAN 2.0A Packet 과 CAN 2.0B Packet 을 발신/수신 할수 있습니다.&lt;br /&gt;
* CAN 2.0A 통신 칩은, CAN 2.0A Packet 을 발신/수신 할수 있습니다. CAN 2.0B Packet 은 발신 할수 없고, 수신시 무시합니다.&lt;br /&gt;
* CAN 2.0A 통신 칩과 CAN 2.0B 통신 칩은 같은 네트웍에서 동시에 사용 가능합니다.&lt;br /&gt;
&lt;br /&gt;
여러 개의 장치가 동시에 패킷을 발신하면서 서로 우선 순위를 따지면서 끝까지 발신되는 패킷이 다른 모든 장치에게 수신되는 방식입니다.&lt;br /&gt;
&lt;br /&gt;
각 장치가 자신이 발신하고자 하는 패킷들을 동시에 발신합니다.&lt;br /&gt;
CAN ID 의 각 비트의 값으로 우선 순위를 따지는데, 우선 순위가 낮은 패킷을 발신하는 장치가 발신을 포기하는 방식입니다.&lt;br /&gt;
CAN ID 상위 비트부터 하위 비트까지 순서대로 발신하는데, 비트가 0 인 패킷이 높은 우선 순위를 가집니다.&lt;br /&gt;
즉, 각 비트를 보내면서 동시에 확인하는 데 자신이 발신한 비트는 1 인데, 읽어보니 0 이라면, 자신이 우선 순위가 낮다는 것으로 인식하여 더 보내는 것을 포기합니다.&lt;br /&gt;
&lt;br /&gt;
통신 선로 구성은 메인 선(A)을 직선으로 그리고, 그 직선에서 각 장치까지 선(B)을 그립니다.&lt;br /&gt;
메인 선 A 의 길이 제한(LA), B 의 길이 제한 (LB) 등을 주의해야 합니다.&lt;br /&gt;
&lt;br /&gt;
A 의 양 끝단에는 종료 저항을 각각 120 옴씩 달아야 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
더 자세한 내용은 https://www.fescaro.com/ko/archives/249 페이지를 참조해 주십시오.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
	<entry>
		<id>http://support.hitecrcd.net:7700/index.php?title=CanServo/ID2&amp;diff=77</id>
		<title>CanServo/ID2</title>
		<link rel="alternate" type="text/html" href="http://support.hitecrcd.net:7700/index.php?title=CanServo/ID2&amp;diff=77"/>
		<updated>2021-09-17T21:00:57Z</updated>

		<summary type="html">&lt;p&gt;Adam: Adam moved page Ko/CanServo/ID2 to CanServo/ID2 without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
ID2 는 4 byte 값으로 Register 0x3E, 0x3C 를 묶어서 부릅니다.&lt;br /&gt;
* 0x3C - High 2 byte&lt;br /&gt;
* 0x3E - Low 2 byte&lt;br /&gt;
&lt;br /&gt;
CAN 2.0A, 2.0B 상태에서는 서보의 CAN ID 를 지정하며, UAVCAN 상태에서는 [[Ko/CanServo/Node ID]] 를 지정합니다.&lt;br /&gt;
* CAN 2.0A, 2.0B 에서의 패킷 수신 절차는 [[Ko/CanServo/Packet Accept Rule]] 을 참조해 주십시오.&lt;/div&gt;</summary>
		<author><name>Adam</name></author>
	</entry>
</feed>