초보의 아웅다웅 설계하기/Cypress_PSOC

Cypress-PSoc Designer - 모듈 설정하고 간단 프로그램 짜기 1

로망와니 2011. 10. 8. 09:41

Cypress 칩을 사용하면서 가장 좋았던 부분은 안에 모듈들이 들어있어 적은 핀이라도 원하는 패리패럴만을 골라서 넣을 수 있는 점이 매력이었고(넣을 수 있는 모듈수가 정해져 있어 타칩에 적은 패리패럴만을 쓸 수 있다는 점은 단점)원하는 핀에 매핑을 할 수 있어 아트웍이 쉽다는 점(물론 핀의 용도가 Fix된 것들도 있음.)과 드래그 앤 드롭으로 패리패럴을 구성하면 관련 함수들이 다 구현되어 나와 칩을 잘 몰라도 쉽게 구현 할 수 있다는 점이었습니다.(심지어는 LED 구동까지도....)
1. File -> New Project


2. 생성할 이름과 워크 시트이름을 넣고 저장할 장소를 선택합니다.


3. 사용할 칩을 선택합니다. 


4. 칩선택까지 끝내면 여타 칩을 사용하였던 사람들에겐 생소한 화면이 나옵니다.


5. 다른 칩들과 다르게 Cypress는 원하는 패리패럴을 직접 가져다 쓸 수 있게 되어있습니다.
저는 여기에서 UART와 정전용량 터치를 구현하기로 하겠습니다.
UART에서도 TX만 필요해서 봤더니 TX8이라는 모듈이 있습니다.
모듈을 끌어다 화면에 올리면 됩니다.


6. 모듈을 끌어다 화면에 올리면 그림과 같이 TX8이라는 모듈이 4개의 빈 모듈 중 1곳에 들어갑니다.
(모듈의 순서나 위치는 드래그 앤 드롭으로 옮길 수 있습니다.)


7. 다음으로 CSDADC라는 정전용량 센싱 모듈을 끌어다 올렸습니다.
(CSD를 써도 되고 CSD나 CSDADC에서도 몇가지 방식이 있는데 편한 방향으로 쓰시면 됩니다.)


8. 모듈 형식을 선택하고 나면 화면에 모듈이 올라옵니다.


9. 이제 원하는 모듈을 모두 선택했으니 핀 매핑을 해줍니다.
핀 연결할 곳에 가서 마우스 좌측 버튼을 눌러줍니다.


10. 연결할 열이 나오면 원하는 곳으로 선택해줍니다.(선택하는 열에 따라 매핑할 수 있는 포트가 다릅니다.)


11. 최종 핀에 연결될 라인도 같은 방식(마우스 좌측버튼)으로 핀과 연결해줍니다.




12. 핀의 풀업이나 풀다운 등을 구현할 때는 핀에서 마우스 좌측 버튼을 누르면 구성이 나오고 원하는 설정을 해주면됩니다.(여타 MCU에서 프로그램으로 하던 부분을 모두 여기서 설정할 수 있습니다.)


13. CSDADC의 핀매핑도 같은 방식으로 해줍니다.


14. 이제 감지되었는지 아닌 지를 LED로 확인하기 위해 LED 모듈을 올립니다.(처음엔 PRT0DR로 직접 제어를 했지만 LED 모듈까지 있는 것을 보고 감탄사 연발)


15. LED 모듈에 사용할 포트를 설정하고 Active 방식을 설정합니다.(아시겠지만 포트에서 직접 High, Low를 해주는 경우 Active High, Vcc 라인에서 LED를 통해 포트로 들어오는 경우 Active Low입니다.) 





16. 2번째 LED도 위와 같은 방식으로 설정하여 줍니다.


17. 하다보면 핀 번호를 잊어버리는 경우도 있는데 Cypress는 친절하게 핀아웃까지도 보여줍니다.
View -> Pinout Editer으로 시작되는 것을 선택하면 아래 그림과 같이 친절하게 인, 아웃인지까지도 나와줍니다. 



18. 이제 CSDADC에서 입력핀으로 사용할 포트를 설정하기 위해 CSD Wizard로 설정해줍니다.
우측 Workspace Explorer의 CSDADC(녹색)모듈에서 마우스 우측 버튼을 클릭하면 항목이 나옵니다.


19. 위저드 화면에서 Sliders는 사용하지 않으므로 Sliders의 숫자는 0으로 바꿨습니다.


20. 정전용량 터치 핀으로 사용할 핀에 우측 녹색으로 된 SW0을 드래그하여 원하는 핀에 놓아줍니다.
(우측내용에서 보시다시피 오렌지 색으로 된 핀에만 설정할 수 있습니다.)


21. 설정을 하고 나면 적색으로 변경되고 매핑된 핀의 이름이 나오게 됩니다.



22. 이제 프로그램을 짜기위해 소스 파일로 갑니다.
우측 Workspace Explorer에서 Source Files에서 main.c를 더블클릭해줍니다.




23. 프로그램 중 모듈들의 함수를 확인하기위해서는 우측 Workspace Explorer에서 Lib 내부의 헤더 파일을 참조하시면 됩니다.
모듈에 대한 모든 것들이 함수화 되어 있어서 MCU를 모르더라도 짤 수 있을 것 같아 보입니다.
(CSD 관련 모듈들은 노이즈 부분 관련 알고리즘까지 들어 있어서 여러모로 편했습니다. 초코렛 폰에 처음 적용되어 인기를 끌었던 Cypress지만 요즘은 여타칩들이 CSD관련 패리패럴이 없더라도 ADC 포트만 있으면 모두 정전용량 방식 터치 구현이 가능해져 매리트가 그다지 많지는 않아 보입니다. 거기다 단가도 동일 기능정도의 MCU가 1000원이하인데 비해 3000원의 가격은 너무 터무니 없이 비싼 견적이었습니다. 아무리 샘플이라고 하더라도요.)