'2009/04/01'에 해당되는 글 2건

MFC 유용한 기법

MFC 2009. 4. 1. 22:41
Posted by 응이

1)SPI 직렬통신

SPI(Serial Peripheral Interface)는 AVR ATmega128과 주변 장치 또는 동일한 AVR 계열 간의 고속 동기 통신용 모듈로 다음과 같은 특징이 있다.

- 전이중 방식으로 된 , 3선 동기 데이터 전송방식

- 마스터 및 슬레이브 동작

- LSB 또는 MSB 술서로 데이터 송신

- 3비트의 프리스케일 비트를 이용한 7개의 프로그램 비율 조정

- 전송 완료 인터럽트 플래그

- 쓰기 방지 플래그

- idle mode에서의 복귀

- 마스터 SPI 모드의 속도 2배기(doubler)

2)SPI 레지스터

AVR ATmega128의 SPI 모듈의 레지스터로는 SPCR,SPSR,SPDR 등이 있다.

- SPCR(SPI Control Register):SPI 모듈을 설정하고, 위상 및 마스터 등을 설정 하는데 사용한다.

Bit7 : SPIE(SPI Interrupt Enable)

- SPI 전송이 완료되어 SPIFqlxm가 1로 되면서 인터럽트가 발생하는 것을 개별적으로 활성화 한다.

Bit6 : SPE(SPI Enable)

- SPI 모듈을 활성화 한다. SPI를 사용하려면 1로 설정해야 한다.

Bit5 : DORD(Data Order)

- SPI가 데이터를 직렬로 전송하는 순서를 지정하는 비트로 1로 설정하면 LSB부터 전송하고 0으로 설정하면 MSB부터 전송 한다.

Bit4 : MSTR(Master/Slave Select)

- 1로 설정하면 SPI 모듈이 마스터로 동작하고 0으로 설정하면 슬레이브로 동작 한다.

Bit3 : CPOL(Clock Polarity)

- 데이터의 샘플링 동작이 수행되는 SCK 클럭 신호의 극성(Polarity)을 설정한다.

Bit2 : CPHA(Clock Phase)

- 데이터 샘플링 동작이 수행되는 SCK 클럭 신호의 위상(Phase)을 설정한다.

Bit1,0 : SPR1,SPR0(SPI Clock Rate Select 1,0)

-SPI가 마스터로 동작할 경우 SCK클럭 신호의 주파수를 결정한다.

- SPSR(SPI Satus Register) : SPI 모듈의 상태를 나타낸다.

Bit7 : SPIF(SPI Interrupt Flag)

- SPI 전송이 완료되면 1로 셋되어 인터럽트를 요청한다.

Bit6 : WCOL(Wrie Collision Flag)

- SPI가 데이터를 전송하고 있는 동안에 SPDRfp지스터에 새로운 값을 쓰려고 하면 1로셋된다. SPSR 레지스터를 읽고 나서 SPDR 레지스터를 액세스하면 SPIF와 WCOL비트는 0으로 클리어 된다.

Bit5~1 : 예약 비트

Bit0 : SPI2X(Double SPI Speed Bit)

- 1로 설정하면 SPI가 마스터로 동작할 때 SCK 클럭 신호의 주파수를 2배로 설정 된다.

- SPDR(SPI Data Register) : SPI가 송신할 데이터를 저장하거나 수신한 데이터를 저장한다.

Bit7~0 : SPI Data

- SPI가 송신할 데이터를 저장하거나 수신한 데이터를 저장한다. 즉, SPI 데이터 레지스터는 레지스터 파일과 SPI 시프트 레지스터 사이에서 데이터를 전송할 때 읽기/쓰기 레지스터로 사용한다. 쓰기는 레지스터를 초기화시키기 위한 데이터 전송이고, 읽기는 레지스터가 Shift Register가읽혀진 버퍼를 수신한 결과이다.

Posted by 응이
1

Dream come true.
응이

달력

태그목록