Total Phase 사의 Aardvark SPI/I2C Adapter 및 Control Center 로 Microchip 사의 PICkit Serial SPI Demo Board에 있는 25LC020A EEPROM의 데이터를 읽어오는 방법입니다.
앞서 포스팅한 Total Phase Flash Center Software 사용법의 경우 사용할 칩을 선택하면 해당 설정값들이 모두 자동으로 선택되기 때문에 신경쓸 일이 없었지만, Control Center는 직접 SPI 모드와 기타 설정값들, 통신을 위한 R/W Sequence를 확인하여 프로그램에 설정해 주어야 합니다.
1) SPI Mode
기본적으로 SPI를 이용하여 통신하기 위해서는 타겟 칩의 SPI Mode를 확인해야 합니다. 아래의 이미지로 설명을 대신합니다.
아래의 두 이미지는 읽기/쓰기 시퀀스를 보여주는 타이밍 차트 입니다. 아래 사진을 보면 SCK의 Rising Edge에서 샘플이 일어나며, SCK는 평상시 Low 상태인 것을 알 수 있습니다. 즉, SPI 모드는 0 이 됩니다.
2) Bit Order
SCK가 0 ~ 23 까지 24비트 (8 바이트)가 진행되는 동안 Instruction, Address, Data Byte는 Most Significant Bit(가장 큰 값을 가지는 비트) 가 가장 앞에 나오는 것을 알 수 있습니다. 따라서 MSB 1st가 됩니다.
3) SS Polarity
SS라인은 Slave Select 라인으로써, 칩의 타이밍 차트에서 보이는 /CS는 Active Low를 나타냅니다.
위의 1) ~ 3)에서 확인한 바를 Control Center에 설정하면 됩니다.
4) 프로그램 초기화면
5) Adapter -> Connect 클릭
6) 감지된 Aardvark I2C/SPI Host Adapter
7) 설정 완료
위의 1) ~ 3) 에 해당하는 사항을 설정합니다.
8) 싱글 바이트 읽기
데이터를 SPI를 통하여 읽기 위해서는 FIGURE 3-1 : READ SEQUENCE 타이밍 차트에서 보는 바와 같이 읽을 바이트 수 만큼 클럭을 생성하여 SPI Slave에 전송해 주어야 합니다. 그렇게 하기 위해서는 아래 그림에서 보이는 붉은색 사각형에 해당하는읽을 바이트 수 만큼의 더미 데이터를 전송하도록 MOSI Message를 만들어 준 후 전송하면 됩니다.
9) 멀티 바이트 읽기