用BPI-G1也有一段时间了,对G1上芯片也有所了解,在这整理一下这段时间来使用G1的技巧
对于如何开发G1:
1.CC2530 ZigBee芯片,cc2530采用的是51内核,51单片机算是入门级的单片机了,至于标准51单片机只有21个特殊寄存器,而且标准的是8kb的flash ,以及256b的RAM。当然TI在标准51内核基础上加入和很多东西。在此不讨论架构问题,还是说说如何开发ZigBee,ZigBee 符合IEEE 802.15.4协议规范的。整个协议有n多内容,感兴趣的可以去下协议规范看,当然TI为了给开发者降低难度,开发了z-stack协议,让用户能快速的通过规范接入ZigBee网络。ZigBee最初从零一年就成立了ZigBee Alliance (见百度百科)到现在发展十四、五年了,TI也推出了几个不同的版本,应用的场合不同,TI有不同对应的协议,其中包含Z-stack协议,主要也有几个更新版本,目前我用的协议版本是:ZStack-CC2530-2.5.1a (下载)(TI:协议栈)开发ZigBee。到此,ZigBee协议栈介绍完,那还没说开发软件,开发cc2530可以用IAR8051(下载,同样官网可以提供更多版本,本人用的是8101版本)开发,也可以用其他软件。在此共享一个别人提供的入门教程,如开发基于Z-stack协议的cc2530应用,请下载ZStack-CC2530-2.5.1a协议栈和IAR8051软件,安装iar软件后安装协议栈,注意协议栈请安装到默认目录下。(当然cc2530芯片可以向24l01一样,不用通过协议栈,只要写出tx rx通信驱动,即可实现通信,不过既然了解ZigBee那估计大家都还是想了解了解ZigBee协议的,最后Z-stack 协议是不完全开源的)
来自cc2530数据手册
2.CC2540 BLE蓝牙4.0芯片,cc2540同样是基于51内核。同样是通过IAR8051开发,共同使用上述软件(IAR 8051),但是需要安装cc2540相对应的BLE协议栈。由于本人还没对cc2540具体了解,所以不多说。以后对cc2540有所了解以后再分享。
(CC2540数据手册下载)
3.STM32 这主要负责WiFi(cc3200),ZigBee(CC2530),BLE(CC2540)芯片通信,通信方式通过3组串口连接,比起上述cc2530和cc2540芯片,stm32系统内核就算很强大了, Cortex®-M3内核,Cortex (高通的芯片就是coretx架构的,据说高通自己已研发出自己的架构,毕竟要向ARM交授权费),stm32作为32位高性能芯片,且具有着极低的功耗。stm32产品包含从Cortex®-M0到Cortex®-M4具有很多产品型号,其中f103增强型是最常见的,还有内含有网络功能的f107互联型。G1开发板使用的是STM32f103cBt6,128KB flash 和20 RAM 72MHz主频,相关详情请见数据手册,至于开发stm32就不需要协议,只需要安装编译环境就可以。支持开发stm32的常用环境有keil mdk (最新版本5.15,本人分享keil 4下载)和IAR ARM版本(提供IAR ARM 7.20下载)。开发stm32 ST给提供有库函数,以供方便开发人员开发。
STM32F103CBT6(来自手册)
4. CC3200 WiFi芯片,CC3200是第一款单片芯片上集成WiFi 和MCU的解决方案。采用ARM Cortex-M4 内核,运行频率 80MHz。大容量RAM和大容量片外flash,开发软件可采用 IAR arm 开发(下载地址)。在开发CC3200时,TI官方给提供详细开发SDK工具帮助开发(下载),请先安装iar arm 软件,后安装sdk 工具,注:请安装到默认安装目录。由于是ARM架构,所以可以采用arm通用jtag调试,可用包括:jlink、ulink等jtag调试工具。由于片内没有flash,所以通过jtag调试时烧入片内RAM中运行,所以实际开发中还需要用UniFlash(下载地址)工具烧入片外flash中运行,用UniFlash 烧写,只需要连接串口,和短接V0和V1跳线,详情见烧写视频。由于CC3200资料实在是少,所以官方提供的sdk就显得十分重要,包括其中有很多历程和帮助文档。所以要认真读sdk文档以及其中资料。
CC3200系统架构(数据手册)
CC3200芯片内部结构
最后先写这么多,以后有更进一步心得会持续更新。此文没有任何教程,只是本人对G1使用过程中产生的一点点想法和心得。也算是帮助想玩G1和已经买到G1的童鞋提供一个入门的教程,免得走冤枉路嘛。还有如有疑问可以发帖交流,如对安装环境有疑问请先看之前一篇环境安装贴