페이지

글목록

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

2016년 12월 15일 목요일

[CC1310/sub-1GHz] UART 흐름제어 설정

흐름제어 설정방법이 자세히 안 나와 있어서 직접 테스트를 해 봤습니다.

테스트를 진행한 프로젝트는 rfEasyLinkNp_cc1310 입니다.

설정방법은 간단합니다.


1. 만약 CTS,RTS 핀을 바꾸고 싶다면 CC1310_LAUNCHXL.h 파일에서 핀설정을 수정해 주시면 됩니다.
1
2
3
4
5
/* UART Board */
#define Board_UART_RX               IOID_2          /* RXD  */
#define Board_UART_TX               IOID_3          /* TXD  */
#define Board_UART_CTS              IOID_19         /* CTS  */
#define Board_UART_RTS              IOID_18         /* RTS */
cs



2. 그런 다음, CC1310_LAUNCHXL.c 의 BoardGpioInitTable[] 설정을
다음과 같이 수정하고..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const PIN_Config BoardGpioInitTable[] = {
    Board_RLED   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
    Board_GLED   | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,         /* LED initially off             */
    Board_BTN1   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,            /* Button is active low          */
    Board_BTN2   | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES | PIN_HYSTERESIS,            /* Button is active low          */
    Board_SPI_FLASH_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL | PIN_DRVSTR_MIN,  /* External flash chip select    */
    Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN,                                              /* UART RX via debugger back channel */
    Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL,                        /* UART TX via debugger back channel */
    Board_UART_CTS | PIN_INPUT_EN | PIN_PULLUP,
    Board_UART_RTS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
    //Board_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master out - slave in */
    //Board_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN,                                            /* SPI master in - slave out */
    //Board_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN,                                             /* SPI clock */
    PIN_TERMINATE
};
cs


3. CC1310_LAUNCHXL.c 의 uartCC26XXHWAttrs[CC1310_LAUNCHXL_UARTCOUNT] 의 내용 중,
.ctsPin 과 .rtsPin 설정을 수정합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* UART hardware parameter structure, also used to assign UART pins */
const UARTCC26XX_HWAttrsV1 uartCC26XXHWAttrs[CC1310_LAUNCHXL_UARTCOUNT] = {
    {
        .baseAddr       = UART0_BASE,
        .powerMngrId    = PowerCC26XX_PERIPH_UART0,
        .intNum         = INT_UART0_COMB,
        .intPriority    = ~0,
        .swiPriority    = 0,
        .txPin          = Board_UART_TX,
        .rxPin          = Board_UART_RX,
        .ctsPin         = Board_UART_CTS,    // PIN_UNASSIGNED -> Board_UART_CTS
        .rtsPin         = Board_UART_RTS    // PIN_UNASSIGNED -> Board_UART_RTS    
    }
};
cs


4. 빌드하고 다운로드하면 흐름제어 동작이 됩니다.

2016년 10월 31일 월요일

[CC1310/sub-1GHz] 보드에 직접 만들어서 테스트 해 봤습니다.

CC1310 을 사서 PCB에 꾸며서 , AT Command Application 을 넣고 테스트해 봤는데
아주 빠르고 좋았습니다. 

20ms 마다 18 바이트를 50번 보냈는데, 잘 전송되었고, 
10ms 마다 전송했는데, 멈추네요.(CC1310 문제인지, UART로 연결해 놓은 MCU 문제인지 아직 파악은 못했지만, 
일단 20ms 로 전송이 잘 되서, 그냥 원인은 알아보지 않고 프로젝트를 진행 할 예정입니다)

로라 모뎀을 일반용으로 쓸 때는, 2초에 1번씩 전송됐는데, CC1310은 거기에 비하면 엄청 빠른거죠.^^





2016년 10월 13일 목요일

국내 로라 모뎀 일반 용도로 사용기.

저희가 일반적인 용도로 쓰게 수정해 달라고 요청을 해서 받아서 써 봤습니다.

성능이 잘 나왔으면 업체를 소개해 드리고 사진도 올려보고 할 텐데,

너무 성능도 안나와서(송수신 시간이 너무 느리다) 그냥 글로만 쓰고 끝내려 합니다.

거리나 송수신 신뢰도는 괜찮았습니다. 
하지만 AT Command로 데이터를 보내면, 보냈다는 응답이 한 2초 정도 후에 수신이 되고,
2초 이전에 데이터를 다시 보내면 데이터가 제대로 안가거나 아예 송신이 안되는 경우가 있었습니다.

왜 이렇게 만들었나 싶을 정도로 송신 주기가 너무 길게 설정되어 있었고,
구조도 좀 복잡했습니다. 로라 Transceiver IC + ARM-Cortex-M0 로 2칩으로 구성되어 있습니다.

그에 비해 TI Simple-link CC1310 은 1-칩으로 되어 있고, 내부에 M3,M0 코어가 내장되어 있습니다.
크기도 가장 작은 패키지가 4x4 mm 이고,
데이터 송신 주기는 5ms 까지 테스트 해 봤는데 전혀 무리가 없었습니다.

로라 모듈은 모뎀 제작사가 프로그램을 잘 못 만들었거나 전송 주기를 줄일 수 있을텐데 조정을 안해서 나온것 같네요.

일단은 sub-1GHz RF 통신을 목적으로 사용하기에는 TI CC1310 이 더 낫다고 생각이 듭니다.


이건 선택이 틀렸을 뿐, 제품이 나쁜 것은 아닌것 같습니다. 

그냥 일반 FSK 용도로만 쓸 경우에는 CC1310 을 쓰는 것이 낫고. 

로라를 쓸 경우에는 로라 모뎀을 써야하는데 말입니다. ^^

[cc1310] Port 변경

개발키트에는 USB to UART 디버거 칩에 연결되어서 다른 MCU에 연결해서 테스트를 할 수가 없어서 
UART 포트를 옮겨봤습니다.




[cc1310] AT command 프로그램 용량 테스트

CC1310 은 핀 수와 Flash 메모리 용량에 따라서 여러가지 모델이 있다.

가능하면 작은 패키지와 가격이 싼 모델로 구현을 해 보려고 했는데,
결론을 미리 말씀 드리면 32K는 안되고 64K 모델부터 되네요.

가격이 $2.5 @ 1K (CC1310F32,32K) 에서 $2.9 @ 1K(CC1310F64, 64K)로 올라가서 
가격이 $0.4 올라가버렸네요. ㅜㅜ


먼저 CC1310 의 메모리가 개발키트에는 128KB로 되어 있으므로 32K,64K 로 바꿔 보겠습니다.






[결론]
AT Command 프로그램을 적용하려면, 32K 모델은 사용할 수가 없고 적당한 모델은 64K 모델인 것 같습니다.

[CC1310] cJTAG 로 디버깅 핀 수를 줄일 수 있습니다.

처음에 CC1310 32핀 IC를 쓰려고 하는데, JTAG로 설계하니 핀이 좀 많이 소비된다 싶어서
메뉴얼을 찾아보니 cJTAG라는 방식이 있었습니다.

자세한 설명은 메뉴얼을 보시고, 어떤 핀을 연결하는지와 실제로 동작하는지를 알아봤습니다.



2016년 8월 18일 목요일

장난감 구입 했습니다.

이번에 새로 구입한 장난감입니다. ^^

새로 산 장난감 목록은 다음과 같습니다.
1. STMicro 사에서 나온 레이저 거리 측정 센서와 3각 측량법 알고리즘을 구현하기위한 MCU 보드(STM32F401) 

2. TI 에서 새로 나온 Sub-1GHz 대역 주파수를 사용하는 RF 통신 MCU (CC1310 : Cortex-M3) 키트 2셋


3. 라즈베리파이 3