CC2541 8

CC2540 Disconnect the Connection Immediately

Central과 Peripheral간에 Connection을 해제 하기 위해서는 Terminate API를 사용하는데, 이것을 사용할경우엔 notify를 받아야지만 Connection이 해제 된다. 즉, 이제 더이상 너랑 붙어있기 싫다고 요청했으면 응답을 받은뒤에야 connection 상태를 해제 한다는 것이다. 그러나 사용하기에 따라서는 일방적으로 Connection을 해제 할고 싶을때가 있다.이때 사용하는 API가 바로 요거다. HCI_EXT_DisconnectImmedCmd( simpleBLEConnHandle ); 이 API는 notify없이 곧바로 disconnect가 된다. 그렇게 되면 문제는 다른 한쪽에서는 계속 connect 상태가 된다. 가령 Connect 상태에서 Central이 일방적..

개발/BLE 2016.07.01

CC2540 TX Power Control

CC2540의 TX 파워를 제어할수가 있다... 물론 파워를 제어하는 이유는 배터리를 좀더 오래쓰기 위함이다. 반면에 파워가 약하면 인식하는 거리가 짧아지는 것은 당연!!! 해당 API는 아래와 같다. HCI_EXT_SetTxPowerCmd(parameter); parameter에는 4가지 종류가 있다. 그외에는 의미가 없다는 TI 답변이다. 단 TX 파워는 Initial 과정에서 단 한번만 설정이 가능하다... 코드 상에서 마음데로 파워를 줄였다 늘렸다 할수 없다... 즉, initial과정에서 한번만 셋팅되면 프로그램 상에서 재 셋팅이 안된다는 말이다.

개발/BLE 2016.06.30

CC2540 Direct Connect

Central과 Peripheral간의 고유 어드레스를 알고 있으면 다른 디바이스들의 방해를 받지 않고 다이렉트로 컨넥트 할수 있다. 이는 주변의 많은 BLE 기기들이 존재할시에 유용하게 사용할수 있는 기능이다. 아래는 예제 코드와 참조 주소. 여기 uint8 desired_adv_event_type = GAP_ADTYPE_ADV_DIRECT_IND; uint8 desired_adv_direct_addr[] = { /* Central의 보드 어드레서 */ , LSB 0x3C, 0x2D, 0xB7, 0x85, 0xEE, 0xFE }; GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof( uint8 ), &desired_adv_event_type ); GAPRole..

개발/BLE 2016.06.30

CC2541 Sleep/Normal Mode Control API

CC2541 슬립및 노말 모드제어를 위해 사용되는 API 기본적인 DEV 소스 코드상에는 BLE 관련한 태스크 이벤트가 발생하지 않을경우최대 400ms 이후에는 강제로 슬립으로 들어간다. 따라서 400ms 이상 제어되는 일반 로직인경우 예를 들어 부저를 1초동안 울린다거나 등등의 기능을 수행할경우 400ms 이후에는 강제로 슬립이 진입되기 때문에 슬립진입을 막아야 한다. 방법은 아래 API를 사용하면됨. 1. 슬립진입 osal_pwrmgr_device( PWRMGR_BATTERY ) 2. 노말상태유지 osal_pwrmgr_device( PWRMGR_ALWAYS_ON );

개발/BLE 2016.06.29