본문 바로가기
Study/MAXIM 78M661X

4.1 UART Interface

by Answer Choi 2015. 2. 12.
반응형



4.1 UART Interface

 

78M6610+PSU는 SSI라 불리는 2가지 모드의 이진통신 프로토콜을 가지고 있는 바이트단위 주소 UART인터페이스를 제공합니다.


- 명령 응답모드(command response mode)

RS-485 트랜시버를 통해 직접적으로 제어하는 싱글및 멀티포인트 모드를 지원 합니다. 

이 모드는 4선식 RS-485 버스를 지원합니다.


- 자동보고모드 (auto report mode)

호스트(Host)의 개입이 없는 누적간격마다 데이터를 자동적으로 전달합니다. 

 

제공되는 설정은 38400baud, 8-bit, no-parity, 1 stop-bit, no flow control 입니다. 

SSB/DIR/SCL핀을 이용하여  RS-485트랜시버의 출력이나 방향핀으로 사용합니다.


 SSI프로토콜로 구현하면 Synchronization, addressing, payload, data integrity check시 이진 패킷을 사용합니다. 


응답 또한 acknowledge/error을 사용합니다.

 

78M6610+PSU의 SSI ID마다​ 디바이스 주소가 DevAddr레지스터[7:2]를 통해 설정되어 정의 됩니다.

어드레스 비트 0과 1은 ADDR1과 SPCK/ADDR0(24핀 패키지경우)핀을 통해 설정 됩니다. 


16핀 패키지의 경우 DevAddr레지스터는 [7:1]비트를 제공하며 ,비트 0은 SPCK/ADDR0을 통해 설정 됩니다.

 

4.1.1 Command-Response Protocol Description

 

이 프로토콜의 경우 호스트는 마스터로 통신을 시작해야 합니다. 


마스터는 통신할 디바이스를 선택하고, 디바이스의 주소포인터를 등록하고, 


읽기나 쓰기의 작업을 하면 됩니다. 작업 순서는 아래 그림과 같습니다.



동기헤더코드인 0xAA를 보내고 난후, 마스터는 payload의 바이트를 보내고


payload와 checksum을 보냅니다. 


BYTE 카운트는 전체 바이트 길이입니다. 


그리고 체크섬은 modulo-256방식 입니다. 마스터가 보내는 패킷은 아래 그림과 같습니다.

PAYLOAD는 command, device address, register address, data등이 될수 있습니다. 


payload는 싱글 커맨드나 멀티커맨드가 될 수 있습니다. 


싱글작업으로 읽기나 쓰기 명령시 최대 255바이트까지 가능합니다. 


아래는 읽기와 쓰기에 대하여 설명합니다. 


그리고 PAYLOAD만 표시를 하였습니다.

 

Device Selection

 

디바이스(78M6610+PSU)는 우선 아래의 명령으로 선택됩니다.

 

78M6610+PSU는 acknowledge 메세지를 응답합니다.


한번 디바이스가 선택되면 SSB/DIR/SCL핀은 high로 바뀌고 RS-485버스드라이버를 사용합니다. 


SSB/DIR/SCL핀은 디바이스가 선택이 해제될 때까지 high상태를 유지합니다.


Register Address Pointer Selection

 

아래의 메세지는 읽거나 쓰기위해 주소포인터를 등록하는 것입니다.

78M6610+PSU는 acknowledge 메세지를 응답합니다.

 

Read Command

 

0xE 명령어는 78M6610+PSU에서 DATA를 읽을 때 사용합니다. 


뒤에 숫자는 읽을 바이트의 숫자이며 0~15(0~F)바이트까지 넣을수 있습니다. 


예를들어 3바이트를 읽으려면 아래와 같이 하면 됩니다.

 

좀 더 큰바이트를 읽으려면(최대 255바이트) 0xE0 명령어를 사용해야 합니다. 


이 경우에 0xE0뒤에 읽을 바이트를 적어주면 됩니다. 


예를들어 31바이트를 읽으려면 아래와 같이 하면 됩니다.

 

Write Command


0xD명령어는 78M6610+PSU에서 쓰기 명령어 입니다. 


1~15바이트의 쓰기는 바이트 수를 적어주면 됩니다. 


예를 들어 3바이트 쓰기를 할 경우 아래와 같습니다.

마찬가지로 좀 더 큰 바이트를 쓸 수 있는데 (최대 255바이트) 이 때 0xD0명령어를 씁니다. 


이 경우 바이트수는  바이트 카운트에 따라 결정됩니다. 31바이트를 쓸 경우 아래와 같습니다.

읽기와 쓰기 작업후 내부 주소포인터는 이전에 했던 읽기나 쓰기 작업 다음으로 증가합니다. 


아래 표는 78M6610+PSU가 제공하는 명령어들입니다.


Slave Packets


78M6610+PSU는 호스트에게 acknowledge(ACK나 NACK)나 데이터를 응답합니다. 


슬레이브 패킷의 포맷은 마스터디바이스에 대한 응답의 형태(type)에 따라 달라집니다.


아래표는 응답코드와 의미입니다.


받은 데이터는 리틀에디안입니다.


4.1.2 Auto-Reported Data


기본적으로 78M6610+PSU는 각 누적되는 간격마다 자동으로 데이터를 보고하도록 설정합니다. 


이 모드는 호스트가 데이터를  78M6610+PSU에게 보내지 않을 뿐더러 


누적되는 간격으로 자동으로 업데이트 되는 데이터를 시스템에서 받아 사용합니다. 


아래 표는 기본적으로 제공되는 auto-report data입니다.



자동보고(auto-reported)데이터 패킷의 내용은 사용자가 설정할 수 있습니다. 


자동보고 패킷내용수정을 위해 자동보고의 사용을 해제해야합니다. 


자동보고사용해제의 패킷은 아래와 같습니다.

 

새로운 자동보고패킷을 설정하기 위해 새 시작주소(start address)와 새로운 길이를 넣어야 합니다.

예를들어 Line Voltage(0x1B), Current(0x1E), Active Power(0x21)만 자동보고하려면 아래와 같은 명령어가 필요합니다.


​이 명령어는 시작주소 0x1B로(Vrms) 자동보고 패킷을 설정합니다.


반응형

'Study > MAXIM 78M661X' 카테고리의 다른 글

4.3 I²C Interface  (0) 2015.02.12
4.2 SPI Interface  (0) 2015.02.12
4. Serial Interfaces  (0) 2015.02.12
3.8 Command Register  (0) 2015.02.12
3.7 Alarms and Alarms Configuration Registers  (0) 2015.02.12

인기글