7 | | Open Source 802.15.4g |
8 | | Lowest Power |
9 | | Sub 1GHz |
10 | | 5.4 mA Radio RX current |
11 | | 13.4 mA Radio TX @ +10 dBm |
12 | | 24.4 mA Radio TX @ +14 dBm |
13 | | Longest Range |
14 | | Excellent Receiver Sensitivity –124 dBm Using Long-Range Mode, –110 dBm at 50 kbps (Sub-1 GHz), –87 dBm at Bluetooth low energy |
15 | | Programmable Output Power up to +14 dBm (Sub-1 GHz) and +9 dBm at 2.4 GHz (Bluetooth low energy) |
16 | | Small form factor (7x7mm chip size) |
17 | | Low Bandwidth applications - Sensor Data, etc |
18 | | Minimal interference - Narrow Bandwidth |
19 | | Can perform Sigfox TX if required, no RX |
| 8 | * Open Source 802.15.4g |
| 9 | * Lowest Power |
| 10 | * Sub 1GHz |
| 11 | * 5.4 mA Radio RX current |
| 12 | * 13.4 mA Radio TX @ +10 dBm |
| 13 | * 24.4 mA Radio TX @ +14 dBm |
| 14 | * Longest Range |
| 15 | * Excellent Receiver Sensitivity –124 dBm Using Long-Range Mode, –110 dBm at 50 kbps (Sub-1 GHz), –87 dBm at Bluetooth low energy |
| 16 | * Programmable Output Power up to +14 dBm (Sub-1 GHz) and +9 dBm at 2.4 GHz (Bluetooth low energy) |
| 17 | * Small form factor (7x7mm chip size) |
| 18 | * Low Bandwidth applications - Sensor Data, etc |
| 19 | * Minimal interference - Narrow Bandwidth |
| 20 | * Can perform Sigfox TX if required, no RX |
| 21 | |
22 | | Sub 1GHz (USA 915MHz) - Used for long distance communication |
23 | | Bluetooth 4.2 Low Energy (2.4GHz) - Used for programming sensor nodes |
24 | | For more information see the TI CC1350 Product Page. |
25 | | |
26 | | RF Network / Infrastructure |
27 | | |
28 | | The GW16122 / CC1350 operates on its own network. It does not rely on towers/networks installed by 3rd party companies (LoRa, Sigfox, Verizon, AT&T, etc). The entire network infrastructure is under control by the user. This includes sensors/nodes, collector(s), antennas and more. |
29 | | |
30 | | Network Architecture |
| 24 | * Sub 1GHz (USA 915MHz) - Used for long distance communication |
| 25 | * Bluetooth 4.2 Low Energy (2.4GHz) - Used for programming sensor nodes |
| 26 | |
| 27 | For more information see the [http://www.ti.com/product/CC1350 TI CC1350 Product Page]. |
| 28 | |
| 29 | == RF Network / Infrastructure == |
| 30 | |
| 31 | The GW16122 / CC1350 operates on its own network. It does not rely on towers/networks installed by 3rd party companies (!LoRa, Sigfox, Verizon, AT&T, etc). The entire network infrastructure is under control by the user. This includes sensors/nodes, collector(s), antennas and more. |
| 32 | |
| 33 | == Network Architecture == |
41 | | Glossary |
42 | | |
43 | | BLE - Bluetooth Low Engery |
44 | | BLE-ADV - Bluetooth Low Energy Advertising |
45 | | OAD - Over the Air Download |
46 | | 802.15.4 - IEEE standard defining the operation of low-rate wireless personal area networks (LR-WPANs). Definition includes the physical layer and media access control. Can be used with 6LoWPAN. The IEEE 802.15.4 standard is used as a data-link layer of many popular networking standards deployed in the market (6LoWPAN, Wi-SUN, ZigBee?®, Thread and WHART). It guarantees a solid wireless foundation thanks to features like air arbitration (through CSMA-CA), acknowledgments and retransmissions and built-in AES security. |
47 | | Frequency: North America: 902–928 MHz, up to 30 channels |
48 | | RTOS - Real Time Operating System |
49 | | 6LoWPAN - Low Power Personal Area Network, allowing for IPv6 packets. |
50 | | LRM - Long Range Mode |
51 | | PA/LNA - Power amplifier (PA) for increased output power, and a low-noise amplifier (LNA) with low noise figure for improved receiver sensitivity. This can be used with the Ti CC1190 RF Booster / Front End |
52 | | BLE Modes - advertising, scanning, master, slave. Read more here |
53 | | TI-RTOS - TI-RTOS kernel is a tailored version of the legacy SYS/BIOS kernel and operates as a real-time, preemptive, multi-threaded operating system with drivers, tools for synchronization and scheduling. |
54 | | TI-15.4 Stack - The TI 15.4-Stack is a software development kit (SDK) running on the SimpleLink?™ Sub-1 GHz CC1310 wireless microcontroller (MCU). Based on the proven IEEE 802.15.4 standard, it implements the 'g' amendment of the specification for operations in North America and Europe in the Sub-1 GHz band (regulated respectively by FCC and ETSI). |
55 | | LPWAN - Low‑Power Wide‑Area |
56 | | Contiki - Open Source Operating System |
57 | | GW16122 Development |
58 | | Much of the following information is taken from TI documentation which is licensed under CC BY NC ND 4.0. This wiki page aims to get users up and runnning with the GW16122 by collating relevant information contained by aforementioned TI sources along with our own annotations. |
| 44 | == Glossary == |
| 45 | |
| 46 | * BLE - Bluetooth Low Engery |
| 47 | * BLE-ADV - Bluetooth Low Energy Advertising |
| 48 | * OAD - Over the Air Download |
| 49 | * 802.15.4 - IEEE standard defining the operation of low-rate wireless personal area networks (LR-WPANs). Definition includes the physical layer and media access control. Can be used with 6LoWPAN. The IEEE 802.15.4 standard is used as a data-link layer of many popular networking standards deployed in the market (6LoWPAN, Wi-SUN, !ZigBee®, Thread and WHART). It guarantees a solid wireless foundation thanks to features like air arbitration (through CSMA-CA), acknowledgments and retransmissions and built-in AES security. |
| 50 | * Frequency: North America: 902–928 MHz, up to 30 channels |
| 51 | * RTOS - Real Time Operating System |
| 52 | * 6LoWPAN - Low Power Personal Area Network, allowing for IPv6 packets. |
| 53 | * LRM - Long Range Mode |
| 54 | * PA/LNA - Power amplifier (PA) for increased output power, and a low-noise amplifier (LNA) with low noise figure for improved receiver sensitivity. This can be used with the [http://www.ti.com/product/CC1190/toolssoftware Ti CC1190 RF Booster / Front End] |
| 55 | * BLE Modes - advertising, scanning, master, slave. Read more [http://www.eetimes.com/document.asp?doc_id=1278927 here] |
| 56 | * TI-RTOS - TI-RTOS kernel is a tailored version of the legacy SYS/BIOS kernel and operates as a real-time, preemptive, multi-threaded operating system with drivers, tools for synchronization and scheduling. |
| 57 | * TI-15.4 Stack - The TI 15.4-Stack is a software development kit (SDK) running on the !SimpleLink™ Sub-1 GHz CC1310 wireless microcontroller (MCU). Based on the proven IEEE 802.15.4 standard, it implements the 'g' amendment of the specification for operations in North America and Europe in the Sub-1 GHz band (regulated respectively by FCC and ETSI). |
| 58 | * LPWAN - Low‑Power Wide‑Area |
| 59 | * Contiki - Open Source Operating System |
| 60 | |
| 61 | = GW16122 Development = |
| 62 | Much of the following information is taken from TI documentation which is licensed under [http://creativecommons.org/licenses/by-nc-nd/4.0/ CC BY NC ND 4.0]. This wiki page aims to get users up and runnning with the GW16122 by collating relevant information contained by aforementioned TI sources along with our own annotations. |
73 | | Host Tools |
74 | | |
75 | | Development can be done on either a Windows or Linux x86 based machine. Various references to Mac OS exist for some tools but were untested by Gateworks. You will need to create a TI account through their registration page before downloading some of the software listed here. After creating an account you will still need to sign an agreement on each download indicating its intended use. |
76 | | |
77 | | JTAG USB dongle firmware for serial access and programming of Gateworks SBC (Direct download link) |
78 | | Remote terminal program, e.g. PuTTY for serial connection to Gateworks SBC |
79 | | Code Composer Studio which is an IDE maintained by TI with preinstalled tools and libraries for software development on TI MCU's (Direct download link) |
80 | | Don't forget to run the post install script ccsv7/install_scripts/install_drivers.sh |
81 | | The executable for the IDE is located at ccsv7/eclipse/ccstudio |
82 | | Simple Link CC13X0 SDK from TI's site is available on multiple platforms and contains prebuilt firmware images, example software, and documentation for working with the CC1350 |
83 | | SmartRF Flash Programmer for quickly installing prebuilt firmware without code composer studio and especially useful for quickly programming sensor nodes using a GUI (Windows only) |
84 | | OR |
85 | | |
86 | | Uniflash Programmer which is a linux compatible alternative that includes both a GUI and command line interfaces |
| 78 | === Host Tools === |
| 79 | |
| 80 | Development can be done on either a Windows or Linux x86 based machine. Various references to Mac OS exist for some tools but were untested by Gateworks. You will need to create a TI account through their [http://my.ti.com/ registration page] before downloading some of the software listed here. After creating an account you will still need to sign an agreement on each download indicating its intended use. |
| 81 | |
| 82 | 1. JTAG USB dongle firmware for serial access and programming of Gateworks SBC ([http://svn.gateworks.com/jtag/windows/CDM20814_Setup.exe Direct download link]) |
| 83 | 1. Remote terminal program, e.g. [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY] for serial connection to Gateworks SBC |
| 84 | 1. [http://www.ti.com/tool/CCSTUDIO Code Composer Studio] which is an IDE maintained by TI with preinstalled tools and libraries for software development on TI MCU's ([http://software-dl.ti.com/ccs/esd/CCSv7/CCS_7_3_0/exports/ccs_setup_7.3.0.00019.exe Direct download link]) |
| 85 | * Don't forget to run the post install script {{{ccsv7/install_scripts/install_drivers.sh}}} |
| 86 | * The executable for the IDE is located at {{{ccsv7/eclipse/ccstudio}}} |
| 87 | 1. [http://www.ti.com/tool/download/SIMPLELINK-CC13X0-SDK Simple Link CC13X0 SDK] from TI's site is available on multiple platforms and contains prebuilt firmware images, example software, and documentation for working with the CC1350 |
| 88 | 1. [http://www.ti.com/tool/flash-programmer SmartRF Flash Programmer] for quickly installing prebuilt firmware without code composer studio and especially useful for quickly programming sensor nodes using a GUI ('''Windows only''') |
| 89 | |
| 90 | '''OR''' |
| 91 | |
| 92 | [http://www.ti.com/tool/uniflash Uniflash Programmer] which is a linux compatible alternative that includes both a GUI and command line interfaces |
129 | | Gateworks SBC |
130 | | Ubuntu Xenial Gateworks Image |
131 | | node-js (if using web interface) |
132 | | serial program (if using serial api) |
133 | | GW16122 Mini-PCIe Card |
134 | | TiVa TM4C1294NCPDT MCU |
135 | | boot_loader.bin - TI boot loader firmware |
136 | | firmware.bin - XDS110 emulation firmware binary |
137 | | CC1350 MCU |
138 | | Co-Processor firmware (.out/.hex) - Either a prebuilt TI example or custom firmware designed with CCS |
| 145 | * Gateworks SBC |
| 146 | * Ubuntu Xenial Gateworks Image |
| 147 | * node-js (if using web interface) |
| 148 | * serial program (if using serial api) |
| 149 | * GW16122 Mini-PCIe Card |
| 150 | * !TiVa TM4C1294NCPDT MCU |
| 151 | * boot_loader.bin - TI boot loader firmware |
| 152 | * firmware.bin - XDS110 emulation firmware binary |
| 153 | * CC1350 MCU |
| 154 | * Co-Processor firmware (.out/.hex) - Either a prebuilt TI example or custom firmware designed with CCS |
| 155 | |
141 | | TI-RTOS RF driver |
142 | | |
143 | | The RF core has a dedicated driver called the TI-RTOS RF driver, which is used for all interaction with the RF core. If you do not wish to use the EasyLink abstraction layer, there is also the option to do simple packet RX/TX using the TI-RTOS RF driver directly. |
144 | | |
145 | | A reference for the example lab located in the TI resource center, see SimpleLink Academy lab Proprietary RF - Basic RX and TX. |
146 | | |
147 | | For more information, see the CC13X0 Proprietary RF User's Guide. |
148 | | |
149 | | EasyLink API |
150 | | |
151 | | EasyLink is a simple abstraction layer on top of the RF Driver and is intended as a starting point for customers creating a proprietary Sub1-GHz protocol or application. |
152 | | |
153 | | For more information see the EasyLink wiki page. |
154 | | |
155 | | TI 15.4-Stack |
| 158 | === TI-RTOS RF driver === |
| 159 | |
| 160 | The RF core has a dedicated driver called the TI-RTOS RF driver, which is used for all interaction with the RF core. If you do not wish to use the !EasyLink abstraction layer, there is also the option to do simple packet RX/TX using the TI-RTOS RF driver directly. |
| 161 | |
| 162 | A reference for the example lab located in the TI resource center, see [http://dev.ti.com/tirex/#/?link=Software%2FSimpleLink%20CC13x0%20SDK%2FSimpleLink%20Academy%2FLabs%2FProprietary%20RF%2FBasic%20RX%20and%20TX SimpleLink Academy lab Proprietary RF - Basic RX and TX]. |
| 163 | |
| 164 | For more information, see the [http://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_1_00_00_13/docs/proprietary-rf/html/rf-core/rf-driver.html CC13X0 Proprietary RF User's Guide]. |
| 165 | |
| 166 | === !EasyLink API === |
| 167 | |
| 168 | !EasyLink is a simple abstraction layer on top of the RF Driver and is intended as a starting point for customers creating a proprietary Sub1-GHz protocol or application. |
| 169 | |
| 170 | For more information see the [http://processors.wiki.ti.com/index.php/SimpleLink-EasyLink EasyLink wiki page]. |
| 171 | |
| 172 | === TI 15.4-Stack === |
217 | | Where vxx.xx.xx is the version number of the EasyLink API |
218 | | Command List |
219 | | |
220 | | The registers exposed for the EasyLink API are: |
221 | | |
222 | | Param R/W Description Parameter(s) |
223 | | ST R Read The last EasyLink status returned |
224 | | EasyLink status in 0x4B: |
225 | | |
226 | | hex<br> Success = 0000 |
227 | | Config_Error = 0001 |
228 | | Param_Error = 0002 |
229 | | Mem_Error = 0003 |
230 | | Cmd_Error = 0004 |
231 | | Tx_Error = 0005 |
232 | | Rx_Error = 0006 |
233 | | Rx_Timeout = 0007 |
234 | | Rx_Buffer_Error = 0008 |
235 | | Busy_Error = 0009 |
236 | | Aborted = 000a |
237 | | AE R/W UART Echo Enable 0 or 1 to enable/disable echo |
238 | | FR R/W Read/Write frequency in kHz Frequency in 0x1B |
239 | | PW R/W Read/Write tx power in dBm Power in decimal between -10 to 14dBm. Note cfg changes are required for 14dBm output power |
240 | | BM R/W Read/Write data mode for Tx/Rx data |
241 | | Mode in 0x1B |
| 248 | Where vxx.xx.xx is the version number of the !EasyLink API |
| 249 | }}} |
| 250 | |
| 251 | ==== Command List ==== |
| 252 | |
| 253 | The registers exposed for the !EasyLink API are: |
| 254 | |
| 255 | ||= Param =||= R/W =||= Description =||= Parameter(s) =|| |
| 256 | || ST || R || Read The last !EasyLink status returned |---------------- |
| 257 | {{{#!td |
| 258 | !EasyLink status in {{{0x4B}}}: |
| 259 | * hex<br> Success = 0000 |
| 260 | * Config_Error = 0001 |
| 261 | * Param_Error = 0002 |
| 262 | * Mem_Error = 0003 |
| 263 | * Cmd_Error = 0004 |
| 264 | * Tx_Error = 0005 |
| 265 | * Rx_Error = 0006 |
| 266 | * Rx_Timeout = 0007 |
| 267 | * Rx_Buffer_Error = 0008 |
| 268 | * Busy_Error = 0009 |
| 269 | * Aborted = 000a |
| 270 | }}} |
| 271 | |---------------- |
| 272 | || AE || R/W || UART Echo Enable || 0 or 1 to enable/disable echo || |
| 273 | || FR || R/W || !Read/Write frequency in kHz || Frequency in {{{0x1B}}} || |
| 274 | || PW || R/W || !Read/Write tx power in dBm || Power in decimal between -10 to 14dBm. Note cfg changes are required for 14dBm output power || |
| 275 | || BM || R/W || !Read/Write data mode for !Tx/Rx data |---------------- |
| 276 | {{{#!td |
| 277 | Mode in {{{0x1B}}} |
245 | | IE R Read IEEE address None |
246 | | AS R Read address size in Bytes None |
247 | | TS R/W Read/Write Tx address address 0x01-0x8B |
248 | | RT R Read current radio time None |
249 | | TY R/W Read/Write Time Type |
250 | | Time in 0x1B |
| 281 | }}} |
| 282 | |---------------- |
| 283 | || IE || R || Read IEEE address || None || |
| 284 | || AS || R || Read address size in Bytes || None || |
| 285 | || TS || R/W || !Read/Write Tx address || address {{{0x01}}}-{{{0x8B}}} || |
| 286 | || RT || R || Read current radio time || None || |
| 287 | || TY || R/W || !Read/Write Time Type |---------------- |
| 288 | {{{#!td |
| 289 | Time in {{{0x1B}}} |
254 | | TT R/W Absolute or relative (based on Time Type) radio time to Tx a packet Absolute/relative time in units of 4MHz ticks in decimal OR 0 for immediate |
255 | | TR R/W Absolute or relative (based on Time Type) radio time to Rx a packet Absolute/relative time in units of 4MHz ticks in decimal OR 0 for immediate |
256 | | RO R/W Relative time for Rx timeout Relative time in units of 4MHz ticks in decimal OR 0 for never |
257 | | LA R Destination address of last Rx'ed message None |
258 | | LT R Read absolute radio time of last Rx'ed message None |
259 | | LR R Read RSSI of last Rx'ed message None |
260 | | F0 R/W Read/Write address filter 0 address 0x01-0x8B |
261 | | F1 R/W Read/Write address filter 1 address 0x01-0x8B |
262 | | F2 R/W Read/Write address filter 2 address 0x01-0x8B |
263 | | TM R/W Read/Write test mode |
264 | | Test mode in 0x1B: |
265 | | |
266 | | 0:None/Cancel |
267 | | 1:Tone/Carrier Wave |
| 293 | }}} |
| 294 | |---------------- |
| 295 | || TT || R/W || Absolute or relative (based on Time Type) radio time to Tx a packet || Absolute/relative time in units of 4MHz ticks in decimal OR 0 for immediate || |
| 296 | || TR || R/W || Absolute or relative (based on Time Type) radio time to Rx a packet || Absolute/relative time in units of 4MHz ticks in decimal OR 0 for immediate || |
| 297 | || RO || R/W || Relative time for Rx timeout || Relative time in units of 4MHz ticks in decimal OR 0 for never || |
| 298 | || LA || R || Destination address of last Rx'ed message || None || |
| 299 | || LT || R || Read absolute radio time of last Rx'ed message || None || |
| 300 | || LR || R || Read RSSI of last Rx'ed message || None || |
| 301 | || F0 || R/W || !Read/Write address filter 0 || address {{{0x01}}}-{{{0x8B}}} || |
| 302 | || F1 || R/W || !Read/Write address filter 1 || address {{{0x01}}}-{{{0x8B}}} || |
| 303 | || F2 || R/W || !Read/Write address filter 2 || address {{{0x01}}}-{{{0x8B}}} || |
| 304 | || TM || R/W || !Read/Write test mode |---------------- |
| 305 | {{{#!td |
| 306 | Test mode in {{{0x1B}}}: |
| 307 | |
| 308 | 0:!None/Cancel |
| 309 | 1:!Tone/Carrier Wave |
271 | | PI R/W Read/Write PER Tx bursts interval 0x1B time between PER bursts in units of ms |
272 | | PB R/W Read/Write PER Tx burst size 0x1B Tx Burst Size in hex |
273 | | PP R/W Read/Write number of PER Tx/Rx packets 0x1B Tx/Rx Packets in hex |
274 | | PL R/W Read/Write PER Tx/Rx packet length 0x1B Tx/Rx Packet Length in hex |
275 | | GM00-03 R/W Read/Write GPIO Mode 0:1 GPIO Value input/output |
276 | | GV00-03 R/W Read/Write GPIO Value 0:1 GPIO Value |
| 313 | }}} |
| 314 | |---------------- |
| 315 | || PI || R/W || !Read/Write PER Tx bursts interval || {{{0x1B}}} time between PER bursts in units of ms || |
| 316 | || PB || R/W || !Read/Write PER Tx burst size || {{{0x1B}}} Tx Burst Size in hex || |
| 317 | || PP || R/W || !Read/Write number of PER !Tx/Rx packets || {{{0x1B}}} !Tx/Rx Packets in hex || |
| 318 | || PL || R/W || !Read/Write PER !Tx/Rx packet length || {{{0x1B}}} !Tx/Rx Packet Length in hex || |
| 319 | || GM00-03 || R/W || !Read/Write GPIO Mode || 0:1 GPIO Value input/output || |
| 320 | || GV00-03 || R/W || !Read/Write GPIO Value || 0:1 GPIO Value || |
| 321 | |
279 | | Response Description |
280 | | OK<CR> Command or Register write successful |
281 | | Error 0001<CR> Command or register read/write failed due to bad formatting |
282 | | Error 0002<CR> Command or register read/write failed due to bad length |
283 | | Error 0003<CR> Command or register write failed due to a parameter Error |
284 | | Error 0004<CR> Command or register write failed due to a Memory Error |
285 | | Error 0005<CR> Command or register write failed due to Error From EasyLink API (EasyLink error is stored in Parameter "ST") |
| 324 | ||= Response =||= Description =|| |
| 325 | || OK<CR> || Command or Register write successful || |
| 326 | || Error 0001<CR> || Command or register read/write failed due to bad formatting || |
| 327 | || Error 0002<CR> || Command or register read/write failed due to bad length || |
| 328 | || Error 0003<CR> || Command or register write failed due to a parameter Error || |
| 329 | || Error 0004<CR> || Command or register write failed due to a Memory Error || |
| 330 | || Error 0005<CR> || Command or register write failed due to Error From !EasyLink API (!EasyLink error is stored in Parameter "ST") || |
| 331 | |
288 | | For further documentation on this serial implementation see the official TI wiki page. |
289 | | |
290 | | General Notes |
291 | | |
292 | | The XDS110 USB debugger referenced by material related to the CC1350 or in CCS is equivalent to the TiVa chip that's on the GW16122 |
293 | | Make sure the GW16122 is properly into the miniPcie->USB adapter board otherwise it will come up as a usb device but fail to be recognized by the code composer software. You can check if its connected properly by opening the .ccxml file under the projects targetConfigs folder and hitting the "test connection" button. If multiple boards are connected at once you will need to specify them by serial number. |
294 | | The US frequency allows for a total of 129 channels to choose from, defined in CONFIG_CHANNEL_MASK |
295 | | You can prevent conflicts of sensor networks by either limiting the channels enabled on each collector/sensor, or by setting the PAN-ID to match on the devices belonging to each network. |
296 | | Beware of adding too many channels to your channel mask, for example, adding all of them took well over 20 minutes to complete the channel selection cycle and bring up the network. |
297 | | Line of sight is extremely significant. Depending on the material, a few obstacles can drastically reduce your maximum range. |
298 | | General RF information and specific information regarding antenna choice and performance can be found in this app note. |
299 | | Programming the Tiva MCU |
300 | | |
301 | | In the event of an unprogrammed or corrupted TiVa MCU, you can flash firmware via USB connection. For the GW16122 this is done via a mini-PCIe to USB converter such as our GW16115. |
302 | | |
303 | | You will need to have installed the software detailed in the Set Up section in order to continue. |
304 | | |
305 | | Since the TiVa MCU functions as an XDS110 debug probe for the GW16122, you can use the default firmware included in the Code Composer Studio installation directory. |
306 | | |
307 | | To flash the bootloader and/or firmware via USB: |
308 | | |
309 | | Navigate to your Code Composer installation directory |
310 | | Enter the XDS110 folder in ccs |
| 334 | For further documentation on this serial implementation see the official [http://processors.wiki.ti.com/index.php/SimpleLink-EasyLink#rfEasyLinkNp_AT_Network_Processor_Example TI wiki page]. |
| 335 | |
| 336 | === General Notes === |
| 337 | |
| 338 | * The XDS110 USB debugger referenced by material related to the CC1350 or in CCS is equivalent to the !TiVa chip that's on the GW16122 |
| 339 | * Make sure the GW16122 is properly into the miniPcie->USB adapter board otherwise it will come up as a usb device but fail to be recognized by the code composer software. You can check if its connected properly by opening the {{{.ccxml}}} file under the projects targetConfigs folder and hitting the "test connection" button. If multiple boards are connected at once you will * need to specify them by serial number. |
| 340 | * The US frequency allows for a total of 129 channels to choose from, defined in {{{CONFIG_CHANNEL_MASK}}} |
| 341 | You can prevent conflicts of sensor networks by either limiting the channels enabled on each collector/sensor, or by setting the PAN-ID to match on the devices belonging to each * network. |
| 342 | * Beware of adding too many channels to your channel mask, for example, adding all of them took well over 20 minutes to complete the channel selection cycle and bring up the network. |
| 343 | * Line of sight is extremely significant. Depending on the material, a few obstacles can drastically reduce your maximum range. |
| 344 | * General RF information and specific information regarding antenna choice and performance can be found in this [http://www.ti.com/lit/an/swra161b/swra161b.pdf app note]. |
| 345 | |
| 346 | == Programming the Tiva MCU == |
| 347 | |
| 348 | In the event of an unprogrammed or corrupted !TiVa MCU, you can flash firmware via USB connection. For the GW16122 this is done via a mini-PCIe to USB converter such as our GW16115. |
| 349 | |
| 350 | You will need to have installed the software detailed in the [wiki:expansion/gw16122#SetUp Set Up] section in order to continue. |
| 351 | |
| 352 | Since the !TiVa MCU functions as an XDS110 debug probe for the GW16122, you can use the default firmware included in the Code Composer Studio installation directory. |
| 353 | |
| 354 | To flash the bootloader and/or firmware via '''USB''': |
| 355 | |
| 356 | 1. Navigate to your Code Composer installation directory |
| 357 | 1. Enter the XDS110 folder in ccs |
| 358 | {{{#!bash |
320 | | Alternatively, to flash the bootloader and/or firmware via JTAG: |
321 | | |
322 | | Connect an external XDS110 debug probe to your host machine via USB, and to the GW16122 via 10-pin JTAG connector (designator J4) |
323 | | Run the Uniflash gui application |
324 | | Select target device of TiVa > TM4C1294NCPDT |
325 | | Select connection of XDS110 Debug Probe |
326 | | Click "Start" |
327 | | Select the boot_loader.bin and firmware.bin files from the ccsv7/ccs_base/common/uscif/xds110/ directory (click the plus sign to flash multiple files) and enter load addresses of 0x0000 and 0x4000 respectively |
328 | | Click "Load Image" |
| 372 | }}} |
| 373 | Alternatively, to flash the bootloader and/or firmware via '''JTAG''': |
| 374 | |
| 375 | 1. Connect an external XDS110 debug probe to your host machine via USB, and to the GW16122 via 10-pin JTAG connector (designator J4) |
| 376 | 1. Run the Uniflash gui application |
| 377 | 1. Select target device of {{{TiVa > TM4C1294NCPDT}}} |
| 378 | 1. Select connection of {{{XDS110 Debug Probe}}} |
| 379 | 1. Click "Start" |
| 380 | 1. Select the {{{boot_loader.bin}}} and {{{firmware.bin}}} files from the {{{ccsv7/ccs_base/common/uscif/xds110/}}} directory (click the plus sign to flash multiple files) and enter load addresses of {{{0x0000}}} and {{{0x4000}}} respectively |
| 381 | 1. Click "Load Image" |
| 382 | |
351 | | Note that there doesn't appear to be a way to update the firmware on a running ARM based target. All of the methods we used to program the TiVa and CC1350 MCU's from a x86 host are not compatible with an ARM based system. This means that users will not be able to update firmware on running boards. |
352 | | GUI Approach |
353 | | |
354 | | Connect a single GW16122 to the host machine via mini-PCIe to USB adapter. |
355 | | Open the "Uniflash" application through a gui file manager from the uniflash_4.2 install directory, or via command line: |
| 407 | * Note that there doesn't appear to be a way to update the firmware on a running ARM based target. All of the methods we used to program the !TiVa and CC1350 MCU's from a x86 host are not compatible with an ARM based system. This means that users will not be able to update firmware on running boards. |
| 408 | |
| 409 | === GUI Approach === |
| 410 | |
| 411 | 1. Connect a single GW16122 to the host machine via mini-PCIe to USB adapter. |
| 412 | 1. Open the "Uniflash" application through a gui file manager from the uniflash_4.2 install directory, or via command line: |
| 413 | {{{#!bash |
357 | | Select target device of CC1350F128 |
358 | | Select connection of Texas Instruments XDS110 USB Debug Probe |
359 | | Click the "Start" button |
360 | | In the Program tab, select the firmware file you wish to load. This is typically a .out file created via a Code Composer Studio Project and can be found in your workspace directory (default ~/workspace_v7/) |
361 | | Click the "Load Image" and "Verify Image" buttons and see the text console output on the bottom of the window for a green success message |
| 415 | }}} |
| 416 | 1. Select target device of CC1350F128 |
| 417 | 1. Select connection of Texas Instruments XDS110 USB Debug Probe |
| 418 | 1. Click the "Start" button |
| 419 | In the Program tab, select the firmware file you wish to load. This is typically a .out file created via a Code Composer Studio Project and can be found in your workspace directory (default {{{~/workspace_v7/}}}) |
| 420 | 1. Click the "Load Image" and "Verify Image" buttons and see the text console output on the bottom of the window for a green success message |
| 421 | |
416 | | |
417 | | References |
418 | | CC1350 Wiki |
419 | | CC1350 Bluetooth Software for use with iPhone App |
420 | | Launch Pad Landing Page on Ti |
421 | | Ti Information regarding Contiki |
422 | | XDS110 User Guide |
423 | | TI 15.4-Stack - Linux Gateway Project Zero App Note |
424 | | TI Sub-1GHz E2E Forum |
| 482 | }}} |
| 483 | [[CollapsibleEnd]] |
| 484 | == References == |
| 485 | * [http://dev.ti.com/tirex/#/?link=Software%2FSimpleLink%20CC13x0%20SDK CC1350 Wiki] |
| 486 | * [http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_1_12_01_16/modules/prop_04_cc1350lpdm/resources/CC1350LaunchPad_BLE_All_v1_00.hex CC1350 Bluetooth Software for use with iPhone App] |
| 487 | * [http://dev.ti.com/tirex/content/tirtos_cc13xx_cc26xx_2_20_00_06/resources/cc1350LaunchPad/project0/landing_page_index.html Launch Pad Landing Page on Ti] |
| 488 | * [http://processors.wiki.ti.com/index.php/Contiki-6LOWPAN Ti Information regarding Contiki] |
| 489 | * [http://www.ti.com/lit/ug/sprui94/sprui94.pdf XDS110 User Guide] |
| 490 | * [http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_1_13_01_05/modules/154-stack_03_linux_project_0/154-stack_03_linux_project_0.html TI 15.4-Stack - Linux Gateway Project Zero App Note] |
| 491 | * [http://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/ TI Sub-1GHz E2E Forum] |