본문 바로가기

Hacked Brain/embeddedland.net

S3C2410 IIS

http://cafe.naver.com/robotall.cafe
21. IIS-BUS INTERFACE
OVERVIEW


현재, 많은 디지털 오디오 시스템들은 compact disc, 디지털 오디오 테이프, 디지털 사운드 프로세서, 그리고 디지털 TV 사운드 형태로 시장에서 고객들을 유혹하고 있다. S3C2410X Inter-IC Sound(IIS) 버스 인터페이스는 CODEC 인터페이스를 미니 디스크와 휴대용 어플리케이션에 쓰이는 외부 8/16 비트 스테레오 오디오 코덱으로 구현되는데 쓰일 수 있다. IIS 버스 인터페이스는 IIS 버스데이터 포멧과 MSB-justified 데이터 포맷 모두를 지원한다.
인터페이스는 인터럽트 대신에 FIFO 엑세스 하는데 쓰이는 DMA transfor 모드를 제공한다. 동시에 데이터를 보내고 받을 수 있을 뿐만 아니라 한번에 교대로 데이터를 보내고 받을 수 도 있다.


Figure 21-1. IIS-Bus Block Diagram
FUNCTIONAL DESCRIPTIONS
버스 인터페이스,레지스터 뱅크,그리고 스테이트 머신(BRFC): 버스 인터페이스 로직과 FIFO 엑세스는 스테이트 머신에 의해 제어된다.
5-bit 듀얼 프리스케일러(IPSR): 하나의 프리스케일러는 IIS 버스의 마스터 클럭 제너레이터로서 사용되고 다른 것들은 외부 CODEC 클럭 제너레이터로 사용된다.
64-byte FIFO (TxFIFO 와 RxFIFO): 데이터 전송에 있어서 , 데이터는 TxFIFO에 의해 쓰여 진다. 데이터 수신에서는 데이터는 RxFIFO로 부터 읽어진다.
마스터 IISCLK 제너레이터(SCLKG): 마스터 모드인 경우, 시리얼 비트 클럭은 마스터 클럭에서 발생된다.
채널 제너레이터와 스테이트 머신(CHNC): IISCLK와 IISLRCK는 체널 스테이트 머신에 의해서 제어된다.
16-bit 쉬프트 레지스터(SFTR): 패러렐 데이터는 송신 모드에서 시리얼 데이터 출력으로 이동되고,시리얼 데이터 입력은 수신 모드에서 패러랠 데이터로 이동된다.


TRANSMIT OR RECEIVE ONLY MODE
Normal Transfer
IIS 콘트롤 레지스터는 전송과 수신 FIFO를 위해 FIFO 레디 플래그 비트를 갖는다. FIFO가 데이터를 전송할 준비가 되었을 때,전송FIFO가 비워있지 않다면,FIFO 레디 플래그는 1로 셋팅된다.
만약 전송 FIFO가 비워져있다면, FIFO 레디 플래그는 0으로 셋팅 된다. 수신 FIFO가 가득 차지 않았을 때, 수신 FIFO용 FIFO 레디 플래그는 1로 셋팅 된다; FIFO가 데이터를 수신할 준비가 되었음을 의미한다. 만약 수신 FIFO가 가득 찼다면, FIFO 레디 플래그는 0으로 셋팅 된다. 이러한 플래그들은 CPU가 FIFO를 읽거나 쓰는 시간을 결정할 수 있다. 시리얼 데이타는 이러한 방법으로 CPU가 송신, 수신 FIFO를 접근하는 동안 송신되거나 수신될 수 있다.


DMA Transfer
이 모드에서 전송 또는 수신 FIFO는 DMA 콘트롤러에 의해 접근할 수 있다. 전송 또는 수신 모드에서 DMA 서비스 요청은 자동적으로 FIFO 레디 플래그에 의해 만들어진다.
Transmit and Receive Mode
이 모드에서, IIS 버스 인터페이스는 동시에 데이터를 송신과 수신을 할 수 있다.
AUDIO SERIAL INTERFACE FORMAT
IIS-BUS FORMAT
IIS 버스는 시리얼 데이터 입력(IISDI), 시리얼 데이터 출력(IISDO), 왼쪽/오른쪽 채널 셀렉트 (IISLRCK), 그리고 시리얼 비트 클럭(IISCLK)을 포함하는 4개의 라인을 갖는다; 디바이스 제너레이팅 IISLRCK와 IISCLK는 마스터이다.
시리얼 데이터는 MSB first를 갖는 2의 보수로 전송된다. 전송기와 수신기가 다른 워드 길이를 갖을 수 있기 때문에 MSB가 먼저 전송된다. 전송기가 수신기에서 얼마나 많은 비트들을 처리할 수 있는지 는 알 필요가 없고, 또한 수신기는 얼마나 많은 비트들이 전송되어지고 있는지 알 필요가 없다.
시스템 워드 길이가 전송 워드 길이 보다 길때, 워드는 데이터 전송을 위해 잘린다.(least significant data bit는 0으로 셋팅된다.). 만약 수신기가 본래의 워드 길이보다 길게 받았다면, LSB 다음의 비트들은 무시된다. 반면에, 수신기가 본래의 워드 길이보다 짧게 받았다면, 모자란 비트들은 0으로 셋팅된다.그러므로,MSB는 고정된 위치를 갖는 것이고, 반면에 LSB의 위치는 워드길이에 따라 변하는 것이다. IISLRCK가 변하는 동안은 항상 전송기가 1 클럭 기간에 다음 워드의 MSB를 전송한다. 전송기에 의해 전송된 시리얼 데이터는 trailing(HIGH에서 LOW로)이거나 또는 클록 시그널의 leading(LOW에서 HIGH) edge와 동기화 될 수 도 있다. 그러나 시리얼데이터는 시리얼 클럭의 leading edge에 수신기로 래치 되어져야만 한다. 그리고 leading edge와 동기화된 데이터를 전송할 때에는 몇 가지의 제약이 있다.
LR 채널 선택 라인은 전송되어지고 있는 채널을 가리킨다. IISLRCK는 시리얼 클럭의 trailing 또는 leading edge에서 변화 될 수 있다. 그러나 대칭적으로 될 필요는 없다. 슬레이브에서, 이러한 신호는 클럭 신호의 leading edge에서 래치된다. IISLRCK 라인은 MSB가 전송되기 전에 하나의 클럭 기간을 변화한다. 이것은 슬레이브 전송기가 전송하기 위해 셋팅 되어질 수 있는 시리얼 데이터의 동기화 타이밍을 얻게 한다. 더욱이 수신기가 이전의 워드를 저장하고 다음 워드의 입력을 클리어 하게 한다.


MSB (LEFT) JUSTIFIED
버스 포맷으로 정의된 왼쪽 부분(MSB)은 구조적으로 IIS 버스 포맷과 같은 형태이다. 단지, IIS 버스 형태와 다른 부분, MSB 정의된 포맷은 송신측이 IISLRCK가 변화할 때이면 언제나 다음 워드의 MSB를 보낸다는 것을 아는 것이다.
SAMPLING FREQUENCY AND MASTER CLOCK
마스터 클럭 주파수(MCLK)는 테이블 21-1에 서 보여 지는 것처럼 sampling 주파수에 의해 선택되어 질 수 있다. PCLK는 IIS 프리스케일러에 의해 만들어지기 때문에, 프리스케일러 값과 PCLK 타입 (256 또는 384fs)는 제대로 정해진다. 시리얼 비트 클럭 주파수 타입은(16/32/48f)는 테이블 21-2에 서 보여 지는 것처럼 채널 당 시리얼 비트와 PCLK에 의해 선택되어 질 수 있다.
IIS FIFO (IISFIFO) REGISTER
IIS 버스 인터페이스는 전송과 수신 모드에 쓰이는 두 개의 64-byte FIFO를 포함한다. 각각의 FIFO는 16-width 그리고 32-depth 형태를 갖고, 이것은 FIFO가 유용한 데이터의 크기에 관계없이 각각의 half word에 데이터를 처리할 수 있게 한다. 전송과 수신 FIFO access는 FIFO 엔트리를 통해 수행된다; FENTRY의 주소는 0x55000010이다

2007/11/02 - [임베디드/ARM] - S3C2410 카메라 인터페이스
2007/11/02 - [임베디드/ARM] - S3C2410 IIC-BUS INTERFACE2
2007/11/02 - [임베디드/ARM] - S3C2410 프로그래머의 모델
2007/11/02 - [임베디드/ARM] - S3C2410 개요