TI의 Sub 1GHz Microprocessor인 CC1310를 소개합니다.
RF 테스트를 하려면 보드가 2개 있어야 해서 개발키트(CC1310 Launchpad)를 2개 구입했습니다.
키트는 디버거(XDS110) 와 CC1310(RF MCU)가 포함되어 있습니다.

TI 사이트에 가서 CCS 를 다운 받아서 설치하면 여러가지 예제 소스를 제공 받을 수 있다.
RF EasyLink Network Processor 라는 프로젝트는 RF 관련 기능을 대부분 테스트할 수 있는 양방향 AT Command 방식의 프로그램이다.
각각의 CC1310 런치패드 보드에, 이 프로젝트를 컴파일하여 디버그 버튼을 누르면 프로그램이 CC1310 MCU에 들어가서 동작을 한다.

CC1310 런치패드 보드는 USB 케이블을 연결하면, 2개의 UART 포트가 생기는데,
터미날 프로그램에서 시리얼 포트를 설정할 때, Application/User UART 에 연결한다.
UART 상세 설정은 다음과 같다.
1. Baud Rate : 115200 bps
2. Stop bit : 1
3. Data bit : 8-bit
4. Flow control : None

PC쪽 터미날의 시리얼 포트 설정은 다음과 같습니다.

터미널 설정은 다음과 같이 조정합니다. 수정한 부분은 줄바꿈 수신 설정만 CR+LF 로 변경했습니다.

rfEasyLinkNp_CC1310 프로젝트가 실행되면, 처음에 터미날로 다음과 같은 내용을 출력함. (리셋하고 동작 시작한다는 뜻)

이 AT Command 프로젝트는 기본으로 echo 동작을 합니다. (AT 명령으로 echo 없앨 수 있음)
다음은 터미널에 연결하여 장치 테스트 과정입니다.

다음은 파라메터 테스트 입니다.

다음은 이 프로그램에서 사용한 AT Command 명령어 리스트 입니다.
T Parameters
Parameters offer set and get functionality.
The format of a parameter read command to get the TxPower paramter is:
“ATP00?”
The response to a read will be of the format shown below, depending on the paramter it will be hex or decimal:
“-10”
The format of an AT command to set the Frequency Parameter to 868MHz is:
“ATPFR=868000000”
The response of a write will be of the format:
OK<CR>
The registers exposed for the EasyLink API are:
| Param | R/W | Description | Parameter(s) |
|=======|=====|==================================|============================|
| ST | R | Read The last EasyLink status | EasyLink status in 4B: |
| | | returned | hex<br> Success = 0000 |
| | | | Config_Error = 0001 |
| | | | Param_Error = 0002 |
| | | | Mem_Error = 0003 |
| | | | Cmd_Error = 0004 |
| | | | Tx_Error = 0005 |
| | | | Rx_Error = 0006 |
| | | | Rx_Timeout = 0007 |
| | | | Rx_Buffer_Error = 0008 |
| | | | Busy_Error = 0009 |
| | | | Aborted = 000a |
|-------|-----|----------------------------------|----------------------------|
| AE | R/W | UART Echo Enable | 0 or 1 to enable/disable |
| | | | echo |
|-------|-----|----------------------------------|----------------------------|
| FR | R/W | Read/Write frequency in kHz | Frequency in 1B hex |
|-------|-----|----------------------------------|----------------------------|
| PW | R/W | Read/Write tx power in dBm | Power in decimal between |
| | | | -10 to 14dBm. Note ccfg |
| | | | changes are required for |
| | | | 14dBm outpur power |
|-------|-----|----------------------------------|----------------------------|
| BM | R/W | Read/Write data mode for Tx/Rx | Mode in 1B hex 0:ASCII |
| | | data | 1:Binary |
|-------|-----|----------------------------------|----------------------------|
| IE | R | Read IEEE address | None |
|-------|-----|----------------------------------|----------------------------|
| AS | R | Read address size in Bytes | None |
|-------|-----|----------------------------------|----------------------------|
| TS | R/W | Read/Write Tx address | 1-8B Tx address in hex |
|-------|-----|----------------------------------|----------------------------|
| RT | R | Read current radio time | None |
|-------|-----|----------------------------------|----------------------------|
| TY | R/W | Read/Write Time Type | Time in 1B hex 0:Absolute |
| | | | Time 1:Relative Time |
|-------|-----|----------------------------------|----------------------------|
| TT | R/W | Absolute or relative (based on | Absolute/relative time in |
| | | Time Type) radio time to Tx a | units of 4MHz ticks in |
| | | packet | decimal OR 0 for immediate |
|-------|-----|----------------------------------|----------------------------|
| TR | R/W | Absolute or relative (based | Absolute/relative time in |
| | | on Time Type) radio time to Rx a | units of 4MHz ticks in |
| | | packet | decimal OR 0 for immediate |
|-------|-----|----------------------------------|----------------------------|
| RO | R/W | Relative time for Rx timeout | Relative time in units of |
| | | | 4MHz ticks in decimal OR 0 |
| | | | for never |
|-------|-----|----------------------------------|----------------------------|
| LA | R | Destination address of last Rx'ed| None |
| | | message | |
|-------|-----|----------------------------------|----------------------------|
| LT | R | Read absolute radio time of last | None |
| | | Rx'ed message | |
|-------|-----|----------------------------------|----------------------------|
| LR | R | Read RSSI of last Rx'ed message | None |
|-------|-----|----------------------------------|----------------------------|
| F0 | R/W | Read/Write address filter 0 | 1-8B address in hex |
|-------|-----|----------------------------------|----------------------------|
| F1 | R/W | Read/Write address filter 1 | 1-8B address in hex |
|-------|-----|----------------------------------|----------------------------|
| F2 | R/W | Read/Write address filter 2 | 1-8B address in hex |
|-------|-----|----------------------------------|----------------------------|
| TM | R/W | Read/Write test mode | Test mode in 1B hex |
| | | | 0:None/Cancel |
| | | | 1:Tone/Carrier Wave |
| | | | 2:Modulated Signal |
| | | | 3:PER Tx |
| | | | 4:PER Rx |
|-------|-----|----------------------------------|----------------------------|
| PI | R/W | Read/Write PER Tx Bursts Interval| 1B time between PER bursts |
| | | | in units of ms in Decimal |
|-------|-----|----------------------------------|----------------------------|
| PB | R/W | Read/Write PER Tx Burst Size | 1B Tx Burst Size in Hex |
|-------|-----|----------------------------------|----------------------------|
| PP | R/W | Read/Write Number of PER Tx/Rx | 1B Tx/Rx Packets in Hex |
| | | Packets | |
|-------|-----|----------------------------------|----------------------------|
| PL | R/W | Read/Write PER Tx/Rx Packet | 1B Tx/Rx Packet Length in |
| | | Length | Hex |
|-------|-----|----------------------------------|----------------------------|
|GM00-03| R/W | Read/Write GPIO Mode | 0:1 GPIO Value input/output|
|-------|-----|----------------------------------|----------------------------|
|GV00-03| R/W | Read/Write GPIO Value | 0:1 GPIO Value |
|-------|-----|----------------------------------|----------------------------|
AT Control Commands
The format of Control Commands are:
“AT+I 00”
The response will be similar to:
“OK”
The Commands exposed for the EasyLink AT API are:
| Command | Description | Parameter(s) |
|==========|====================================|=============================|
| i/I | Initialize the Radio | 00: For 50kbps 2-GFSK |
| | | 01: For 625bps Long Range |
| | | Mode |
| | | 02: For User defined from |
| | | SmartRF_Settings.c/h |
|----------|------------------------------------|-----------------------------|
| tx/TX | Send a message to Tx Address | x Data Bytes |
| | (PARAM PTA) at Tx Time (Param PTT) | |
| | or Immediate if 0 or expired | |
|----------|------------------------------------|-----------------------------|
| rx/RX | Turn on Radio to Receive Data at | None |
| | Rx Time set by Parameter `PRT` (or | |
| | Immediate if 0), with timeout set | |
| | by Parameter "PRO" | |
|----------|------------------------------------|-----------------------------|
| rs/RS | Reset the CC13xx | None |
|----------|------------------------------------|-----------------------------|
Command Responses
Response for Register Write and Control Commands are formatted as:
| Resonse | Description |
|================|============================================================|
| OK<CR> | Command or Register write successful |
|----------------|------------------------------------------------------------|
| Error 0001<CR> | Command or register read/write failed due to bad formatting|
|----------------|------------------------------------------------------------|
| Error 0002<CR> | Command or register read/write failed due to bad length |
|----------------|------------------------------------------------------------|
| Error 0003<CR> | Command or register write failed due to a parameter Error |
|----------------|------------------------------------------------------------|
| Error 0004<CR> | Command or register write failed due to a Memory Error |
|----------------|------------------------------------------------------------|
| Error 0005<CR> | Command or register write failed due to Error From |
| | EasyLink API (EasyLink error is stored in Parameter "ST") |
|----------------|------------------------------------------------------------|
The response to the “rx”"RX" (receive) Command is of the format:
The response to the “rs”"RX" (reset) Command is of format:
For ASCII Data Mode:
RESET:vxx.xx.xx<CR>
Where vxx.xx.xx is the version number of the EasyLink API
Test Modes
The EasyLink AT interface supports the following test modes:
- Carrier Wave
- Modulated Signal
- PER Tx
- PER Rx
Before running these commands you must first initialize the device using:
AT+I x<CR>
where x indicate the Phy settings used.
Carrier Wave:
This is enabled by Setting test mode to 1. To configure the Carrier Wave test mode use:
ATPTM=1<CR>
To exit the Carrier Wave test mode:
ATPTM=0<CR>
Modulated Signal:
This is enabled by Setting test mode to 2. To configure the Modulated Signal test mode use:
ATPTM=2<CR>
To exit the Modulated Signal test mode:
ATPTM=0<CR>