페이지

글목록

2016년 10월 10일 월요일

[터치 키 IC] CY8CMBR31xx 소개(PSOC5 소스 포함)

안녕하세요. 계획에 없던 IC 소개 글을 쓰게 됐네요.

편집을 하다 보니 글이 꽤 깁니다. 값싸고 성능이 좋은 IC 라고 생각 되며, PSOC5 와 같이 테스트를 했습니다.
STM32 계열이나 다른 CPU와도 연결해서 써도 괜찮겠는데, 나중에 STM에 연결하게 되면 또 올리겠습니다.

편집하다 보니 시간이 너무 많이 들어가서 그림 위주로 올리겠습니다.

[참고한 자료 #1] - 링크

[참고한 자료 #2] - 링크






















이렇게 추가를 하면, host API 폴더에 있는 MBR31xx IC를 콘트롤 할 수 있는 함수들을 사용할 수 있는데, I2C 콤포넌트 이름이 틀리다고 에러가 날 것 입니다.

이 API 함수가 PSOC4와 연동해서  동작하도록 되어 있는데, PSOC5 와 이름만 틀리고 완전히 동일하게 쓰이니까, I2C 함수 이름만 맞게 바꿔 주면 에러가 없어집니다.

컴파일해서 프로그램을 넣으면, 동작이 안되네요.

디버그로 추적해서 보니까, 원인은 예제 프로젝트가 MBR3116 IC 로 되어있고,
제가 사용한 IC는 MBR3108 이어서 ID 비교 시에 오류가 나서 동작이 안됐습니다.

Host_API 폴더안의 CY8CMBR3xxx_Device.h 파일에서 다음과 같이 디바이스 이름을 수정해 주면 정상 동작합니다.


제가 첨부한 PSOC5 프로그램은 예제와는 약간 다릅니다.
인터럽트 방식을 사용하지 않았고, Proximity 센싱 대신에 버튼을 3개 센싱하는 프로그램 입니다.

LED 3개를 host에서 I2C로 제어 합니다. 

아쉬운 것이, Proximity Sense 와 Guard Sense 를 테스트 못해봤는데..
PSOC 과는 다르게 버튼을 공통으로 Proximity Sense 와 사용할 수 없었던 점을 미리 알지 못했네요. 
Proximity Sense 와 Guard Sense 는 핀이 정해져 있는 것이 좀 다르네요.

또 한가지 아쉬운 점은, 16원짜리 PWM회로 없는 부저를 1개 달았으면 터치키가 눌릴 때 마다 소리가 나서 눌렸다는 정보를 전달해 줄 수 있었는데, 뭐 하는 기능인지 최초 설계시에 잘 몰랐습니다. ㅜㅜ


이 칩을 사용하기 전에 PSOC5 나 PSOC4 에서 CAPSENSE 기능을 사용해 봤었는데,
PSOC에서 CAPSENSE 기능을 사용시에는 너무 반응속도가 늦었습니다. 버튼이 많아질 수록 반응 속도가 더 늦어 져서 거의 사용하기 싫을 정도(?) 였었는데.. 이유는 CAPSENSE 읽는 함수를 여러 번 실행해야 응답이 1번 오는데, 버튼이 더 많아질 수록 더 많이 CAPSENSE 읽는 함수를 실행해야 해서 그렇게 느려졌습니다.

제가 혹시 잘 못 사용하는 것은 아닌지, PSOC에서 CAPSENSE 읽는 속도를 개선하는 방법을 알고 계시는 분이 계시면 좀 알려 주십시요.

결론은, 이 칩(MBR31xxx)를 사용하면 그냥 I2C로 일반 택트 스위치 읽듯이 주기적으로 값을 읽으면 됩니다. 그리고 읽은 정보를 보고 LED 상태를 바꾸고 싶으면 I2C로 LED 상태 변경 명령을 보내면 됩니다. 속도도 전혀 느려지지 않습니다.

정말로, 앞으로 터치 센서를 사용할 경우에는 이 칩만 쓰고 싶습니다. ^^

아~~, 또 한가지 .. PSOC4,5 에서 CAPSENSE 를 연결할 경우 PSOC과 CAPSENSE PCB PAD 와는 거리가 짧아야 하고 센싱 입력 ADC 선을 메쉬 쉴드와 쿠퍼로 감싸줘야 합니다.
그래서 CPU 와 터치 센서와의 위치에 대해서 엄청난 고민을 해서 아트웍과 위치 선정에 어려움이 많았고, 거리도 멀게 배치할 수도 없었는데 이 칩(MBR31xx)가 모든 고민을 해결해 줬습니다.

거리가 멀어도 됩니다. I2C 통신 거리가 보통 1m 정도는 나오니까, PCB 어디에도 터치를 연결할 수 있겠습니다.

또 한가지 장점이 있네요. PSOC에서 CAPSENSE를 사용하려면 IDAC 가 1개 들어갑니다. 만약에 DAC를 사용해야 할 때, CAPSENSE 때문에 DAC가 부족하면 PSOC 중에서 DAC가 1개 더 많은 종류를 선택해야 하는데, 이 경우에 MBR31xx 보다 가격이 더 올라갑니다.
이런 경우 당해 보셨나요? 저는 당해 봤습니다. ^^

아.. 이번에도 참 좋은 IC를 알게 되고 사용해 봤습니다. 앞으로도 많이 사용하게 될 것 같습니다. 이 칩 간만에 본 명품입니다. ^^

가격은, 단돈 $0.76 @ 1k.







[테스트 동영상]


댓글 없음:

댓글 쓰기