사용자 도구

사이트 도구

English

cublocapp:an32003:index

AN32003 - EEPROM 연결 (93C46)

93C46 은 대표적인 저가격, 소용량 EEPROM입니다. (93C46은 1K, 93C56 은 2K, 두칩은 스팩은 같고, 용량만 차이가 있습니다.)

24LCxx시리즈는 I2C 접속으로 되어있는반면, 93Cxx는 SPI접속으로 되어 있습니다.

큐블록의 shirtout, shiftin 명령어를 이용해서 93c46을 억세스할 수 있습니다.

93C46 데이터 시트

결선

93c46 iocs = P16
93c46 iosk = P17
93c46 iodo = P18
93c46 iodi = P19

소스 프로그램

an32003.zip

Const Device = CB280
Dim dtin As Byte,dtout As Byte
Dim dtadr As Integer
Const iocs = 16
Const iosk = 17
Const iodo = 18
Const iodi = 19
 
Ramclear
Low iocs
Low iodo
Low iosk
Wait 100
 
' 93C46 : 8bit Mode
' EWEN 코멘드 전송, Erase/Write 허가, 파워온후 반드시 해야됨.
High iocs
Shiftout iosk,iodo,1,&h260,10
Low iocs
Wait 100
 
' 같은번지에 쓰고, 읽기
 
dtout = &h5a
Do
 High iocs
 Shiftout iosk,iodo,1,&h280 + dtadr,10   ' 어드레스
 Shiftout iosk,iodo,1,dtout,8   ' 데이터 WRITE
 Low iocs
 Wait 500
 
 High iocs
 Shiftout iosk,iodo,1,&h300 + dtadr,10   ' 어드레스
 dtin = Shiftin(iosk,iodi,1,8)   ' 데이터 READ
 Low iocs
 Wait 500
 Debug "Adr : ",Hex dtadr , " Write ", Hex dtout, " and Read ", Hex dtin,Cr
 Incr dtadr
 Incr dtout
Loop

원리 설명

Data In 핀과 Clock핀을 스코프로 찍어본 것입니다. 노란색이 clock핀입니다.

데이터 북에서 가장중요한 표가 아래 코멘드 테이블입니다. 위 예제는 ORG핀을 GND와 묶었기 때문에 8비트 (빨간박스부분)으로 동작합니다.

부연설명을 하자면, 93CXX는 3 비트의 코멘드와 7비트의 어드레스를 먼저 보내야 합니다. 그래서 위 소스를 보면 총 10비트를 보내고 있습니다. Write할때는 93CXX의 DI (입력)으로 데이터를 넣어주면 됩니다. 반대로 읽어낼때는 93CXX의 DO(출력)에서 데이터를 읽어오면 됩니다.

93CXX는 파워온시 쓰기금지 상태이기 때문에 반드시, EWEN 명령어를 먼저 실행시켜주어야, 그 뒤로부터 쓰기가 가능해 집니다. 이 코멘드를 날리지 않으면, 읽기만 가능한 상태입니다.

한가지 더 93CXX에 쓰기 명령을 날린 후에는 반드시 5mS 정도는 대기 상태로 두어야 Write가 안정적으로 수행됩니다.

한단계 뒤로가기

cublocapp/an32003/index.txt · 마지막으로 수정됨: 2017/10/16 00:06 저자 Comfile Technology