페이지

글목록

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

2016년 12월 14일 수요일

[da1458x] 최신 SDK 내용은 다루지 않겠습니다.

da14583 최신 SDK로 dsps를 정리해 보려 했다가,

그냥 예전 버전의 dsps 프로그램을 사용하기로 했습니다.

이유는 제가 BLE를 처음 시작한 칩이 dialog 칩이었는데, 
특별히 좋은 점이 없었습니다.

작은 칩이여서 썼는데, otp 타입이고 외부 Flash를 추가하면 전체적으로 더 큽니다.
플레쉬 타입(da14583)은 5x5mm 로 노르딕 wlcsp 타입보다 큽니다.
또 보드어드레스도 따로 구입해서 집어 넣어야 하는데, 노르딕은 들어 있습니다.
아마도 다른 칩들은 다 들어 있는듯 합니다.

싸이프레스 psoc4도 괜찮은데, BLE-to-UART 정식 Profile이 없고 Custom Profile만 있으니,
부족한 부분이 좀 있는 것 같고...

계속해서 BLE를 사용한다면 그냥 노르딕 nrf51822 을 쓸 예정인데,
그것도 esp32 칩으로 BLE 를 뚫으면 안 쓸 예정입니다.

아마도 ESP32 가 Wireless 칩으로는 가성비가 갑인듯 합니다.
BLE 값에 Wifi도 같이 되고, 듀얼코어라서 CPU로도 사용할 수 있으니 말입니다.
단점은 제가 리눅스를 잘 몰라서 개발환경을 아직도 구축을 못하고 있네요.

얼른 환경 구축해서 사용해 봐야겠네요.

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 소스코드 첨부해 놓습니다. (링크)

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

요새 좀 바빠서, 좀 늦게 올리게 되었습니다.

Cypress BLE 모듈 중, PSOC 보다 가격이 좀 싼 IC이고, CY8CKIT-042_BLE 개발키트에 기본으로 포함된 USB 동글에 사용된 MCU PROC(CYBL10162-56LQXI)를 사용하여 BLE-to-UART 프로그램을 다뤄보겠습니다.

다음은 여기서 다룰 042-보드와 USB-to-BLE 동글 외형입니다.


042 키트에 BLE-to-UART 프로그램은 구글에서 찾은 PSOC-Creater 프로젝트 소스인데,
좀 오래전에 해 봐서 어떤 링크를 타고 들어가서 얻은 것인지는 확실히 모르겠습니다만
지금도 여기저기 있을 것 입니다. 나중에 글을 다 올리면서 프로젝트 코드 첨부해 놓겠습니다.

이 프로젝트 소스를 다운 받아서 손 댄 것은 거의 없는데, 수정한 부분은 다음과 같습니다.

1. Cypress 에서는 BLE-to-UART 프로파일이 없어서 누군가 Custom Profile로 만들어 놔서 그런지,
업데이트 하라는 메시지와함께 에러가 뜹니다. 

콤포넌트가 깨지고, 에러가 나네요.

2. 그래서 업데이트를 하면 되고, 



업데이트를 하면 다음과 같이 컴포넌트가 정상적인 아이콘으로 바뀌고, 컴파일 시 에러도 없어집니다.



3. Select Device 로 모듈에 사용된 MCU를 설정해서 컴파일하고 다운로드하면 끝입니다.


다음 글에서는,  BLE-042 kit(USB-to_BLE 동글과 같이 동작하는 스마트폰 앱이 없어서) 에서 동작하는 프로그램을 알아 보겠습니다.

프로젝트 링크

2016년 6월 28일 화요일

[PROC] Cypress BLE KIT인 CY8CKIT-042 BLE 테스트

다음번에는 Cypress BLE 키트인 CY8CKIT-042 BLE 로 SPP(Serial Port Profile) 테스트 내용을 올려보겠습니다.

SPP 는 예전에 블루투스 클래식에서 쓰던 프로파일이라고 하는데,
이름이야 상관없는데 회사마다 BLE-to-UART 프로파일을 부르는 말이 조금씩 차이가 있네요.

아뭏든, BLE<-->UART 기능은 다이얼로그의 DSPS나 노르딕이나 같습니다.

Cypress 의 BLE-to-UART 프로파일은 Cypress가 등록한 것이 없어서 Custom Profile로 누가 만들어 놨는지 모르지만,
인터넷에서 찾아서 테스트를 해 봤습니다.

동작은 잘 됩니다만, BLE-to-UART 앱이 없어서 BLE 모듈과 USB 동글을 사용하여 PC와 연결해서 테스트를 했습니다.

오늘은 다음에 다룰 내용만 잠깐 이야기 해 봤습니다.

이만 마치겠습니다.

2016년 6월 7일 화요일

[nordic BLE] PCA10028 내부 LCLK(32KHz)로 변경 방법

개발키트인 PCA10028 은 32KHz Crystal 이 회로에 내장되어 있지만,
프로차일드에서 판매하는 BLE 모듈인 PBLN51822 모듈에는 32KHz 크리스탈이 내장되어 있지 않습니다.

그래서 같은 프로그램을 PBLN51822 모듈에 다운로드했을 때,
아무 동작도 하지 않아서 노르딕 FA 에 문의를 해서 알게된 내용입니다.

다음의 main.c 파일에 있는 ble_stack_init()함수의 내용을 그 아래와 같이 변경해 주시면 됩니다.

static void ble_stack_init(void)
{
    uint32_t err_code;
   
    nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
   
    // Initialize the SoftDevice handler module.
    SOFTDEVICE_HANDLER_APPSH_INIT(&clock_lf_cfg, true);
   :
   :
}

아래와 같이 변경..

static void ble_stack_init(void)
{
    uint32_t err_code;
    
    //nrf_clock_lf_cfg_t clock_lf_cfg = NRF_CLOCK_LFCLKSRC;
    
    nrf_clock_lf_cfg_t clock_lf_cfg;
    
    clock_lf_cfg.source = NRF_CLOCK_LF_SRC_RC;
    clock_lf_cfg.rc_ctiv = 1;
    
    // Initialize the SoftDevice handler module.
    SOFTDEVICE_HANDLER_APPSH_INIT(&clock_lf_cfg, true);

   :
   :
}


[nordic BLE] PCA10028 BLE-to-UART(SPP)예제 20-Byte 구분 char 변경

nordic BLE 를 사용하면서 좀 이상한 점은,
APP 에서 20-Byte 이상은 한번에 전송되지 않는다는 점과 
20-Byte 마다 또는 전송이 끝날 때 마다 구분용 char('\n') UART RxD로 출력된다는 점입니다.

다이얼로그에서는 이런 현상이 없었는데, 좀 다른 점이 있네요.
제가 얼핏 보기로는 BLE 는 모두 20-Byte 단위로 전송이 이루어 지고 연속으로 보내지는 것 처럼 보이는 것은 APP에서
20 Byte 전송 데이터 사이마다 딜레이를 줘서 연속으로 전송되는 것 처럼 보이는 것이라 들었습니다.

확실히 모르는데, 앱 개발자가 한 말이고 제가 앱을 모르니까 그런가 보다 하고 있습니다. ^^

nRF51 디바이스에서 20-Bte 마다 또는 전송이 끝날 때마다 구분자를 출력하는 부분은 다음과 같이 정의되어 있습니다.
main.c 파일의 nus_data_handler 함수에서 처리합니다.


전송이 완료되면 '\n' 이 출력되도록 디폴트 설정이 되어 있는데,
일반적으로 아무것도 출력하지 않고 사용하더군요.

뭐, 취향에 맞게 다른 값으로 고치셔도 되고.. 
만약 아예 안나오도록 하려면 다음과 같이 주석처리를 하시면 됩니다.

static void nus_data_handler(ble_nus_t * p_nus, uint8_t * p_data, uint16_t length)
{
    for (uint32_t i = 0; i < length; i++)
    {
        while(app_uart_put(p_data[i]) != NRF_SUCCESS);
    }
    //while(app_uart_put('\n') != NRF_SUCCESS);
}

[nordic BLE] PCA10028 BLE-to-UART(SPP)예제 페어링 Time 변경

현재 SPP 프로젝트의 동작을 보면,
2초 간격으로 180초 동안 페어링을 하고 있습니다.

그리고 180초 이후에는 Sleep 모드로 빠져서 BLE 장치를 리셋하거나, 
WAKEUP 시키는 버튼을 눌러서 재시작하도록 되어 있습니다.

혹시, 중간에 sleep 모드로 빠져서 문제가 있는 경우 
1. Timeout 값을 조정하거나,
2. 필요할 때 마다 리셋 핀을 통해서 리셋을 하거나,
3. 입력핀에 wakeup 신호를 줘서 restart 하거나,
4. 아예 Timeout 시간을 없애서 계속 살아 있어서 페어링을 계속 진행하는 방법이 있습니다.

이 중에서 1,4번 은 같은 파라메터값을 조정해서 변경 가능합니다.
main.c 파일에서 APP_ADV_TIMEOUT_IN_SECONDS 값을 바꾸면 페어링 시간을 1초 단위로 조정할 수 있습니다.
그리고 값을 0으로 하면 sleep mode로 빠지지 않고 무한하게 페어링을 할 수 있습니다.

번 리셋 핀은 h/w 에서 리셋 핀을 ON/OFF 하거나 BLE 모듈의 전원을 ON/OFF 하면 됩니다.

3번 현재 개발키트의 버튼 4개 중에 1개인데, 기억이 안나네요. 찾아보면 메뉴얼이 있으니 필요한 분은 찾아보시길 바랍니다.

[nordic BLE] PCA10028 BLE-to-UART(SPP)예제 device name 변경

maiin.c 파일의 DEVICE_NAME 을 변경해 주면 됩니다.
(가장 짧은 게시글이 될 것 같네요 ^^)

[nordic BLE] PCA10028 BLE-to-UART(SPP)예제 Baudrate 변경

nRF51 SDK 의 예제 중에서 다음의 위치에서 Keil MDK 프로젝트 파일을 더블 클릭하면,
KEIL 컴파일러가 자동으로 실행됩니다.

[예제 위치]
..nRF5_SDK_11.0.0_89a8197\examples\ble_peripheral\ble_app_uart\pca10028\s130\arm5_no_packs

main.c 의 uart_init() 함수의 파라메터를 수정하면 UART 관련 설정을 조정할 수 있습니다.
보레이트를 다른 값으로 조정하려고 하면, nrf51_bitfields.h 파일에 정의되어 있는 여러가지 보레이트를 
uart_init 함수에서 파라메터를 바꿔 줌으로써 변경 가능합니다.

현재 default 설정으로 hw flow control이 설정되어 있는데, 위의 예제에서 저는 다음과 같이 수정해서 hw flow control 기능을 제거했습니다.

        //APP_UART_FLOW_CONTROL_ENABLED,
APP_UART_FLOW_CONTROL_DISABLED,


여러가지 변경해서 테스트 해 보시기 바랍니다.

[nordic BLE] PCA10028 개발키트 프로그램 다운로드 방법

1. Keil MDK 툴 최신 버전을 받아서 설치합니다.

2. nRF BLE 칩의 stack 과 프로그램을 다운로드 할 수 있는 툴인 nRFGO Studio 툴을 다운로드 받아서 설치합니다.
Complete 버전으로 설치합시다. 안그러면 PCA10028 개발툴의 연결 안 되는 경우가 있습니다.

3. nRF51 SDK 를 다운로드 합니다. 여기에 각종 예제 파일과 soft device(stack 개념) 및 soft device+예제파일이 컴파일된 HEX 파일등이 들어 있습니다.

4. PCA10028 개발키트와 PC를 USB 케이블로 연결합니다.

5. 프로그램을 다운로드 해서 동작 시키는 방법은 여러가지가 있습니다. 3가지 정도 말씀드려 보겠습니다.
(제가 해본 내용은 Soft device를 설치해야 하는 BLE 예제만 동작 시켜 봤습니다.)

5-1. 각 예제 중에서 1개를 선택해서, 내부 폴더를 열면
hex 폴더가 있고 그 안에 ~pca10028.hex 로 끝나는 softdevice 와 application 프로그램이 통합된 파일이 있습니다.
이 hex 파일을 드래그해서 PCA10028 개발키트에 드롭해 주면 프로그램이 들어가서 자동 리셋된 후에 실행 됩니다.
(최근의 segger 디버거의 기능인듯 한데, PC에 연결하면 USB 드라이브가 1개 생기는데 이 드라이브에 hex 파일을 copy 해서 paste 해주면 프로그램이 다운로드되는 기능이 생겼습니다.)

5-2. nRFGO Studio 툴로 프로그램하는 방법.
- nRFGO Studio를 실행하면 왼쪽 아래의 Device manager 에서 segger debugger 를 선택하면, nRF51422 이 표시되는지 확인합니다.



- 우측 위의 Program Softdevice를 선택합니다. 나머지 작업은 그림에 써져 있네요.


- Program Application 탭을 선택하고 Keil MDK 컴파일러에서 컴파일된 hex 파일을 선택합니다.
여기서 hex 파일은 5-1 의 hex 파일과 다릅니다. 5-1의 hex 파일은 softdevice 가 포함되어 있고, 5-2의 hex 파일은 softdevice 파일이 포함되어 있지 않습니다. 주의하시기 바랍니다.
나머지 과정은 그림 내에 포함되어 있네요.


이렇게 하면 자동으로 리셋 후, 프로그램이 동작합니다.


5-3. KEIL MDK 컴파일러에서 직접 application program만 다운로드하는 방법.
이 방법은 Softdevice 가 먼저 설치되어 있어야 합니다. 5-2 의 Program Softdevice 까지는 똑같이 nRFGo Studio로 진행해 주시기 바랍니다.
그리고 나서 NRF51 SDK 의 Keil 예제 BLE 프로젝트 파일을 열어서(아무 것도 건드리지 말고) 컴파일 해서 프로그램 버튼을 눌러 주면 Application 만 특정 영역에 Update 됩니다.

[Keil MDK ver5 프로젝트 파일 위치]

[다운로드 버튼 : 컴파일 한 후, 다운로드 버튼을 눌러 주세요]

2016년 5월 28일 토요일

[nordic BLE] PCA10028 BLE 개요

안녕하세요, 노르딕 개발키트인 PCA10028 공부를 시작합니다.

이 키트는 노르딕 BLE 칩인 nRF51422_xxAC 라는 ARM-Cortex-M0 로 되어 있습니다.
간단한 스펙을 말씀드리자면 다음과 같습니다.

  • Single chip, highly flexible, 2.4 GHz multi-protocol device
  • 32-bit ARM Cortex M0 CPU core
  • 256kB/128kB flash and 32kB/16KB RAM
  • Supports Bluetooth Smart protocol stacks
  • Thread safe and run-time protected
  • Event driven API
  • On air compatible with nRF24L series
  • 3 data rates (2Mbps/1Mbps/250kbps)
  • +4dBm output power
  • -93dBm sensitivity, Bluetooth Smart
  • PPI system for maximum power-efficient applications and code simplification
  • Flexible power management system with automatic power management of each peripheral
  • Configurable I/O mapping for analog and digital I/O


일반적으로 BLE IC는 FLASH 메모리나 OTP ROM의 용량이 많은데, 이 메모리의 대부분은 스택이라는 BLE 관련 처리 Library 함수들이 들어가더군요. 다이얼로그 BLE 칩도 대부분 메모리가 OTP ROM 에서 BLE stack이 차지합니다. 노르딕도 마찮가지로 100KB가량을 노르딕에서 제공하는 Soft Device 라고 부르는 BLE STACK이 차지합니다. 이 스택은 전용툴인 NRF Go STUDIO 로 프로그램해서 넣어주고, Application 프로그램은 다른 어드레스 영역에 프로그램해서 돌아갑니다.

Application 프로그램은 BLE 에서 32KByte 가 안되도 충분히 돌아가고도 남습니다. 왜냐하면 필요한 함수가 STACK에 라이브러리로 이미 들어있으니까, 필요한 함수를 호출해서 쓰면 되니까 메모리가 더 필요 없게 되는 원리입니다.

^^. KEIL 컴파일러는 ARM 칩은 32KBYTE를 무료로 상용 버전과 똑같이 동작하므로 BLE 칩 업체들이 KEIL 컴파일러를 많이 사용하는 것 같습니다.얼핏, 알기로는 IAR 컴파일러는 ARM CORTEX-M0 는 16KB 밖에 지원 안되도록 정책이 바뀐 것으로 들었는데, 만약 이것이 사실이라면 업체에서 "왠만하면 KEIL 컴파일러를 사용하라"는 말의 의유는 무료 컴파일 코드사이즈 때문인 것 같네요.

제가 다루려는 SW는 BLE Peripheral 중 BLE-to-UART 라는 보통 SPP(Serial Port Profile)로 부르는 부분만 다루려고 합니다.
KC 인증을 받은 제품으로 BLE를 외주 개발로 잠깐 하는 것이라, 현재 다니는 회사 일과 연결이 안되고 시간도 없어서 그런 것이니 양해 바랍니다.


그리고 PCA10028 키트는 다음과 같은 페어차일드에서 파는 PBLN51822 모듈을 동작시키기 전에 SW 동작 확인을 위해 쓰기위한 중간과정입니다.
다음 번에는 BLE 프로그램 하는 방법을  다뤄 보겠습니다.

2016년 4월 2일 토요일

[dialog] 긴 device Name을 사용하는 방법 (SPI 메모리 사용시)

이번에 DA14583 으로 제작한 DSPS BLE 모듈에 Device 이름과 MAC Address를 바꿀 상황이 생겨서 
프로그램을 수정하면서 알게된 내용입니다.

SPI Flash 나 JTAG Debug로 RAM에 프로그램을 하는 경우,
Device Name 과 MAC Address 를 수정하는 곳은 nvds.c 파일 입니다.

이 파일에서 다음과 같은 부분을 수정해 주면 됩니다.
const struct nvds_data_struct nvds_data_storage __attribute__((section("nvds_data_storage_area"))) 구조체의 내용인

 //   .NVDS_TAG_DEVICE_NAME                   = "DA1458x",
    .NVDS_TAG_DEVICE_NAME                   = "FiSi Signage",
 //   .NVDS_TAG_BD_ADDRESS                    = {0x01, 0x00, 0x00, 0xCA, 0xEA, 0x80},
    .NVDS_TAG_BD_ADDRESS                    = {0x01, 0x00, 0x00, 0x00, 0x34, 0x12}, // MAC Address 01
    .ADV_DATA_TAG_LEN                       = 27,
    .SCAN_RESP_DATA_TAG_LEN                 = 10,
//    .DEVICE_NAME_TAG_LEN                    = 7,
    .DEVICE_NAME_TAG_LEN                    = 12,

그런데, NVDS.C 파일에서 DEVICE NAME 수정 (길이를 늘렸는데 다 안나옴-8Byte만 나옴)

여기저기 인터넷을 찾아본 결과 (링크)
app_sps_device_project.h 파일에서 다음과 같이 바꿈

#define APP_DFLT_ADV_DATA        "\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"
#define APP_DFLT_ADV_DATA_LEN    (18)
을 다음과 같이 수정
#define APP_DFLT_ADV_DATA        "\x04\xFFHi!"
#define APP_DFLT_ADV_DATA_LEN    (5)

(위의 내용의 설명)
A BLE advertisement package can actually  carry 31bytes of payload in addition to the 6bytes Bluetooth Device Address - total of 37bytes.

In the DSPS implementation, 3 bytes are used for flags and 18 bytes are used for a unique service ID (includes one byte for length and one byte for type). This leaves 10bytes for the length of the name (1 byte), the data type of the name (1byte) and the name itself. As you can see this limits the name to 8bytes/characters.

But don't panic ;o)

You don't have to put a unique service ID in the advertising data. You can just go ahead and remove it. In app_sps_device_project.h change 
#define APP_DFLT_ADV_DATA        "\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07"
#define APP_DFLT_ADV_DATA_LEN    (18)
to
#define APP_DFLT_ADV_DATA        "\x04\xFFHi!"
#define APP_DFLT_ADV_DATA_LEN    (5)

This changes the advertised data to a manufacturer specific data set of the phrase "Hi!". And you can extend the Bluetooth Device name in NVDS like this:

2016년 3월 26일 토요일

[dialog] 생산라인툴(PLT:Product Line Tool) 소개

dialog 칩의 양산시 다운로드 툴인 PLT 를 소개합니다.

처음에, '이게 도대체 뭐하는 물건인고?' 생각 했는데 아주 괜찮은 툴인것 같습니다.
위 그림에서 10-PIN Header 가 16개 있는데, 이곳에 DA14xxx 제품을 연결해서 동시에 다운로드가 가능합니다.

이 10-PIN Header 에 연결되는 제품을 메뉴얼에서는 DUT(Device Under Test)라고 부릅니다.

핀 연결은 다음과 같습니다.
다이얼로그 툴인 Smartsnippets 를 써 보신분은 아시겠지만, 
JTAG가 없어도 UART로 SPI,I2C,OTP,RAM 에 프로그램이 가능합니다.

그와 마찬가지의 원리로 PLT는 USB to 16 x UART 와 몇 개의 GPIO 출력으로 다이얼로그 DA14xxx 제품에
프로그램을 다운로드 가능하고, X-TAL 의 Calibration , RF Verify 작업도 가능합니다.

추가적인 기능으로, 보드 어드레스의 시작 번지를 지정해주면 각 제품을 다운로드 할 때마다 어드레스가 
1씩 Count Up 되면서 구워집니다.

위의 그림에서 보시면 총 7개의 핀이 연결되는데, 
메뉴얼을 보면 XTAL Calibration Pulse 핀은 UART RX 핀으로 대체 가능하므로 총 6개의 핀만 있으면 됩니다.
또, OTP에 프로그램할 것이 아니라면 VPP 도 필요없죠.(5PIN?)

툴과 DUT의 핀연결표는 다음과 같습니다. 



그런데, UART TX/RX 는 특정 핀을 사용해야 하는지? 를 다이얼로그에 문의해 본 결과 
P0.4 (TXD),P0.5(RXD)로 사용해야 한답니다.

다음 그림이 SPI FLASH 메모리와 UART 핀을 같이 사용하는 회도도 예입니다.

다이얼로그사에 PLT 관련해서 메일로 문의했던 내용을 올려봅니다.

라인툴(PLT : Product Line Tool)을 아직 구입 전인데회로도를 라인툴과 연결할 것을 예상하여 설계하려고 합니다.
저희 회사에서는 현재 SPI 외부 메모리를 사용하는 DA14580 DSPS 프로파일을 사용하고 있고,
또 다른 용도의 장치에서는 DSPS의 프로그램을 조금 고쳐서 SPI FLASH 의 부팅시 쓰는 영역를 제외한안 쓰는 부분을 데이터 메모리로 사용도 하고 있습니다.

RX  MISO  같이 사용, CTS  MOSI  같이 사용. PLT(Product Line Tool) 사용하고자  ,
URX,UTX J1 헤더에 (외부 SPI FLASH  부팅하고, UART  사용하는 DSPS 회로도 #1) 같이 연결해서 SPI FLASH 또는 OTP  데이터를 Read/Write.

(예상 문제 : DA14580 F/W 동작할 외부 SPI FLASH 최초 부팅 이미지 로딩 기능 외에도 데이터메모리의 용도로 읽고 쓰는 경우 URX,CTS 쓰레기 데이터가 들어올  있다.)

따라서 다음과 같이 회로(외부 SPI FLASH  부팅하고, UART  사용하는 DSPS 회로도 #2) 연결하려고하는데,
아직 라인툴을 구입 전이라서 UTX,URX  포트를 이동해도 괜찮은지 묻고 싶습니다.
UART 부팅하는 경우는 없어서 P0.4,P0.5   맞춰서 연결할 필요는 없다고 생각이 듭니다.

부팅  데이터메모리용도의 SPI FLASH 메모리와 UART  사용하는 DA14580 DSPS 프로그램에 라인툴을 연결할 어떻게 최적의 포트 연결을 하는지 도움 요청 드립니다.



 한가지 질문 드립니다.

라인툴 매뉴얼을 보니 위의 연결 예제 회로가 있는데위의 4k7 풀다운 저항을 라인툴과 DUT (ex:DA14580 DSPS 장치)
연결을 해야하는 건가요?

또한밑의 Anti Ringing Solution  선택 사항인  같습니다만,
/아래 회로 예를   적용을 하자면 다음과 같이 DA14580  (DUT) 회로도 작성하면 될까요?

답변)
저희 Reference PLT (production line tool) 또는 EVK  통해 code download시에 특별하게 UART Rail  SPI rail 겹쳐 있으셔도 문제가되지 않으십니다.

1) UART I/F  통해 PLT  DA14580 통신시 SPI memory down (CS port low setting) 되어 High impedance 유지됨으로 Flash memory영향을 받지 않습니다.

2) 또한 DA14580 Flash memory 와의 I/F (Write or Read)  UART에는 영향을 받지 않습니다.  

3) DA14580 PLT  첨부파일에 적용된 회로도 대로 만들어 졌습니다현재 팀장님 회로도와 저희 Reference (DA14580+External flash memory) 회로도가 동일합니다.