微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200无法下载程序

CC3200无法下载程序

时间:10-02 整理:3721RD 点击:

当使用自己做的板子下载时报这个错误,使用TI官方的板子下载就可以用!是不是需要先下载什么文件?

这个错误提示和你的硬件JTAG电路有关系,系统连接没有建立。你可以检查一下你的硬件设计个我们的参考设计有没有什么不同的地方。

谢谢

您好Ken Wang :

      关于您告知我,我的JTAG电路和系统没建立连接。您是指JTAG电路和CC3200芯片的链接出现错误,还是指JTAG本身的设计电路出现问题?

你好,

  这两个都有可能,因为提示的信息只是显示JTAG的操作没有成功。

你可以和我们开发板的设计电路比对一下看看。

您好,cc3200 lauchpad 的例程用uniflash下载到外部nor flash上电后就可以运行了吗

是的,使用uniflash下载到外部的SFLASH里面,具体烧写过程可以参考uniflash的user guide或是下面的链接内容:

http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_UniFlash_Quick_Start_Guide?keyMatch=uniflash&tisearch=Search-EN

我修改了uart_demo的程序,在线调试时,串口助手可以正确显示发送的字符‘1’,为什么烧到flash以后,再上电,用法串口助手接受到的就不是我设置的字符而变成其他的字符了呢

不知道是否方便看下你的程序呢?

void main()
{
char cString[MAX_STRING_LENGTH+1];
char cCharacter='1';
int iStringLength = 0;
//
// Initailizing the board
//
BoardInit();
//
// Muxing for Enabling UART_TX and UART_RX.
//
PinMuxConfig();
//
// Initialising the Terminal.
//
InitTerm();
//
// Clearing the Terminal.
//
ClearTerm();
/* DisplayBanner(APP_NAME);
Message("\t\t****************************************************\n\r");
Message("\t\t\t CC3200 UART Echo Usage \n\r");
Message("\t\t Type in a string of alphanumeric characters and \n\r");
Message("\t\t pressenter, the string will be echoed. \n\r") ;
Message("\t\t Note: if string length reaches 80 character it will \n\r");
Message("\t\t echo the string without waiting for enter command \n\r");
Message("\t\t ****************************************************\n\r");
Message("\n\n\n\r");
Message("cmd#"); */
while(1)
{
//
// Fetching the input from the terminal.
//
/* cCharacter = UartGetChar();
g_iCounter++;
if(cCharacter == '\r' || cCharacter == '\n' ||
(iStringLength >= MAX_STRING_LENGTH -1))
{
if(iStringLength >= MAX_STRING_LENGTH - 1)
{
UartPutChar(cCharacter);
cString[iStringLength] = cCharacter;
iStringLength++;
}
cString[iStringLength] = '\0';
iStringLength = 0;
//
// Echoes the input string
//
Report("\n\rcmd#%s\n\rcmd#", cString);*/
//}
//else
//{
UartPutChar(cCharacter);
//cString[iStringLength] = cCharacter;
// iStringLength++;
// }
}
}

上边是uniflash烧写后的运行结果

下边是在线调试时的正确结果

我这边测试下来没有任何问题啊,不论是在线调试还是烧到sflash里面,串口调试助手收到的都是1啊,

你检查一下你的波特率设置,同时你接收到的不同的数据,具体是什么呢?

谢谢

您好,我的qq是1193622490,可否添加以下呢,谢谢咯

公司上不了QQ啊,建议你修改程序,比如说加上一个cCharacter = UartGetChar();,然后再去调用UartPutChar(cCharacter);,相当于CC3200做一个UART接收和发送的回路测试试试看。

谢谢

您也是直接改了例程的主函数然后用uniflash烧写吧,你看我的配置是否有问题:

第一步

第二步

你好Ken Wang :

       这是我CC3200JTAG的原理图,

 其中R57 R1 R2 R3是没有焊接的。JTAG部分的电路已经验证过是也已使用的。 还有一点和电感器件的类型有关么?

你在烧写应用程序是,不需要每次都去格式化SFLASH,因为SFLASH里面除了有应用程序以外,还有service pack的内容。

你只需要进行第二步操作就行。

我的程序就会基于UART_demo 改的,把主程序里面while(1)里,前面的语句都注释掉,只留下发送字符的操作。

谢谢

Hi JingHui Huang,

   关于CC3200JTAG部分的电路设计,我们有以下参考点,你可以看一下:

Header or TP should be provided for device pins 16, 17, 19 and 20. Device also support 2 wire SWD and can be used if your design is short on GPIOs

Function Dev Pin GPIO #
JTAG_TDI 16 GPIO23
JTAG_TDO 17 GPIO24
JTAG_TCK 19 GPIO28
JTAG_TMS 20 GPIO29
To enter JTAG mode, SOP [2:0] = [0,0,0]

Function Dev Pin GPIO #
SWD_CLK 19 GPIO28
SWD_DIO 20 GPIO29
To enter 2 Wire SWD mode, SOP [2:0] = [0,0,1]
In SWD mode pin #16 and #17 can be used as regular GPIO

Add 100K pull-down resistors on JTAG_TCK (Pin #19)

  

谢谢

烧写完成后我就把J15的帽拔下来了,这样操作不知道对不对,这个东西很着急,希望能跟您或您沟通,请问您那边有没有技术支持的电话,8008208682是空号呢

烧写完成以后,确实需要把SOP2上面的跳帽拿掉,然后运行。这是正确的操作。

你可以跑跑其他例程看下,或者说UART_demo程序里面的

DisplayBanner(APP_NAME);
Message("\t\t****************************************************\n\r");
Message("\t\t\t CC3200 UART Echo Usage \n\r");
Message("\t\t Type in a string of alphanumeric characters and \n\r");
Message("\t\t pressenter, the string will be echoed. \n\r") ;
Message("\t\t Note: if string length reaches 80 character it will \n\r");
Message("\t\t echo the string without waiting for enter command \n\r");
Message("\t\t ****************************************************\n\r");
Message("\n\n\n\r");
Message("cmd#")

这些字符操作都能正常显示吗?

谢谢

大哥,还是显示不了呢,是不是没烧进flash去呀?

这是在线调试的,显示正常:

然后我开始烧写(您看烧写成功了吗?):

然后拔掉sop2跳帽:

显示不正确,是不是没有烧进去呢?

我手机号是13520001544,我先给您打个电话,我是学生,课题需要,很急,求帮助。

你试下烧写service pack , 因为你前面已经擦除了:

http://www.ti.com/tool/cc3200sdk?keyMatch=cc3200%20sdk&tisearch=Search-EN-Everything

谢谢

是这里边的servicepack_1.0.0.1.2.bin吗?

对的,你可以烧写试试

先格式化了flashi:

[13:45:16] Begin Format operation.
[13:45:16] INFO: > Executing Operation: Connect
[13:45:18] INFO: setting break signal
[13:45:18] INFO: --- please restart the device ---
[13:45:21] INFO: connection succeeded
[13:45:21] INFO: getting storage list
[13:45:21] INFO: > Executing Operation: Init
[13:45:21] INFO: reading version info
[13:45:21] INFO: DEVICE CC3200 ES1.33
[13:45:21] INFO: reading version info
[13:45:22] INFO: reading version info
[13:45:24] INFO: > Executing Operation: Format
[13:45:24] INFO: Erase storage SFLASH
[13:45:25] INFO: erase storage succeeded
[13:45:25] INFO: erase storage completed
[13:45:25] INFO: > Executing Operation: Disconnect
[13:45:25] Operation Format returned.

烧入servicepack_1.0.0.1.2.bin:

[13:47:30] Begin ServicePackUpdate operation.
[13:47:30] INFO: > Executing Operation: Connect
[13:47:32] INFO: setting break signal
[13:47:32] INFO: --- please restart the device ---
[13:47:46] INFO: connection succeeded
[13:47:46] INFO: getting storage list
[13:47:46] INFO: > Executing Operation: Init
[13:47:46] INFO: reading version info
[13:47:46] INFO: DEVICE CC3200 ES1.33
[13:47:46] INFO: reading version info
[13:47:47] INFO: reading version info
[13:47:49] INFO: > Executing Operation: ServicePackUpdate
[13:47:49] INFO: Path to the service pack file: F:\TI\CC31xx_CC32xx_ServicePack_1.0.0.1.2\servicepack_1.0.0.1.2.bin
[13:47:49] INFO: reading version info
[13:47:49] INFO: ROM Device detected.
[13:47:49] INFO: Service pack version information:
[13:47:49] INFO: NWP version: 2.2.7.1
[13:47:49] INFO: MAC version: 1.2.4.2
[13:47:49] INFO: PHY version: 1.5.3.23
[13:47:49] INFO: NWP Patch version: 2.2.0.1
[13:47:49] INFO: MAC Patch version: 1.2.0.2
[13:47:50] INFO: PHY Patch version: 1.0.3.23
[13:47:50] INFO: Downloading file "/sys/servicepack.ucf" with size 6100
[13:47:55] INFO:

New Token is 0x66C46743
[13:47:55] INFO: Download complete
[13:47:55] INFO: > Executing Operation: Disconnect
[13:47:55] Operation ServicePackUpdate returned.

此时串口助手无任何内容。

烧写uart_demo.bin:

[13:49:59] Begin Program operation.
[13:49:59] INFO: > Executing Operation: Connect
[13:50:01] INFO: setting break signal
[13:50:01] INFO: --- please restart the device ---
[13:50:05] INFO: connection succeeded
[13:50:05] INFO: getting storage list
[13:50:05] INFO: > Executing Operation: Init
[13:50:05] INFO: reading version info
[13:50:05] INFO: DEVICE CC3200 ES1.33
[13:50:05] INFO: reading version info
[13:50:06] INFO: reading version info
[13:50:08] INFO: > Executing Operation: Program
[13:50:08] INFO: > File name: /sys/mcuimg.bin, Update: true, Erase: true
[13:50:08] INFO: > Erase File: /sys/mcuimg.bin
[13:50:08] INFO: erasing file "/sys/mcuimg.bin"
[13:50:08] INFO: deleting file "/sys/mcuimg.bin"
[13:50:08] INFO: erase file completed
[13:50:08] INFO: > Size of file = 17660
[13:50:08] INFO: > Update File: /sys/mcuimg.bin
[13:50:08] INFO: Downloading file "/sys/mcuimg.bin" with size 17660
[13:50:09] INFO:

New Token is 0x0
[13:50:09] INFO: Download complete
[13:50:09] INFO: Verifying Data...
[13:50:09] INFO: get file
[13:50:09] INFO: Done. Reading 17660 bytes
[13:50:09] INFO:

Verification OK
[13:50:10] INFO: > Updated Token value: 0x0
[13:50:10] INFO: > File name: /cert/ca.pem, Update: false, Erase: false
[13:50:10] INFO: > File name: /cert/client.pem, Update: false, Erase: false
[13:50:10] INFO: > File name: /cert/private.key, Update: false, Erase: false
[13:50:10] INFO: > File name: /tmp/pac.bin, Update: false, Erase: false
[13:50:10] INFO: > File name: /sys/macadd.bin, Update: false, Erase: false
[13:50:10] INFO: > Executing Operation: Disconnect
[13:50:10] Operation Program returned.

此时串口助手依旧显示其他字符:A1

怎么回事呢?难道不是servicepack_1.0.0.1.2.bin的问题?

你确定你的程序只改了main函数,用的是UART_demo例程,没有修改其他地方?

我编译出来的烧写文件的大小比你的小很多啊。

你的工程文件能够上传吗?

谢谢

7875.uart_demo.rar

您看我之前下载的servicepack_1.0.0.1.2.bin和uart_demo.bin烧进去了吗?谢谢

你前面的下载文件信息提示都成功了,我把你编译的bin文件烧到我的板子上面,也能正常显示提示信息和“1”。

看来程序和板子的烧写都没有问题啊。

还真看不出来是哪里的问题了,现在只剩串口调试软件不一样了。

你烧写下其他的程序试试,比如说SAT的例程,看看另外的程序能不能再串口打印调试信息吧。

大哥,会不会是我板子flash的问题,你看我在线调试没有问题,一下到板子上就会出问题,我也试过scan_policy的例程,也是这样。flash里边就保存了应用程序和servicepack_1.0.0.1.2.bin吗?你能发给我个点亮led的bin文件吗?

CC3200SDk里面有一个关于闪灯的blinky工程,你可以用这个试试。

blinky程序运行正常,看来我的flash没有问题。

[14:57:34] INFO: > Updated Token value: 0x0
[14:57:34] INFO: > File name: /cert/ca.pem, Update: false, Erase: false
[14:57:34] INFO: > File name: /cert/client.pem, Update: false, Erase: false
[14:57:34] INFO: > File name: /cert/private.key, Update: false, Erase: false
[14:57:34] INFO: > File name: /tmp/pac.bin, Update: false, Erase: false
[14:57:34] INFO: > File name: /sys/macadd.bin, Update: false, Erase: false
[14:57:34] INFO: > Executing Operation: Disconnect
[14:57:34] Operation Program returned.

这些false和disconnect是什么意思呀?

$PROJ_DIR$
$PROJ_DIR$/../
$PROJ_DIR$/../../common/
$PROJ_DIR$/../../../driverlib/
$PROJ_DIR$/../../../inc/

ewarm

是什么意思呀?

那些false和disconnect是指那些路径对应的文件没有更新成功,因为你没有对他们进行加载文件操作。只对MCU bin文件有操作。

那些文件对应都是和芯片安全,加密等性能相关的文件。一般用不到。

另外:

$PROJ_DIR$
$PROJ_DIR$/../
$PROJ_DIR$/../../common/
$PROJ_DIR$/../../../driverlib/
$PROJ_DIR$/../../../inc/

对应的是工程文件include的路径,这个都是设定好了的。

ewarm指的是IAR的编译。

问题解决了。

我format了下sflash,然后把改过的uart_demo烧写进去,刚开始串口助手显示乱码,我就按了reset键然后就好了。

这堆乱码不知道是什么呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top