이글의 전부 또는 일부, 사진, 소스프로그램 등은 저작자의 동의 없이는 상업적인 사용을 금지합니다. 또한, 비상업적인 목적이라하더라도 출처를 밝히지 않고 게시하는 것은 금지합니다.


 

 

(2014.11.22.에 다음 블로그(http://blog.daum.net/microcontroller/13651138)에 적었던 글을 옮겨왔습니다.)

CNK HUD 내부를 들여다 보니까 ROM이 두 개 들어있습니다.

 

하나는 EN25F16-100HIP입니다.

이 제품은 flash rom으로 용량이 16 mega bit이나 됩니다.

MPU(PIC 18F67J10)과 SPI 통신하도록 회로가 구성되어 있습니다.

대강 프로그램 작성해서 읽어봤는데 아무 것도 기록되어 있지 않은 것 같습니다.

프로그램이 잘못된 것이 아니라면...

쓰지도 않는 이런 큰 용량의 flash rom을 왜 넣어 놨을까?

아마 폰트 같은 것을 만들어 넣을 예정이었는데 채 완성하지 못한 것일까?

하여간 앞으로 CNK HUD의 성능을 만들어 넣을 때에 font를 넣어 사용할까 합니다.

2 mega byte이니까, 한글이 가능하도록 16*16(32 byte) 폰트를 넣는 다면

64K개를 넣을 수 있을 것 같습니다.

 

또 하나의 ROM은 AT25C256B입니다.

이 것은 용량이 256 kilo bit(32 kilo byte)인 I2C serial EEPROM입니다.

아직 읽어 보지는 않았습니다만, 회로를 보니까 이해가 안 갑니다.

18F67J10는 SPI와 I2C가 가능한 MSSP가 두 개 있습니다.

이중에 MSSP1(18F67J10의 34,35,36번 핀)은 위에 언급한 ENS25F16-100HIP와 통신에 사용하고 있으니까

AT24C256B는 남아있는 MSSP2(18F67J10의 50, 51번 핀)을 이용해서 I2C 통신하면

프로그램하기가 간단했을 것 같은데 왜 굳이 RC0(30번 핀)과 RC1(29번핀)을 썼을까?

전원, 전화기, P 등의 스위치와 LED가 있는 터치 패널에는 CT1N07 칩을 사용했는데,

이것과의 통신도 I2C인데 역시 같은 핀 RC0와 RC1로 연결되어 있습니다.

18F67J10의 MSSP 기능을 이용하면 터치 패널에 입력이 있을 때에 인터럽트 걸리도록해서

프로그램할 수도 있겠는데...

RC0, RC1을 사용하면 입력을 감지하려면 polling하는 방법 밖에 없을텐데...

 

왜 I2C통신에 50, 51번 핀을 안 썼을까? 갸우뚱...

EN25F16-100HIP에는 무엇을 기록하려고 했을까?

AT24C256B에는 무엇을 기록해 놓았을까?

 

더 큰 의문...

밝기 조절을 하기위해서는 통상 Timer를 이용해서 PWM 제어하는데

이제품은 그냥 74HC42를 통해 PB0 - PB3로 제어하는 듯...

 

AVR은 좀 써봐서 익숙한데, PIC는 처음이라 생소하기는 하지만...

여러가지로 이해가 안 갑니다.

 

이주일간 회로 분석해 본 결과를 근거로 아는 범위 안에서 주저리주저리...

회로도는 중요한 부품만 가지고 대충 그려 봤는데 혹시 시비가 걸릴까봐 여기에 올리는 것은 꺼림직해서 안돌릴 예정입니다.

블로그 이미지

엠쿠스

Microprocessor(STM32, AVR)로 무엇인가를 만들어 보고자 학습 중입니다.

,