페이지

글목록

레이블이 Peripheral인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Peripheral인 게시물을 표시합니다. 모든 게시물 표시

2016년 7월 9일 토요일

[PROC] BLE-to-UART Peripheral (PROC BLE 042 KIT in 042-kit)

이전 게시물 [PROC] BLE-to-UART Central (PROC BLE Dongle in 042-kit) 에서 다룬 
BLE 모듈과 같이 동작하는 BLE-to-UART Peripheral 모듈을 알아보겠습니다.

싸이프레스의 BLE-to-UART 는 Central 과 Peripheral   H/W 가 특정한 장치에서만 구현되는 것은 아닙니다.

동글을 Peripheral 로 쓰고 042보드를 Central로 사용해도 됩니다. 기본 구조는 둘 다 동일한데,
제가 예제로 Central을 USB Dongle 장치로 사용하고 042보드를 Peripheral로 사용했을 뿐입니다.


나중에 컴파일할 때, Device select 에서 IC와 포트 설정만 맞춰주면 서로 역할을 바꿀 수 있습니다.
또한 PROC BLE가 아니라 PSOC BLE로도 단순히 Device만 바꾸면 BLE-to-UART 장치가 됩니다.

이전글에서 프로젝트를 열어서 콤포넌트 업데이트하는 과정은 다 똑같으니 다시 설명은 안해도 될 것 같습니다.

디바이스만 042 키트에 결합된 모듈의 MCU로 잘 설정하고 컴파일하면 끝이고,
Cetral 장치와 Peripheral 장치를 모두 전원을 인가하면 서도 자동으로 연결이 됩니다.



그런 다음에 디버거를 통해 USB-to-UART 로 PC와 연결하여 Terminal 프로그램을 각각 실행해서 데이터를 송수신하면 터미날에 송수신 캐릭터가 나타나는 것을 볼 수 있을 것 입니다.

BLE Peripheral 소스코드 첨부해 놓습니다. (링크)

2016년 1월 4일 월요일

[dialog] peripheral_examples (sys_tick + UART2 + GPIO_input + PWM)

BLE를 제외하고 Peripheral을 몇개 조합해서 프로그램을 테스트해 봤습니다.

16MHz 일반 CPU처럼 사용한 예죠.

제가 생각하기에는 BLE 칩인 DA14580을 BLE 통신으로만 사용하기엔 버리는 것이 많은데,
평소에 좀 다양하게 통신 외적인 것도 연습을 해 두는 것도 좋을 것 같았습니다.

필요할 때 찾아 프로그램을 하다 보면, 겨우 기능만 구현하고 코드도 엄청 지져분해 져서, 다시보면 머리속이 새하얘지도록 잊어버리는 경우가 많은 것 같습니다.


저는 아직까지, 프로젝트를 처음부터 새로 만드는 방법은 모르겠습니다. 그래서 systick 프로그램 원형에다 UART2,GPIO INPUT,PWM을 차례로 추가했습니다.

1. systick 예제는 원래 1초마다 GPIO를 인터럽트에 의해 Toggle 하는 프로그램인데, 50ms마다 인터럽트가 걸리고 50ms 인터럽트가 10번 걸릴때마다(500ms 마다) P1.1이 토클 되도록 프로그램했습니다.

2. UART2 로 GPIO INPUT으로 개발 키트의 스위치 2개의 입력을 받아서 입력 값을 터미날로 출력하도록 했습니다.

3. GPIO INPUT으로 받는 스위치 2개로 PWM을 변경하도록 했습니다.


여기서 하나, 좀 힘들었던 부분은 pwm.h 를 추가하는 방법을 몰라서 헤맸는데, 이것을 추가하는 방법은

1. Option for target 버튼을 누른 후,

2. C/C++ TAB 의 Include Path 버튼을 눌러 줍니다.

3. Folder Setup 메뉴의 New(Insert)를 눌러서 다음의 Path를 추가합니다.
..\..\..\..\..\..\sdk\platform\driver\pwm




이렇게 하니 PWM.h 파일이 왼쪽 main.c 밑에 나타나는군요. 그런 후에 컴파일하면 프로그램이 잘 돌아 갑니다.


예제 파일은 다음 링크에 압축해서 추가해 놓았습니다.

하드웨어 구성은 사진과 같습니다.



스위치를 누르면 PWM1,2가 대칭으로 누를 때마다 변경이 되어 출력됩니다.

PC의 터미날로 버튼을 누를때, 마다 키값과 현재 PWM 의 인덱스가 표시되도록 했습니다.