페이지

글목록

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

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년 3월 5일 토요일

[MSP430] CC430Fxxxx RF_kit(전자 손목시계) 구입

MSP430을  손 뗀지가 한참 오래됐는데,

다시 사용해 볼 기회가 왔네요.

이번에 RF Test 키트를 하나 구입했습니다.
이 RF 통신은 주파수 대역이 315/433/868/915 MHz ISM/SRD bands 에서 사용할 수 있습니다.

모델이 여러가지가 있는데, 구버전이 chronos Black 이라 하고, 
최근에 나온 버전이 chronos White 라고 합니다.
저는 구버전을 구입했는데, 이유는 Access point 가 좀 더 단순한 구조로 되어 있길래 구버전을 선택했습니다.


가격은 $58 입니다.

이 개발키트는 크게 3가지 제품으로 구성되어 있습니다.
1. 시계 (CC430F6137 + 3축 가속도 센서 + 온도센서 + LCD)
2. USB MSP430 DEBUGGER (MSP430F16x + TUSB3410UF)
3-1. Black Access Point (CC1111 : RF Transceiver + 8051 + USB 2.0)
3-2. White Access Point (CC1101 : RF Transceiver , MCU : MSP430F5509 + USB 2.0)

위에서 Access Point 구성품 블랙이 1 칩, 화이트는 2칩으로 되어 있습니다.
USB 2.0 포트가 없어서 화이트에서 CCMSP430F5137 를 사용하지 않은 것으로 판단 됩니다.
아마도 곧 USB 버전이 나오면 바뀔 것 같습니다.


아직 제품이 도착하지 않아서 메뉴얼만 읽어 보고, 사용 방법을 숙지해 봤습니다.
USB Debugger 는 그냥 USB 에 연결해서 사용하는 Programmer/Debugger 입니다.
실제로 서로 연결해서 사용하는 장치는 Access point 와 시계 입니다.
시계 모듈에 프로그램 다운로드하는 방법은 Access Point 에서 무선으로 데이터를 날려서 합니다.(Wireless Download)

오늘은 이정도로 마치겠습니다. 앞으로 해야할 것이 많으니, 그 때 다시 다루기로 하죠.