This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于CC3200 Flash下载及案例分析

Other Parts Discussed in Thread: CC3200, UNIFLASH

案例分析

 

公司目前在用CC3200替代早期Smart Power系统中的LPC1768+Zigbee方案,需要用到CC3200的4个外部AD通道。

开发板电路中Pin55、Pin57作为串口UART0与FT2232D串口相连接。因暂时没有找到CC3200片内ROM的详细资料,故不清楚Bootloader的实现方式及Flash具体下载流程,分析为通过串口0将代码传送至Flash_SPI。

为了使用4个外部AD通道,在新设计电路中做了如下调整:

如图所示,蓝色线为开发板默认连接,棕色线和黄色线为调整后的连接,即将串口0由Pin55、Pin57调整至Pin03、Pin04..

 

实验采用SDK中ADC例程

将如下两行代码:
       // Configure PIN_55 (GP1) for UART0 AUART0_TX
       //
       MAP_PinTypeUART(PIN_55, PIN_MODE_3);

       //
       // Configure PIN_57 (GP2) for UART0 AUART0_RX
       //
       MAP_PinTypeUART(PIN_57, PIN_MODE_3);

根据电路设计,做如下修改:
       // Configure PIN_55 (GP1) for UART0 AUART0_TX
       //
       MAP_PinTypeUART(PIN_03, PIN_MODE_7);

       //
       // Configure PIN_57 (GP2) for UART0 AUART0_RX
       //
       MAP_PinTypeUART(PIN_04, PIN_MODE_7);

编译工程

 

之后

 

打开UniFlash
1.在/sys/mcuimg.bin中添加要烧写的bin文件,即ADC历程release文件下的adc.bin,勾选Erase、Update、Verify三项

2.User Files项是空的,因为这个例程没有网页相关信息

3.点击CC31xx/CC32xx Config Groups 去掉enable选项的勾选,因为本例程没有网络相关信息

 

然后点击Format,根据提示按下复位

然后点击Program,根据提示按下复位,进行烧写

烧写信息如下:
[16:35:34] INFO: --- please restart the device ---
[16:35:36] INFO: connection succeeded
[16:35:36] INFO: getting storage list
[16:35:37] INFO: > Executing Operation: Init
[16:35:37] INFO: reading version info
[16:35:37] INFO: DEVICE CC3200 ES1.33
[16:35:37] INFO: reading version info
[16:35:38] INFO: reading version info
[16:35:40] INFO: > Executing Operation: Program
[16:35:40] INFO: > File name: /sys/mcuimg.bin, Update: true, Erase: true
[16:35:40] INFO: > Erase File: /sys/mcuimg.bin
[16:35:40] INFO: erasing file "/sys/mcuimg.bin"
[16:35:40] INFO: deleting file "/sys/mcuimg.bin"
[16:35:40] INFO: erase file completed
[16:35:40] INFO: > Size of file = 13464
[16:35:40] INFO: > Update File: /sys/mcuimg.bin
[16:35:40] INFO: Downloading file "/sys/mcuimg.bin" with size 13464
[16:35:40] INFO: 

New Token is 0x0
[16:35:40] INFO: Download complete
[16:35:40] INFO: Verifying Data...
[16:35:40] INFO: get file
[16:35:41] INFO: Done. Reading 13464  bytes
[16:35:41] INFO: 

Verification OK
[16:35:42] INFO: > Updated Token value: 0x0
[16:35:42] INFO: > File name: /cert/ca.pem, Update: false, Erase: false
[16:35:42] INFO: > File name: /cert/client.pem, Update: false, Erase: false
[16:35:42] INFO: > File name: /cert/private.key, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/macadd.bin, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/mode.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/ipcfg.ini, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/ap.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/devname.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/mdns.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/dhcpsrv.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys tpsrv.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/pref.net, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/smartconfigkeys.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/stacfg.ini, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/p2p.cfg, Update: false, Erase: false
[16:35:42] INFO: > File name: /sys/pmcfg.ini, Update: false, Erase: false
[16:35:42] INFO: > Executing Operation: Disconnect
[16:35:42] Operation Program returned. 

提示false的那些没有关系,因为原本也没有那些东西

 

烧写程序后去掉J6、J7条线,用杜邦线连接J7.Pin3与CC3200 Pin03,J6.Pin3与CC3200 Pin04,例程运行正常。

 

为了验证烧写流程是否存在其他问题,决定还原串口0代码,保持J7.Pin3与CC3200 Pin03,J6.Pin3与CC3200 Pin04的连接不变,重复烧写流程,这样反向还原是为了验证代码中串口0的调整是否影响烧写;

 

结果烧写不成功。

 

随后还原开发板J6、J7跳线,再次烧写,成功。

 

结论:

 

当安装SOP2跳线后,Bootloader程序可能将串口0位置设定在Pin55、Pin57,并作为下载Flash程序之用。

因此,在本案例中,为了使用全部AD通道,并且能够使用串口0查看调试信息,需要在代码中改变串口0的位置,即烧写程序时使用Pin55、Pin57作为串口0,烧写完成后,移除SOP2,运行flash程序后,Pin03、Pin04作为串口0.

希望这篇文档对大家了解CC3200 Flash烧写流程有所帮助。

 

Bootloader是否固定将串口0位置设定为Pin55、Pin57,希望官方给出明确答案,以避免在自行设计CC3200电路板时出现烧写方面的问题,希望能够提供CC3200片内ROM的详细资料,目前我没有找到,谢谢!

 

感觉CC3200的设计与FPGA很相似。

 

同样都是配备片外存储器存储代码或配置信息,CC3200将代码加载到片内SRAM运行,而FPGA是配置内部门电路。

掉电以后,都可以看作是一颗空白的芯片。