1월, 2017의 게시물 표시

CC2650 BLE 서비스 등록, READ, WRITE, NOTIFY 해보기

Ti에서 제공하는 BLE 스텍을 사용해서 통신하기 먼저 BLE 스텍에서 Profiles 그룹에 있는 서비스들을 이용하면 쉽게 구현할 수 있다. 서비스 API를 살펴보면서 하면 쉽게 할 수있다. 1. 먼저 static 함수들은 서비스파일에서만 사용할 수 있기때문에 그외의 파일에서 호출 할 수 없다. 따라서 2. 나머지 서비스 헤더 파일에 extern 되어 있는 함수들을 사용자 응용 파일에서 호출해서 사용하면된다. 예를 들면 서비스 등록, 콜벡 등록, 파라미터 수정, 읽기등이 해당된다. 3. 서비스 파일을 어떻게 설정하느냐에 따라서 서비스의 기능을 정할 수 있다.  Enabler Characteristic Properties에 해당되는 변수값을 설정하면 된다. 3가지 항목은 아래와 같다. -GATT_PROP_READ -GATT_PROP_WRITE -GATT_PROP_NOTIFY 이 외에도 여러가지가 있으니 gattservapp.h를 살펴보면 될것 가탇. 4. 서비스 등록에 관련된 내용은 아래와 같다. 사용자가 하고 싶은데로 설정하면 될것 같다. -Service attribute -Characteristic Properties -State Characteristic -Characteristic Configs -Characteristic User Description 이 외에도 여러가지가 있다. 5. Profile Attributes - Table을 통해서 프로파일의 구성을 설정할 수 있다. 6. readAttrCB 콜백함수를 통해서 Read로 들어오는 이벤트를 처리할 수 있다. 7. writeAttrCB 콜백함수를 통해서 Write로 들오는 이벤트를 처리할 수 있다. 8. AddService 함수를 통해서 사용자가 서비스를 등록할 수 있다. 9. SetParameter 함수는 사용자 코드에서 호출하여 파라미터를 설정해 놓을 수있다. 10. GetParameter 함수는 사용자 코드에서 변경된 파라미...

CC2650 UART 해보기

CC2650은 Coretex-M3로 ARM 구조를 따른다. 하지만 본인은 아직까지 ARM 구조를 다뤄본적이 없기 때문에 이번 기회를 통해서 제어 해보기로 한다. 기존해 해봤던 MSP430 이나 8051 구조에서는 각 핀이 할 수 있는일이 정해져있었다. 기본적으로 GPIO 제어는 대부분의 핀에서 할 수있었지만 해당핀의 고유 기능이 정해져있어서 고유 레이지스터를 통해서 정해진 핀을 사용할 수 있었다. 하지만 Coretex-M3에서는 모든 핀이 GPIO 뿐만아니라 사용자가 요구하는 기능을 수행 할 수 있다. 따라서 UART 통신을 구현할 때에도 정해진 핀이 없기 때문에 사용자가 먼저 핀에 대한 설정을 해줘야 한다. 이런 초반작업에 대한 내용을 사용자가 모두 알아야 되는 불편함 때문인지 아니면 사용자 편의 기능을 위해서인지 TI에서는 CC2650에 사용할 수 있는 TI-RTOS를 지원해준다. TI-RTOS를 사용하면 사용자는 간편하게 핀설정 뿐아니라 UART, I2C, PWM등 해당 칩이 지원하는 기능들을 손쉽게 사용할 수 있게 되어 있다. 어떻게 보면 내가 점점 더 TI칩을 사용하게 되는것이 이런 편의 기능을 계속 제공해주기 때문이라는 생각도 든다. 어쨌든 CC2650의 UART를 사용하기 위해서는 TI-RTOS에서 제공하는 API호출을 통해서 아래와 같이 사용할 수 있다. 핀설정은 아래와 같은 파일에서 확인 할 수 있다. *IOID에 대한 하드웨어 핀 확인은 datasheet를 보면 알 수 있다. #define Board_UART_RX                       IOID_12 #define Board_UART_TX                       IOID_4   먼저 사용하고자 하는 프로젝트에 사용할 ...