기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
이솝 보드는 아니지만 S3C2440 을 쓰는 보드에서
I2C와 I2S를 사용하려고 합니다.
이 두 통신 인터페이스를 통해서 코덱칩이 달린 보드를 컨트롤 하려 하는데요.
I2C통신이 안되는건 아닌데, I2S 인터페이스로 데이터(노래)를 넘기는 도중에
I2C를 사용하려고 하면 s3c2440-i2c s3c2440-i2c: cannot get bus (error -110) 이라는 메시지가 뜨면서
사용이 되지 않습니다.
S3C2440이 달린 보드를 재부팅해서 다시 하면 잘 되지만, 마찬가지로
I2S와 I2C를 동시에 사용하면 위와 같은 메시지가 출력되면서 I2C를 사용하지 못합니다.
혹시나 싶어서 I2C Frequency도 낮춰보고, 구글링해서 찾은 i2c-s3c2410.c 도 패치해 보고 하였지만 해결이 되지 않습니다.
아시는 고수님들 꼭 답변 부탁드릴께요.
커널 버젼은 2.6.17.13 입니다.
이걸로 근 한 달은 씨름한 것 같습니다.
씨름에서 이기게 도와주세요.
우와 대번 아시네요. Rebis2440 보드입니다.
채널을 바꾸라고 하셨는데, 슬레이브 주소를 바꾸라는 말씀이신가요?
그리고 I2S를 쓰는 것은 madplay 입니다. 이게 CPU를 많이 차지해서 I2C를 동작 못 시킬수도 있는 것인가요?
정철진님 고도리님 답변 정말 감사드립니다.
I2C 소스 파일 첨부하였습니다.
그리고 I2S 디버그 메시지를 찍어놓은 부분은 없습니다.
특이한 증상이네요......
I2C와 I2S를 예전에 동시에 써 봤을때는 큰 문제는 없었던 것으로 기억은 납니다만...
1. 일단 i2c 채널을 바꿔보시고요.
의심가는 부분은 한가지 정도인데, i2s를 쓰는 동안 cpu가 너무 바빠서 i2c를 동작 못시킨다 정도일 듯 합니다.
만일 한가지 더 의심한다면 i2c쪽 h/w 부분이 제대로 연결이 되었는지 pull up쪽을 좀 더 강하게 해 본다던지...등등입니다.
rebis2440 보드인 듯 싶긴 하네요...느낌이...커널 버전을 보니...