0> 개요
: 안드로이드 폰에 설치된 nRF Toolbox 앱을 NFC tag를 이용해 실행시키는 예제입니다.
1> 프로젝트위치
<InstallFolder>\examples\nfc\record_launch_app
2> 노르딕 다큐먼트
https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/nfc_record_launch_app.html
3> 테스트
▶ compile && program
▶ 스마트폰 NFC 설정
NFC 모드중 "기본모드" 일경우만 동작합니다.
▶ nrf52 보드에 연결된 안테나를 스마트폰 NFC 파트에 터치
--> 스마트폰에는 nRF Toolbox 앱이 실행이되고
nRF52 보드는 LED1 이 ON 됩니다.
< 상세분석>
nRF Toolbox 의 패키지명은" no.nordicsemi.android.nrftoolbox " 이고
record_launch_app 프로젝트의 main.c 에 다음과 같은 부분이 있습니다.
static const uint8_t m_android_package_name[] =
{'n', 'o', '.', 'n', 'o', 'r', 'd', 'i', 'c', 's',
'e', 'm', 'i', '.', 'a', 'n', 'd', 'r', 'o', 'i',
'd', '.', 'n', 'r', 'f', 't', 'o', 'o', 'l', 'b',
'o', 'x'};
main.c()
{
~~~~ 중략 ~~~~
nfc_t2t_setup(nfc_callback, NULL);
/* Encode launchapp message into buffer */
nfc_launchapp_msg_encode(m_android_package_name,
sizeof(m_android_package_name),
m_windows_application_id,
sizeof(m_windows_application_id),
m_ndef_msg_buf,
&len);
nfc_t2t_payload_set(m_ndef_msg_buf, len);
nfc_t2t_emulation_start();
}
▶ 안테나를 멀리할경우 LED1 OFF 확인하기
< 기타 >
▶ 빌드 로그
Building ‘nfc_launchapp_record_pca10040’
from solution ‘nfc_launchapp_record_pca10040’ in configuration ‘Release’
1> Assembling ‘thumb_crt0.s’
2> Compiling ‘nrf_log_backend_rtt.c’
3> Compiling ‘nrf_log_backend_serial.c’
4> Compiling ‘nrf_log_backend_uart.c’
5> Compiling ‘nrf_log_default_backends.c’
6> Compiling ‘nrf_log_frontend.c’
7> Compiling ‘nrf_log_str_formatter.c’
8> Compiling ‘boards.c’
1> Compiling ‘app_error.c’
2> Compiling ‘app_error_handler_gcc.c’
3> Compiling ‘app_error_weak.c’
5> Compiling ‘app_fifo.c’
7> Compiling ‘app_uart_fifo.c’
4> Compiling ‘app_util_platform.c’
8> Compiling ‘hardfault_handler_gcc.c’
1> Compiling ‘hardfault_implementation.c’
2> Compiling ‘nrf_assert.c’
6> Compiling ‘nrf_atomic.c’
3> Compiling ‘nrf_balloc.c’
8> Compiling ‘nrf_fprintf.c’
4> Compiling ‘nrf_fprintf_format.c’
5> Compiling ‘nrf_memobj.c’
7> Compiling ‘nrf_ringbuf.c’
2> Compiling ‘nrf_strerror.c’
1> Compiling ‘nrf_drv_clock.c’
6> Compiling ‘nrf_drv_uart.c’
8> Compiling ‘nrf_nvic.c’
3> Compiling ‘nrf_soc.c’
4> Compiling ‘nrfx_atomic.c’
5> Compiling ‘nrfx_clock.c’
7> Compiling ‘nrfx_nfct.c’
2> Compiling ‘nrfx_prs.c’
3> Compiling ‘nrfx_timer.c’
6> Compiling ‘nrfx_uart.c’
8> Compiling ‘nrfx_uarte.c’
4> Compiling ‘main.c’
1> Compiling ‘SEGGER_RTT.c’
2> Compiling ‘SEGGER_RTT_Syscalls_SES.c’
5> Compiling ‘SEGGER_RTT_printf.c’
7> Assembling ‘ses_startup_nrf52.s’
3> Assembling ‘ses_startup_nrf_common.s’
4> Compiling ‘system_nrf52.c’
7> Compiling ‘nfc_launchapp_msg.c’
8> Compiling ‘nfc_launchapp_rec.c’
6> Compiling ‘nfc_ndef_msg.c’
2> Compiling ‘nfc_ndef_record.c’
3> Compiling ‘nfc_platform.c’
1> Generating linker script ‘nfc_launchapp_record_pca10040.ld’
1> Linking nfc_launchapp_record_pca10040.elf
Build complete
▶ 시리얼 로그 메시지가 없어서 안나오나 Enable 상태입니다
: 아래설정중 COM 포트만 수정하면 됩니다. ( 115200 , 8 ,N ,1, N)
--> sdk_config.h 파일 확인내용
#ifndef NRF_LOG_BACKEND_UART_ENABLED
#define NRF_LOG_BACKEND_UART_ENABLED 1
#endif
// <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin
#ifndef NRF_LOG_BACKEND_UART_TX_PIN
#define NRF_LOG_BACKEND_UART_TX_PIN 6
#endif
// <o> NRF_LOG_BACKEND_UART_BAUDRATE - Default Baudrate
// <323584=> 1200 baud
// <643072=> 2400 baud
// <1290240=> 4800 baud
// <2576384=> 9600 baud
// <3862528=> 14400 baud
// <5152768=> 19200 baud
// <7716864=> 28800 baud
// <10289152=> 38400 baud
// <15400960=> 57600 baud
// <20615168=> 76800 baud
// <30801920=> 115200 baud
// <61865984=> 230400 baud
// <67108864=> 250000 baud
// <121634816=> 460800 baud
// <251658240=> 921600 baud
// <268435456=> 1000000 baud
#ifndef NRF_LOG_BACKEND_UART_BAUDRATE
#define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
#endif
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 1
#endif
다음코드를 메인함수에 추가하면 바로 확인 가능합니다.
NRF_LOG_INFO("%s:start",__func__);
▶ 전화기앱 실행하기 (갤럭시 폰 기준설명)
static const uint8_t m_android_package_name[] =
{'c', 'o', 'm', '.', 's', 'a', 'm', 's', 'u', 'n',
'g', '.','a', 'n', 'd', 'r', 'o', 'i','d', '.',
'd', 'i', 'a', 'l', 'e', 'r'};
▶ nRF Toolbox 패키지 이름 찾기
D:\> adb shell pm list package
package:kr.or.nhic
package:com.samsung.android.provider.filterprovider
~~~ 중략 ~~~~
package:no.nordicsemi.android.nrftoolbox
~~~ 중략 ~~~~
반응형
'Nordic_nRF52' 카테고리의 다른 글
[nRF52 ] gzll_ack_payload device 프로젝트 (0) | 2023.01.02 |
---|---|
[nRF52 ] gzll_ack_payload host 프로젝트 (0) | 2023.01.02 |
[nRF52 ] DFU serial 에러 메시지 (0) | 2022.07.21 |
[nRF52 ] ble_app_cscs 프로젝트 분석 (0) | 2022.06.30 |
[nRF52 ] ble_app_hrs_rscs_relay 프로젝트 분석 (0) | 2022.06.17 |