{"id":940,"date":"2018-08-22T21:18:04","date_gmt":"2018-08-22T11:18:04","guid":{"rendered":"http:\/\/furzy.com\/mikesblog\/?page_id=940"},"modified":"2018-08-22T22:25:57","modified_gmt":"2018-08-22T12:25:57","slug":"loading-firmware-cc2640-loading-a-hex-file","status":"publish","type":"page","link":"http:\/\/furzy.com\/mikesblog\/notes\/loading-firmware-cc2640-loading-a-hex-file\/","title":{"rendered":"Loading Firmware &#8211; CC2640 &#8211; loading a hex file"},"content":{"rendered":"<p>We issue hex files for the TI CC2640 BLE MicroController<br \/>\nUnless otherwise noted, they are issued as a complete file, including both the application and the BLE stack<\/p>\n<p>typically they might be called something like<br \/>\nCC2640S1_BLE010_FWVer101_ALL_20180822_2100.hex<\/p>\n<ul>\n<li>the BLE010 is the device name \/ hardware name &#8211; in this case a sensor<\/li>\n<li>FWVer101 is the firmware version<\/li>\n<li>ALL indicates both the app and stack have been joined into the one hex file<\/li>\n<li>_20180822_2100 is the firmware revision<\/li>\n<\/ul>\n<p>TI offer different tools to program their controller<br \/>\nWe use the XDS110 they include on their launchpads<\/p>\n<p>LAUNCHXL-CC2650<br \/>\nSimpleLink\u2122 CC2650 Wireless MCU LaunchPad\u2122 Kit<\/p>\n<p>Last time we purchased them through Mouser 595-LAUNCHXL-CC2650<\/p>\n<p>Depending on which rev of Launchpad you purchase, the connectors may be in different locations, but on Rev 1.1 and on Rev 1.2 (which we have) you can access the jtag from the XDS110 on a 10 pin connector<\/p>\n<p>The connector is a 2mm pitch, so you will need to either purchase or make up your own patch lead to connect the Launchpad XDS110 to the target system<br \/>\nWe buy 2mm IDC plugs and 1mm ribbon cable, from Digikey \/ Mouser \/ EBay \/ Aliexpress.<\/p>\n<p>We also use a JST SH 1mm pitch connector on our target hardware<br \/>\nPLEASE check the schematics and programming lead notes for the hardware you are programming to assemble your lead<\/p>\n<div id=\"attachment_946\" style=\"width: 650px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-946\" class=\"size-full wp-image-946\" src=\"http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2640-JTAG-Connection-01-_640x361.jpg\" alt=\"CC2640 JTAG Connection 01\" width=\"640\" height=\"361\" srcset=\"http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2640-JTAG-Connection-01-_640x361.jpg 640w, http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2640-JTAG-Connection-01-_640x361-300x169.jpg 300w, http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2640-JTAG-Connection-01-_640x361-500x282.jpg 500w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-946\" class=\"wp-caption-text\">CC2640 JTAG Connection 01<\/p><\/div>\n<p>Pictured above (cJTAG connection &#8211; 2 wire) is the programming patch lead from the 10 pin 2mm IDC plug (on the launchpad) to the 5 pin JST SH 1mm plug to connect to the target (in this case a BLE010). The VDD marking reminds me I have VDD connected in the lead as well.<\/p>\n<p>Notice on the launchpad we have moved all the jumpers so that they do not link from the SDX110 to the CC2650 (except the GND and 3V3 jumpers because we happen to be running firmware on the CC2650).<\/p>\n<p>If you are connecting a CC2650STK sensortag as the target, you will use a patch lead with a IDC plug at each end<\/p>\n<div id=\"attachment_948\" style=\"width: 650px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-948\" class=\"size-full wp-image-948\" src=\"http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2650STK-JTAG-Connection-01-_640x311.jpg\" alt=\"CC2650STK SensorTag JTAG Connection 01\" width=\"640\" height=\"311\" srcset=\"http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2650STK-JTAG-Connection-01-_640x311.jpg 640w, http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2650STK-JTAG-Connection-01-_640x311-300x146.jpg 300w, http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/CC2650STK-JTAG-Connection-01-_640x311-500x243.jpg 500w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-948\" class=\"wp-caption-text\">CC2650STK SensorTag JTAG Connection 01<\/p><\/div>\n<p>Pictured above JTAG connection &#8211; 4 wire<\/p>\n<p>At the time of writing we are using the TI software tool called Flash Programmer 2 (Version 1.7.3) on a 64 bit windows PC<\/p>\n<p>This is a stand alone programmer<\/p>\n<p>When you connect the Launchpad for the first time you most probably will be asked to update the firmware on the XDS110 &#8211; so for the first time just connect the launchpad to the PC with no target attched<\/p>\n<p>If you are using a 2 wire cJTAG connection, you will need to go into the file system and rename some files<\/p>\n<div id=\"attachment_949\" style=\"width: 656px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-949\" class=\"size-full wp-image-949\" src=\"http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/XDS110-cJTAG-2Wire-Files-Rename-_640x421.jpg\" alt=\"XDS110 cJTAG 2Wire File Rename\" width=\"646\" height=\"421\" srcset=\"http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/XDS110-cJTAG-2Wire-Files-Rename-_640x421.jpg 646w, http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/XDS110-cJTAG-2Wire-Files-Rename-_640x421-300x196.jpg 300w, http:\/\/furzy.com\/mikesblog\/wp-content\/uploads\/2018\/08\/XDS110-cJTAG-2Wire-Files-Rename-_640x421-460x300.jpg 460w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><p id=\"caption-attachment-949\" class=\"wp-caption-text\">XDS110 cJTAG 2Wire File Rename<\/p><\/div>\n<p>On the left side of Flash Programmer 2 you need to select the target, in this case a CC2640 should be listed<\/p>\n<p>and in the file you need to browse and select the hex file you received \/ downloaded<\/p>\n<p>and then click the arrow to start<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We issue hex files for the TI CC2640 BLE MicroController Unless otherwise noted, they are issued as a complete file, including both the application and the BLE stack typically they might be called something like CC2640S1_BLE010_FWVer101_ALL_20180822_2100.hex the BLE010 is the &hellip; <a href=\"http:\/\/furzy.com\/mikesblog\/notes\/loading-firmware-cc2640-loading-a-hex-file\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":917,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-940","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P7DDag-fa","_links":{"self":[{"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/pages\/940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/comments?post=940"}],"version-history":[{"count":6,"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/pages\/940\/revisions"}],"predecessor-version":[{"id":951,"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/pages\/940\/revisions\/951"}],"up":[{"embeddable":true,"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/pages\/917"}],"wp:attachment":[{"href":"http:\/\/furzy.com\/mikesblog\/wp-json\/wp\/v2\/media?parent=940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}