文档章节

CC2530外围电路若干问题

兔之
 兔之
发布于 2014/02/20 16:54
字数 1377
阅读 4148
收藏 3
点赞 0
评论 0

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

© 著作权归作者所有

共有 人打赏支持
兔之
粉丝 66
博文 246
码字总数 95636
作品 7
深圳
程序员
CC2530添加CC2591功放后在ZigBee中的改动

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

qq_34572705
04/20
0
0
SIMCom常见模组外围电路设计

最近一直在搞SIMCom的模组外围电路设计,现在整理一下外围电路设计思路。 1.电源方案 这类通信模组一般瞬间电流可以达到2A左右,所以在供电方案上需要十分注意,否则很容易造成模块死机或者重...

creative_team
04/13
0
0
【分享】各种电源设计实例详解(模拟、FPGA、处理器系统、LED)

【分享】各种电源设计实例详解 包括模拟、FPGA、处理器系统、LED等方面 本视频教程通过设计实例讲解了TI公司的WEBENCH工具。WEBENCH是TI公司一款易于使用且提供定制结果的功能非常强大的在线...

lanqee
2013/08/20
201
1
基于电池供电系统的MCU稳压电路设计

基于电池供电系统的MCU稳压电路设计 1:电池和稳压芯片之间接滤波电感,可以有效防止电池电压脉冲对MCU的影响,如图1: 图 1 说明:IN-VCC 和 IN-GND 一般直接给电机模块供电; Outvcc 和 GN...

qq_19004627
05/11
0
0
单片机晶振不起振经常遇到的问题及注意事项!

单片机中如果没有了晶振会怎么样? 作为一种精密的频率元件,单片机中的晶振却很容易出现问题,轻微的碰撞都可能导致晶振损坏,因此,遇到单片机晶振不起振是很常见的一种现象。小编的几个做...

dp29sym41zygndvf
2017/12/25
0
0
学好单片机设计,关于晶振的这些难题一定要先搞懂!

在初学51单片机的时候,总是伴随很多有关于晶振的问题,其实晶振就是如同人的心脏,是血液的脉搏,把单片机的晶振问题搞明白了,51单片机的其他问题迎刃而解…… 有关51单片机有关晶振的问题...

dp29sym41zygndvf
2017/12/26
0
0
0.8W 短80米无线电测向信号源开发

这个是本科期间开发的一套80米无线电测向信号源,为数不多的至今仍在社团使用的产品,无限接近于产品的程度,记录一下开发的过程。 BG2CRW自制80米信号源方案 为了可以在哈工大更广泛的普及无...

bg2crw
03/07
0
0
专访阿里巴巴量子实验室:最强量子电路模拟器“太章”到底强在哪?

本月早些时候,阿里巴巴量子实验室成功研制当前世界最强的量子电路模拟器“太章”的消息引起了一阵热议,有关量子霸权争夺战的言论不绝于耳。根据官方信息,基于阿里巴巴集团计算平台在线集群...

仁太
05/21
0
0
TI 的zigbee方案选型指南

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

code_style
04/13
0
0
单片机软件模拟SPI接口—加深理解SPI总线协议

单片机软件模拟SPI接口—加深理解SPI总线协议 SPI(Serial Peripheral Interfacer 串行外设接口)是摩托罗拉公司推出的一种同步串行通讯接口,用于微处理器臌控制器和外围扩展芯片之间的串行连...

长平狐
2013/06/03
136
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Akka构建Reactive应用《one》

看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,但是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。 ...

woshixin
11分钟前
0
0
ffmpeg源码分析 (四)

io_open 承接上一篇,对于avformat_open_input的分析还差其中非常重要的一步,就是io_open,该函数用于打开FFmpeg的输入输出文件。 在init_input中有这么一句 if ((ret = s->io_open(s, &s-...

街角的小丑
12分钟前
0
0
String,StringBuffer ,StringBuilder的区别

不同点 一、基类不同 StringBuffer、StringBuilder 都继承自AbStractStringBuilder,String 直接继承自 Object 2、底层容器“不同” 虽然底层都是字符数组,但是String的是final修饰的不可变...

不开心的时候不要学习
28分钟前
0
0
nodejs 文件操作

写文件code // 加载文件模块var fs = require("fs");var content = 'Hello World, 你好世界!';//params 文件名,内容,编码,回调fs.writeFile('./hello.txt',content,'utf8',function (er......

yanhl
30分钟前
0
0
SpringBoot mybits 查询为0条数据 但是在Navicat 中可以查询到数据

1.页面请求: 数据库查询: 2018-07-16 17:56:25.054 DEBUG 17312 --- [nio-9010-exec-3] c.s.h.m.C.selectSelective : ==> Preparing: select id, card_number, customer_id, customer_nam......

kuchawyz
40分钟前
0
0
译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具......

我叫半桶水
42分钟前
0
0
Artificial Intelligence Yourself

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流...

孟飞阳
55分钟前
0
0
press.one个人数字签名

这是我在press.one的数字签名 https://press.one/p/address/v?s=9d3d5b7ce019af357ab994775549e8f047a5b17fc9893364652fc67e4b95443b38ccb24c6655e0d252dd0154369eb9b7717c4ccf4e1835ca3596......

NateHuang
58分钟前
1
0
Oracle 中的 SQL 分页查询原理和方法详解

本文分析并介绍 Oracle 中的分页查找的方法。 Oracle 中的表,除了我们建表时设计的各个字段,其实还有两个字段(此处只介绍2个),分别是 ROWID(行标示符)和 ROWNUM(行号),即使我们使用...

举个_栗子
今天
4
2
C++ iostream、iomanip 头文件详解

大家好,我是ChungZH!这是我的第二篇博客。在这篇博客中,我将介绍一些有关C++的iostream和iomanip库的知识,希望大家喜欢! 首先,我们来看看iostream。 相信大家都知道iostream,这个库可以...

ChungZH
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部