文档章节

CC2530外围电路若干问题

兔之
 兔之
发布于 2014/02/20 16:54
字数 1377
阅读 4284
收藏 3

CC2530是Zigbee无线传输解决方案的SoC芯片,最近画原理图时遇到一些问题。

##数字信号电源和模拟信号电源

CC2530芯片有6个模拟信号电源引脚和2个数字信号电源引脚。至于模拟信号电源和数字信号电源的区别,可以参考1。对它们接地时要进行一些处理,比如加一个电容。各个公司的接地方案不尽相同。 如图所示:在此输入图片描述

##CC-Debugger调试和下载 CC-Debugger有10个引脚,DC和DD为调试时钟和调试数据线。而下载又有4个。用FlashProgrammer进行下载到底需要用几个引脚?经过分析,用两个Debug引脚就可以了。Ti的官方方案是用2个引脚。有图为证: 在此输入图片描述

##CC2530和天线如何匹配 天线线路的输出阻抗与天线阻抗等大就能获取最大的天线辐射输出。具体参见官方QA21IC。官方说法是必须给天线匹配50欧姆的阻抗。由于PCB板的材质,介电常数未知,要画的线宽和其他元件的总阻抗满足50欧姆是不可能的。天线A5887的资料请走。天线还真是一个大坑。

##加不加射频前端放大器PA 一般的方案是CC2530+CC259,网上查不加PA的传输距离是75-100m,完全满足室内环境。

##复位电路## 开始以为复位电路可以省略,在上电的一瞬间芯片自己复位。有些芯片自带复位电路,一上电可以自己reset。但是因为充电电容大,不易集成到芯片内部。所以有些芯片把复位电路放到外面了。

复位是在CPU上电时维持一段时间的低电平。一般有一个RC充放电电路,延迟时间为2.3RC [06]。2.3RC过后复位信号消失。如果按下按键则有一个低电平信号对芯片进行复位。

##元件对应封装## 所选的CC2530为40引脚的QFN,在网上可以找到画好的封装。其它元件选择贴片比较好。 电容和电阻都选为为6-0805_M,0805是按尺寸命名的。

32M的RF晶振选直插的,32.768K的芯片时钟芯片选小手表封装。

尺寸大小为0.8inch(2.0mm)W:0.5inch(1.25mm)。 更多的封装见3,工程实践和看来的理论还是差很远。

在此输入图片描述

##硬件电路验证测试##

硬件电路CC2530+CCDebugger效果图 在此输入图片描述

进行调试遇到的问题:

  • Error in Hex file verification 校验出错

CC-Debug勾选Erase and program就能够烧进去程序。网上查的说法是由于Debug口没有焊接好。留待改进。

  • CC2530 - ID0702: HEX file content at address 0x3FFFF exceeds chip's 32 kB flash size

买的芯片是CC2530F256,特性:256 KB In-System-Programmable Flash,8-KB RAM With Retention in All Power Modes。就是有256K的ROM烧写程序。可这里的报错是因为Flash只有32K,难道厂家坑人。

进行下列测试:

  1. 烧写12.9K的hex1文件,烧写成功。
  2. 烧写46.8K的hex2文件,烧写成功。注意46.8K>32K了。
  3. 烧写95.1K的hex3文件,烧写失败。错误同上。
  4. 烧写58.4K的hex4文件,烧写成功。
  5. 烧写62.5K的hex4文件,烧写成功。

这就只能上网查了,在[04]中发现有同样的问题出现。

After I did 11.2 Pre-pend the Boot Code hex image to the Application Code hex image.The flash programmer says "CC2530 - ID0050: HEX file content at address 0x7C7FF exceeds chip's 256 kB flash size" ,and I have tried to download hex file of bigger size(about 700K)and succeed,I know that my problem is not the size.

但是这个错误是超过256KB的字节。可能my problem is not the size,too.

找到另外一篇问CC2530F256只识别32K的文章[05].按照下列做法测试。

  1. Actions选为Read flash into hex-file,即把Flash中的文件读到PC的文件中。大小为92K。
  2. Actions选为Erase program and verify,竟然能通过验证。

看其他的说法可能是焊接有问题,我现在决定再焊一块试试。

焊接了3个版本A、B、C后惊奇地发现C版本正常工作,可以烧进去720K大小的hex文件,验证不出错。真是太好了。 在此输入图片描述

下面就是测试天线和无线收发是否能正常工作。测试无线收发是个难题。因为做的PCB板上只有RX和TX引脚。现在有两种方法进行测试:

  • 需要一个下载进去就能全自动组网的程序,而不需要任何按键触发来进行绑定。
  • 制作另一个带按键的版本,手动让Coordinator和Router联网。

后来发现,手头有一个绑定端口的点对点传输程序。我只要“去除”按键绑定就可以了。

基本思路是Coordinator(制作的 PCB板作为Coordinator)的按键判断里常写为True,不需要按键触发绑定。而Router的程序不需要改变。

##若干启示##

  • 晶振离CPU尽量近一些,在同一层进行走线。而且两线的距离应该完全相同。不然可能无法起振。
  • 数字地和模拟地一定要分开,不然会给传输信号带来很大干扰。

##Reference

[01].http://blog.163.com/zhshhe@126/blog/static/16328516120117623420120/

[02].http://bbs.21ic.com/icview-386418-1-1.html

[03].http://fossawolf.blog.163.com/blog/static/4672876320074122139107/

[04].http://e2e.ti.com/support/wireless_connectivity/f/158/t/216615.aspx?pi267162=1

[05].http://bbs.eeworld.com.cn/thread-327470-1-1.html

[06].http://hi.baidu.com/jeloc3648/item/91146924df5a700008750869

© 著作权归作者所有

兔之
粉丝 69
博文 250
码字总数 96477
作品 7
深圳
程序员
私信 提问
CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)

目录 1.前期预备知识 1.1 新大陆ZigBee模块LED灯电路 1.2 CC2530相关寄存器 1.3 寄存器操作技巧 1.4 CPU空转延时 1.4 操作流程图 2.程序代码 The End 1.前期预备知识 1.1 新大陆ZigBee模块L...

InCerry
2018/07/31
0
0
CC2530添加CC2591功放后在ZigBee中的改动

首先需要修改: (如果使用CC2530 + CC2590EM,则定义HALPALNACC2590如果使用CC2530 + CC2591EM,则定义HALPALNA注意,只能使用其中一个定义) 在 halboardcfg.h 内使能,去掉X / ---------...

qq_34572705
2018/04/20
0
0
接口设计

接口设计 什么是接口? 接口是CPU和外设之间的连接设备,用于缓存和转发数据。 为什么需要接口? (1)解决主机CPU和外围设备之间的时序配合和通信联络问题 主机的CPU是高速处理器件,比如8...

长平狐
2013/06/03
1K
0
TI 的zigbee方案选型指南

一直想写点关于zigbee方案选型的东西,TI关于芯片方案选型的guide几乎是没有的,包括e2e社区,也没有相关的指导,都是各种技术问题,再次希望给予那些后来者一些借鉴意义。走过弯路,但是幸运...

code_style
2018/04/13
0
0
【Arduino基础教程】继电器

继电器,也称电驿,是一种电子控制器件,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 准备材...

xmuwww
2016/06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

自建redis笔记

自建redis笔记 最近在linux安装了一下redis,特做一些笔记! 本文先单节点启动redis,然后再进行持久化配置,在次基础上,再分享搭建主从模式的配置以及Sentinel 哨兵模式及集群的搭建 单节点...

北极之北
23分钟前
4
0
vue+element之多表单验证

方法一:利用promise var p1=new Promise(function(resolve, reject) { this.$refs[form1].validate((valid) => { if(valid){ ......

沉迷代码我爱学习
25分钟前
4
0
golang 1.13 errors 包 新函数介绍

引 这次 errors 包算重量级更新。很有更能把以前的一些设计模式给推到。下面聊下用法。 error 装包 以前返回一个错误,想要保存 error 链,还要定义结构体保存以前的 error 信息。感兴趣看下...

guonaihong
34分钟前
53
0
并发编程之线程池

一、线程池 1、什么是线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降...

codeobj
37分钟前
5
0
知识点总结思维导图模板分享,良心安利,建议收藏

思维导图经常被用在学习中,对大脑思维进行发散,对知识进行记忆。使用思维导图可以让知识更加简单更有层次。下面是利用思维导图所绘制的几款知识点总结思维导图模板,大家可以进行进行参考使...

干货趣分享
40分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部