|
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.
|
【晒心得】+ TI EZ430-CHRONOS-433 无线手表代码解析
作者EEWORLD网友 azhiking
开个帖子,共同学习EZ430。使用了一下EZ430-CHRONOS ,感觉挺酷的!不过也遇到这样那样的问题,看到坛子上不少大神都遇到了,所以我不是最幸运的,哈哈。所以先研究研究代码,想随后重新定制一下功能。因为很多配件要么压根没有,要么很贵,就像心律测试的,没有433MHz的,而且好几十美刀,消费不起啊。直接把这些个
功能去了,以后改成别的用途!看得到,用不到,闹心!!
以前没有接触过MSP430,所以估计有很多不妥当的地方,欢迎各位拍拍砖(别砸死我就行了)。另外也希望大家多多支持,增加点学习的信心,多点动力
代码分析,我想按照代码的执行路径,一步一步解析,有其他的引用,通过注释或者在后面的跟贴中解析。
EZ430-CHEONOS的相关文档也上传上来了,方便大家下载。
代码下载地址:http://www.ti.com/lit/sw/slac341c/slac341c.zip
比较大,里面还包含PC端驱动和软件,所以就不上传了。下面分析的代码就是这里安装包里面的代码。采用默认路径安装,则
代码的存放位置为:
C:\Program Files\Texas Instruments\eZ430-Chronos\Software Projects\Chronos Watch\eZ430-Chronos v1.1 - white PCB\CCS\Sports Watch
我收到的是白色PCB的版本,所以选择代码时选择V1.1 - white PCB。不知道有没有朋友收到黑色PCB的版本,相信那个版本还是使用
没有缩水的VTI的传感器。
啰嗦了这么多,下面开始代码分析。(一天写一点)
// Set of button flags
//sys结构体中标志位表包括系统中的标志位,结构体定义在project.h中
if (button.all_flags || sys.all_flags)
wakeup_event();
// Process actions requested by logic modules
//处理逻辑模块触发事件
if (request.all_flags)
process_requests();
// Before going to LPM3, update display
//有任何事件触发,更新显示
if (display.all_flags)
display_update();
}
}
上一贴子中Button和sys描述有误,都是联合体,由于帖子审核后不能编辑,只能在这里重新说明一下了。
说道这里,顺便提一下位域的概念。
我们看到联合体中定义了flag的结构体,每个成员后都有一个“:”加上一个数字1。如紫色标注部分。
至于原因和作用(以前也没有注意过,
从来么有用过MSP430,一看才发现头文件中很多都是这样定义的),参考了一下度娘,下面摘录了部分内容
/*以下内容摘自"度娘"*/
有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0
和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。
所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按
域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。
位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:
struct 位域结构名
{ 位域列表 };
其中位域列表的形式为: 类型说明符 位域名:位域长度
带有'位域'的结构体并不是按照每个域对齐的,而是将一些位域成员'捆绑'在一起做对齐的。
1. 一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始。
2. 由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位。
3. 位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的。
/*摘录部分结束*/
flag中定义了9个U16类型的成员,9个成员所占位域空间之和9bit>8bit(1byte),所以占2个字节的空间
这样一来,这个联合体只占2个字节的空间,节省了很多存储空间。
联合体中成员的英文注释已经比较明了啦,这里就不再翻译啦。
//XT1CLK:低频/高频晶振,可以用低频32768Hz手表晶振、标准晶振、陶瓷振荡器、或范围4MHz-32MHz的外部时钟源。
接上篇
参考电路
统一时钟系统模块包含5个时钟源:
XT1CLK:低频/高频晶振,可以用低频32768Hz手表晶振、标准晶振、陶瓷振荡器、或范围4MHz-32MHz的外部时钟源。
VLOCLK:内部非常低功率、低频率的12KHz典型频率的晶振
REFOCLK:内部的、修正过的、低频32768Hz典型频率振荡器,可以作为FLL的基准时钟。
DCOCLK:内部数控振荡器,可以用FLL稳定。
XT2CLK:可选择的高频振荡器,可以用标准晶振、陶瓷振荡器、或范围4MHz-40MHz的外部时钟源。
从统一时钟系统模块有3个有效的时钟信号:
ACLK:辅助时钟。ACLK可软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV和XT2CLK(如果有)的信号。DCOCLKDIV是在FLL模块作用下分频为1、2、4、6、8、16或32的DCOCLK频率。ACLK可软件选择为个人外设模块的信号。ACLK/n是ACLK被分为1,2,4,6,8,16,32,并且可以用一个引脚外部输出。
MCLK:系统主时钟。MCLK可软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV和XT2CLK(如果有)的信号。MCLK可分频为1,2,4,6,8,16或32。MCLK主要用于CPU与系统.
SMCLK:子系统时钟。SMCLK可软件选择来自XT1CLK、REFOCLK、VLOCLK、DCOCLK、DCOCLKDIV和XT2CLK(如果有)的信号。SMCLK可分频为1,2,4,6,8,16或32。SMCLK可软件选择为个人外设模块。
参考MSP430F6137的datasheet和EZ430的原理图,可以看到其使用的是P5.0和P5.1作为外部晶振的输入输出,所以有
P5SEL |= 0x03; // Select XIN, XOUT on P5.0 and P5.1
接下来配置CPU时钟为12MHz
// ---------------------------------------------------------------------
// Enable 32kHz ACLK
P5SEL |= 0x03; // Select XIN, XOUT on P5.0 and P5.1
UCSCTL6 &= ~XT1OFF; // XT1 On, Highest drive strength
UCSCTL6 |= XCAP_3; // Internal load cap
UCSCTL3 = SELA__XT1CLK; // Select XT1 as FLL reference
UCSCTL4 = SELA__XT1CLK | SELS__DCOCLKDIV | SELM__DCOCLKDIV;
// ---------------------------------------------------------------------
// Configure CPU clock for 12MHz
_BIS_SR(SCG0); // Disable the FLL control loop
UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx
UCSCTL1 = DCORSEL_5; // Select suitable range
UCSCTL2 = FLLD_1 + 0x16E; // Set DCO Multiplier
_BIC_SR(SCG0); // Enable the FLL control loop
// Worst-case settling time for the DCO when the DCO range bits have been
// changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
// UG for optimization.
// 32 x 32 x 12 MHz / 32,768 Hz = 375000 = MCLK cycles for DCO to settle
__delay_cycles(375000);
// Loop until XT1 & DCO stabilizes, use do-while to insure that
// body is executed at least once
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG; // Clear fault flags
}
while ((SFRIFG1 & OFIFG));
// ---------------------------------------------------------------------
// Configure port mapping
// Disable all interrupts
__disable_interrupt();
// Get write-access to port mapping registers:
PMAPPWD = 0x02D52;
// Allow reconfiguration during runtime:
PMAPCTL = PMAPRECFG;
// P2.7 = TA0CCR1A or TA1CCR0A output (buzzer output)
ptr = &P2MAP0;
*(ptr + 7) = PM_TA1CCR0A;
P2OUT &= ~BIT7;
P2DIR |= BIT7;
//参考原理图
//配置SPI接口
// P1.5 = SPI MISO input
ptr = &P1MAP0;
*(ptr + 5) = PM_UCA0SOMI;
// P1.6 = SPI MOSI output
*(ptr + 6) = PM_UCA0SIMO;
// P1.7 = SPI CLK output
*(ptr + 7) = PM_UCA0CLK;
// Disable write-access to port mapping registers:
PMAPPWD = 0;
// Re-enable all interrupts
__enable_interrupt();
// ---------------------------------------------------------------------
// Configure ports
// ---------------------------------------------------------------------
// Reset radio core
radio_reset();
radio_powerdown();
// ---------------------------------------------------------------------
// Init acceleration sensor
//初始化加速度传感器
as_init();
// ---------------------------------------------------------------------
// Init LCD
//初始化LCD
lcd_init();
// ---------------------------------------------------------------------
// Init buttons
//初始化按键
init_buttons();
// ---------------------------------------------------------------------
// Configure Timer0 for use by the clock and delay functions
//配置Timer0
Timer0_Init();
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// Init pressure sensor
//初始化Bosch压力传感器
bmp_ps_init();
// Bosch sensor not found?
//如果配置失败,清除标志位,然后初始化VTI SCP1000压力传感器,这个是为了兼容黑色pcb版本的Chorons。
if (!ps_ok)
{
bmp_used = 0;
cma_ps_init();
}
else
{
bmp_used = 1;
}
}
参考原理图:
// *************************************************************************************************
// @fn test_mode
// @brief Manual test mode. Activated by holding buttons STAR and UP simultaneously.
// Cancelled by any other button press.
// @param none
// @return none
// *************************************************************************************************
void test_mode(void)
{
u8 test_step, start_next_test;
u8 *str;
u8 i;
// Disable timer - no need for a clock tick
//关闭定时器
Timer0_Stop();
// Disable LCD charge pump while in standby mode
// This reduces current consumption by ca. 5礎 to ca. 10礎
LCDBVCTL = 0;
// Show welcome screen
//显示LCD的所有字段
display_chars(LCD_SEG_L1_3_0, (u8 *) "0430", SEG_ON);
display_chars(LCD_SEG_L2_4_0, (u8 *) "CC430", SEG_ON);
display_symbol(LCD_SEG_L1_COL, SEG_ON);
display_symbol(LCD_ICON_HEART, SEG_ON);
display_symbol(LCD_ICON_STOPWATCH, SEG_ON);
display_symbol(LCD_ICON_RECORD, SEG_ON);
display_symbol(LCD_ICON_ALARM, SEG_ON);
display_symbol(LCD_ICON_BEEPER1, SEG_ON);
display_symbol(LCD_ICON_BEEPER2, SEG_ON);
display_symbol(LCD_ICON_BEEPER3, SEG_ON);
display_symbol(LCD_SYMB_ARROW_UP, SEG_ON);
display_symbol(LCD_SYMB_ARROW_DOWN, SEG_ON);
display_symbol(LCD_SYMB_AM, SEG_ON);
// Hold watchdog
//关闭看门狗
WDTCTL = WDTPW + WDTHOLD;
// Wait for button press
//等待按键
_BIS_SR(LPM3_bits + GIE);
__no_operation();
// Clear display
//清除LCD显示
display_all_off();
#ifdef USE_LCD_CHARGE_PUMP
// Charge pump voltage generated internally, internal bias (V2-V4) generation
// This ensures that the contrast and LCD control is constant for the whole battery lifetime
LCDBVCTL = LCDCPEN | VLCD_2_72;
#endif
// Renenable timer
//使能Timer0
Timer0_Start();
// Debounce button press
//按键去抖,延时100ms
Timer0_A4_Delay(CONV_MS_TO_TICKS(100));
//
//按键定义见上原理图,P2口,0,1,2,3,4
#define BUTTON_STAR_PIN (BIT2)
#define BUTTON_NUM_PIN (BIT1)
#define BUTTON_UP_PIN (BIT4)
#define BUTTON_DOWN_PIN (BIT0)
#define BUTTON_BACKLIGHT_PIN (BIT3)
#define ALL_BUTTONS (BUTTON_STAR_PIN + BUTTON_NUM_PIN + BUTTON_UP_PIN + \
BUTTON_DOWN_PIN + BUTTON_BACKLIGHT_PIN)
参考图片:
#define LPM0_bits (CPUOFF)
//void __bis_SR_register(unsigned short);
//功能:将CPU 中SR 寄存器中的某些位置1。其参数为屏蔽码,需要置1 的位为1。
作者: EEWORLD网友cat3902982
2013-9-6 23:24
2013-9-6 23:24
2013-9-6 23:24
2013-9-6 23:24
作者:EEWORLD网友cat3902982
【晒心得】TI的频谱分析仪-入门心得
【晒心得】TI的频谱分析仪-使用心得
作者:EEWORLD网友cat3902982
这里先讲下我测试的输入信号:
1.433MHz的数据传输模块的发射信号;
2.315MHz的信号数据传输模块的发射信号;
首先我测试的是433MHz的模块,打开RF Settings 标签。将EasyRF 按钮弹开,选择频端在389MHz-463MHz,模式为扫频模式,从389.5MHz扫到460.5MHz;选择连续扫描模式。点击开始按钮。如下图所示:
这时我们看到430MHz-440MHz之间有检测到信号,在将扫描的设置值修改为430MHz-440MHz;点击开始按钮。如下图所示:
这时我们看到432MHz-436MHz之间有检测到信号,在将扫描的设置值修改为432MHz-436MHz;点击开始按钮。如下图所示:
这时,可以测到我433MHz的信号的中心频点在433.85MHz左右。
上面使用的连续扫描的方式测到信号的频谱,这时我们采用中心频点加频偏的方式。如下图所示,中心频点设为433MHz、频偏设为3MHz。点击开始扫描按钮。
这时也可以测到信号的中心频点和信号强度的信息。
同样的方式,我们在测试315MHz的时候,先选择频段:300MHz-348MHz,设置扫描的开始频点300MHz、结束频点340MHz。选择连续扫描模式。点击开始按钮。如下图所示:
按433MHz同样的方式,测到最后信号的中心频点在315MHz附近,如下图所示:
用中心频点家频偏的扫描方式,如下图所示。
在频谱仪工作在采集模式的时候,其硬件工作状态如下图所示:
注意下:在连续出发的模式下:以上图中的红线,是实时的测试数据,绿线是红线检测到的最高值。
在单次出发的模式下:没有红线,绿线就代表测到的数据。
本来也不知道TRACE和MAKERS两个标签栏干嘛的,摸索了下,发现他们是用来测试信号的dB值的,如下图所示:
右边下边的旋钮是控制测试线调动的,在测试线的上方会显示,当前测试信号的dB值,用起来也比较方便,这些线的使能是在TRACES标签中进行控制。如下图所示
不过这里也发现了个问题,当我测试完后,这些线不需要使用,我将各个TRACE都关闭的时候,软件出现了bug,如下图所示:
总结:TI的这款精简版的频谱分析仪,我觉得是基础功能OK,扩展功能需要更强大点!
它能测试的频段有限制,我觉得是CC430本身的限制,它自身就只支持那3个频段。
他的功能也非常的有限,希望TI在后续的时候可以在这个软件的基础上再开发些功能。我看到一个带宽的设置(如下图所示),不知道是不是数据的带宽的设置,如果以后能加数据的解析的功能的话,这个分析仪就真的买赚了哈!
具体的硬件测试的器件,明天再拍照上传吧!
【晒心得】TI的频谱分析仪底噪不同的分析
作者:EEWORLD网友cat3902982
在看到有其它网友也买了这个分析仪,突然发现我跟其的底噪相差很大。今天晚上尝试着找找原因。我主要改变了软件设置中的RefLvl,将其值分别设置如下:
RefLvl = -70dB时其底噪如下:
RefLvl = -50dB时其底噪如下:
RefLvl = -35dB时其底噪如下:
从上面可以看出设置RefLvl会对底噪的显示会产生影响。
上个帖子中【晒心得】TI的频谱分析仪-使用心得使用的信号发射器如下图所示:左边是一个433MHz的信号发射模块,右边是一个315MHz的信号发射模块。这两个其实跟我们平时见到的电动卷帘门的遥控器或者电瓶车的防盗遥控器是一样的。
当这边有信号发出时,设置不同的RefLvl值时其测到的波形如下
RefLvl = -70dB 315MHz测试波形如下:
RefLvl = -50dB 315MHz测试波形如下:
RefLvl = -35dB 315MHz测试波形如下:
从上图中可以看出,当RefLvl的设置值较低时,其灵敏度较高,测到的信号较多;当RefLvl的设置值较低时,其灵敏度较高,测到的信号较集中。就像对信号进行了滤波后的显示。
本来买这个东西的目的,主要是想调试上面的遥控器。那个433MHz的信号发射有问题,接收不是太灵敏。总是一会能收到信号,一会收不到信号。用这个频谱 仪看了下信号,发现个问题,就是这个发射器的中心频点并不在433MHz,而是在433.9MHz上,不知道这个是不是接收不太灵敏的主要原因。还希望懂 无线通信的大虾可以科普讲解下。这个跟它的数据带宽有关吗?
【晒心得】TI的频谱分析仪测试EZ430-CHRONOS-433 的无线信号
作者:EEWORLD网友cat3902982
今天把我在论坛买的EZ430-CHRONOS-433 的无线手表,想通过频谱分析仪测试一下手表的信号,结果测了半天啥也没测到,白忙活了半天。
也不知道为什么,感觉是不是手表的信号太弱了。因为在使用AP板的时候也是,手表必须离AP板50cm左右,当超过这个值的时候,通信就没有反应了。
还有发现了一个BUG,就是频谱分析仪,和CHRONOS-433 的无线AP不能同时使用,在打开上位机的时候,两个当中只能有一个在工作。我也检查了硬件,两个的COM口也是不一样的,按理说TI自己的东西应该可以兼容的啊,不知道为啥会出现这样的情况。
信号测了半天,也没测到啥,也就不贴图了,不过这个BUG到是很好奇是怎么回事了????
【晒心得】初步使用CC2541 SensorTag
作者:EEWORLD网友wangfuchong
CC2541 SensorTag Quick Start Guide
在属性列表中按级别显示服务,特性和属性,暂不详述。
上面代码中在SensorTag.c中直接调用了:
而在在源文件hal_irtemp.c中有这样一段代码是注释掉的没有使用:
而BLE Device Monitor软件好像没有源代码,不知道怎么处理的。各位使用iPAD什么的,里面有关于校准的选项么?
【晒心得】eZ430-chronos上手试用
作者:EEWORLD网友johnrey
2013-10-15 21:44
2013-10-15 21:44
2013-10-15 21:44
2013-10-15 21:44
2013-10-15 21:44
【晒心得】 Chronos无线手表套件到手开箱~~~~~【多图杀猫^_^】
作者:EEWORLD网友anqi90
本来早就该到了,结果到了北京就趴在那里不动了,等了一个多星期还是没动静....
昨天受不了了,给FedEx发了封邮件,问是不是出问题了,结果今天一查,已经开始派送了,之前是给我忘了吧!!!!郁闷
不过好歹是到手了,这个无线手表可是垂涎已久了啊,想当初论坛里做活动,秒杀还是什么来着,还要200多,如今177到手,感觉很好啊有木有~~~
好啦,废话不多说,上图喽~~~~
显示FedEx的箱子,好大一个,吓了一跳.....
打开,原来大半都是空的
真正的主角还是很小巧的嘛,话说MM很漂亮啊有木有....
再打开...da ta~~~
全家福,一个编程器,一个PC端,两个备用螺丝,一个连接排针,一个螺丝起子,再有就是主角——无线手表咯
下载器和PC端特写——
手表上的贴膜:It‘s always somewhere. 430确实应用得很广泛啊
手表显示效果:
背光效果:
表带很厚实,很有质感
带扣的金属磨砂质感也很好啊,做工很精致
拆开,后盖上的Made in China....→_→
机芯,下面的应该是气压传感器,可以测量海拔高度:
机芯设计的非常紧凑,很厉害啊
ok,首次的开箱就发这么多吧,具体的还要以后慢慢研究一下
不得不说,这个手表作为一个开发工具是很不错的,创意也很好,但是要是作为普通手表戴出去....还是略显大了一点啊.....
哈哈,总之,祝大家玩得开心!
【晒心得】+ eZ430-Chronos 无线手表初体验
作者:EEWORLD网友newofcortexm3
于9月7日在德州仪器estore官网下订单,11日发货,14日到达深圳,由于周末不派送,如预期在今天(16日)下午收到。话说联邦快递的服务真心不错,先询问我是否方便收货,询问收货的地点,之后再次通知我去我指定的地点取货。取货完之后还对我道谢,不得不感慨服务真是周到(PS:听说联邦快递的国际件要100$,不知真假,求验证)。
先来看看包裹吧,方方正正的,包的很严实。货品信息和收货人的信息到处可见,可见德州仪器对客户的尊重啊。
打开包裹之后,是无线手表的包装盒与出口信息表单,中间放了不少填充物。打开包装盒,里面的物件如下:eZ430-Chronos手表一块,一个eZ430-RFUSB调试接口(图中手表左侧),一个MSP430F5509+CC1101USB RF访问点(图中手表右侧),一个微型飞利浦螺丝刀。
图中手表的时间已经经过调整,调整的方法如下:
1. 按下“*”按钮直到顶部LCD显示行上显示出时间。
2. 按住“*”三秒钟直到时间显示消失并且“12H”或“24H”显示在LCD上。
3. 通过按下"UP" 或"DOWN"(“上”或“下”)按钮来选择12H/24H模式。
4. 按下“#”继续进行时间调节。
5. 按下"UP" 或"DOWN" 按钮来设定小时。
6. 按下“#”继续进行分钟调节。
7. 按下"UP" 或"DOWN" 按钮来设定分钟。
8. 按下“#”继续进行秒调节。
9. 按下"UP" 或"DOWN" 按钮来设定秒。
10.按下“*”来确认设置并返回正常运行,或按下“#”来重新开始第2步。
EZ430-Chronos无线手表的具体模式下图所示:
其他模式的具体设定见手册SLAU292E,中文版手册编号ZHCU020D(2011年3月版) eZ430-Chronos开发工具用户指南.pdf (7.28 MB) ,发现其中有点小错误,已修改。
简单的测试了ACC模式。首先得打开上位机软件eZ430-Chronos Control Center,将MSP430F5509+CC1101USB RF插入普通USB接口,一般情况下会默认安装驱动。如果遇到安装失败的情况,可到安装路径下更新驱动程序,例如D:\Program Files\Texas Instruments\eZ430-Chronos\Driver。接着点击Start Access Point(如下图),CC1101USB RF的LED闪烁。在eZ430-Chronos手表底部LCD显示行上选择"ACC"模式并按下"DOWN" 按钮来激活数据传输。手表界面上出现外放的图标,并且闪烁。
当连接成功后,上位机界面的X、Y、Z轴上出现连续变化的曲线,当摆动手表的幅度突然变大,曲线的变化剧烈,底下的Status栏实时显示三轴加速度计分别在X、Y、Z轴上的值。
在上位机界面端点击Mouse on,摆动手表就可以看到鼠标的移动。当要退出链接状态时,先在手表端按Down键,再在上位机端点击stop Access Point,链接就会断开,手表恢复到ACC模式下。
对其他模式进行了简单的把玩,等有机会再深入专研一番,最后放上一张戴在手上的靓照。
【晒心得】+ ez430 chronos 无线更新
作者:EEWORLD网友reayfei
更 新开始时,LCD 将显示几秒钟"rAM"。在这段时间内,实际更新程序软件从PC 下载至手表上CC430的RAM 内。这个程序包含所有内存写入和LCD 例程。这个传输完成时,代码从RAM 中执行,并且开始固件文件的下载。LCD 在上部LCD 显示行内用百分比显示下载进程。传输完成后,一个复位启动手表内的软件。
【晒心得】Ez430-Chronos-433无线手表试用小记
作者:EEWORLD网友sdnumcu
2013-10-8 22:28
2013-10-8 22:28
2013-10-8 22:30
2013-10-8 22:30
【晒心得】+ sensortag和无线手表之初次接触
作者:EEWORLD网友yangking91
2013-10-19 00:00
2013-10-19 00:00
先找资料,站在巨人的肩膀上嘛,,有用的链接:
BLE Device Monitor User Guide:http://processors.wiki.ti.com/index.php/BLE_Device_Monitor_User_Guide
CC2541 迷你开发套件:http://www.ti.com.cn/tool/cn/cc2541dk-mini#0,这个开发套件包含1 个 CC2540 USB 软件狗:此器件将用作 BLE 主设备。它连接 Windows PC 的 USB 端口,并预先载入了主设备演示应用软件。1 张 CC2541 密钥卡:此器件将用作 BLE 从属设备。密钥卡可以安装在随附的塑料外壳内。它使用一颗 CR2032 钮扣电池供电,并包含双色 LED、蜂鸣器、加速计和两个按钮。1 个带有附件的 CC 调试器:用于将软件闪存到 USB 软件狗以及密钥卡上。它还可以用于通过 IAR 嵌入式工作平台调试软件。
bluetooth sensortag:http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag
sensortag user guide:http://processors.wiki.ti.com/index.php/SensorTag_User_Guide很好的入门资料
sensortag firmware:http://processors.wiki.ti.com/index.php/SensorTag_Firmware
CC2540 USB Evaluation Module Kit: http://www.ti.com/tool/cc2540emk-usbDebugger and Programmer for RF System-on-Chips:http://www.ti.com/tool/cc-debugger
EZ430-chronos: http://processors.wiki.ti.com/index.php/EZ430-Chronos先找这么多,找多了也看不完,如果还有以后再补
自己找的蓝牙4.0开发教程:http://pan.baidu.com/s/1rEQSj
心得
为什么买sensortag?一个原因是ti的促销活动,第二个原因是senortag上的资源,再加上看了一个sensortag应用的短篇,决定购买 了。付完款后,提示缺货,要两个星期以后才发货,就等吧。等到发货后的第三天,突然提示我地址错误,电话错误,终止送货。打电话才知道ti把电话号码弄错 了,又拖了5-6天才搞定。货到手上了,打开包装,做工果然不错。使用的时候才发现自己手机的蓝牙无法连接,下载android app也无法安装成功,总提示无法安装。查了网上才知道,sensortag是蓝牙4.0的,而我的手机上的蓝牙是2.1的,两者不兼容,2.1蓝牙无法 搜寻到4.0的蓝牙设备。需要android 4.3才能安装上那个软件。支持的手机型号不多,主要有这些:
还有苹果的产品:
傻眼了,这些东西都没有,肿么办?还好有个orico的蓝牙4.0的usb适配器,用的是csr8510的芯片。用这个试一试,看看能不能使用
将适配器插到usb口,可以成功搜寻到sensortag,然后我安装了ble device monitor和btool,以为这样可以通过蓝牙串口来和sensortag通讯。
可是,事实上,需要CC2540 USB dongle 这个东西,我没有,在taobao上查了一下98元一个。看来还缺东西,电脑上也用不了。我想问一下为什么不能用这个orico的蓝牙适配器呢,不是已经 成功搜到了sensortag吗?那个cc2540 usb dongle也是一个蓝牙适配器嘛,只不过芯片不同而且个头大一些没外壳。是不是要开发一个基于csr8510的软件才能在电脑上观察sensortag 传感器的数据呢?
光有这个usb dongle还不够,想开发sensortag的固件程序还要一个仿真器,叫cc-debugger,在taobao上查了一下,不多不少还是98元。看来干什么都得查清楚需要些什么,有什么条件等,不能盲目购买。
【晒心得】Chronos运动手表初体验
作者:EEWORLD网友nightseas
eZ430-Chronos手表连接PC遇到大问题,已解决
作者:EEWORLD网友gaoyang9992006
我的手表也到了,不过把玩之后就开始安装电脑客户端软件以及安装USB AP的驱动程序,当一切搞定后,按照说明把COM波特率改成了115200,一切OK了,开启PC软件,然后启动连接模式,这个时候USB-AP开始闪亮 蓝色LED,这说明电脑那边的AP工作正常了,OK,再启动手表,通过#调节进入ACC模式,按下DOWN手表上的发射信号图标闪动,不过悲剧也发生了, 等了半天连接不上,PC的软件始终没有收到任何信号,没有连接成功,但是我按照说明再次按下DOWN也无法退出手表的ACC连接模式了,没办法我只有开开 后盖取了电池让系统复位,真悲催啊。
有谁成功的进行无线连接了,求指导
*****************************************************************************************************************************************
[size=13.63636302947998px]上面是我遇到的问题,有一部分同学购买的都是这个问题的手表,现在解决方法找到了,如下
[size=13.63636302947998px]下载软件 MSP430 Application UART(串口驱动).rar (14.47 KB)
FET-Pro430-Lite-Setup.rar (14.03 MB) [size=13.63636302947998px]安装好后启动下面的软件,然后看第二幅图的配置,以及圈起来的地方,点击进去找到路径
[size=13.63636302947998px]C:\Program Files\Texas Instruments\eZ430-Chronos\Recovery\Chronos Watch\Applications下面的
[size=13.63636302947998px]Recovery_ez430_chronos_433MHz_2_0.txt文件,然后自动完成
[size=13.63636302947998px]前提当然是安装好上面的那个驱动,然后将手表芯的通信接口和那个UART的编程器连接好安装到USB接口上
[size=13.63636302947998px]另外附上该手表的中文使用说明书: zhcu020d.pdf (7.21 MB)
解决Chronos手表无法读取时间(Copy System Time)的问题
作者:EEWORLD网友southwolf1813
这个表达式得到的结果是一个两位数的月份,比如现在就是"09"
CCC里直接将这个09转成整数,但由于0开头的默认都是八进制数,遇到08 09这样的直接就歇菜了……
解决办法:
先干掉前导零
找到代码文件eZ430-Chronos CC 1_2.tcl 里面的函数 sync_get_time_and_date
把这一行
替换成
即可。
编译好的文件见附件。下载后请复制到原CCC文件夹下(需要调用eZ430_Chronos_CC.dll)运行
参考链接:
TCL语言里的月份问题 http://wiki.tcl.tk/948
如何把TCL程序打包成exe http://wiki.tcl.tk/11861
2013-9-28 07:10, 下载次数: 3
, 售价: 芯币 1 枚 [记录] [购买]
修复的Control Center
TI促销活动中的频谱分析仪浅谈
作者:EEWORLD网友wstt
大家有没有注意到这个频谱分析仪?
http://bbs.eeworld.com.cn/TI/20130901/
就是这个货。
频谱分析设备在我们看来经常就代表着高端大气上档次,最重要的是贵!顺带说一句这次TI只要50刀算是良心价了。
为何这个频谱分析仪这么便宜呢?
之前我就给大家介绍过一次这个设备,它并不是1GHz以下全频段的分析设备,它的分析频段在:
300 MHz to 348 MHz, 389 MHz to 464 MHz, and 779 MHz to 928 MHz 这三个频段,基本上对应ISM频段。(这个里面我国只有433.05-434.79 MHz这个是ISM的,至于具体做什么的大家看下面)。900MHz这个频段就可以看手机通讯的频带了。
说了这么多关于频带的扯远了。
这个板子在249刀的时候大家不舍买,更不舍得得拆。现在一降价,马上就被拆掉了:
http://bbs.eeworld.com.cn/thread-379764-1-1.html
拆开外壳,可以看到板子。非常的简洁,单面焊接,应该是两层板。
红色就是主芯片:CC430F6137
黄色:USB桥接新品TUSB3410,大家的JTAG的USB调试器上都用的这个。
绿色:暂时还没去查具体的型号,从走线上看应该是USB的保护芯片,跟5529的开发板上用的应该差不多。
粉红色:DCDC电路(升降压明天继续讨论)
紫色:LDO
棕色:还没想到是什么。
今天先到这里,明天继续分析。
--------分割线,弄晚了,写不了多少-,但是不能放大家鸽子--------
USB的保护器件我今天查了下,应该是TI自己的ESD的保护器,根据这个封装,应该是这个器件
http://www.ti.com.cn/product/cn/sn75240
对照照片的电路布线,两个信号线D+ 和D-是对上的,暂且就认定是它好了。
CC430F6137是MSP430和CC1101的混搭
CC1100算是明星射频SOC了,在中国感觉挺畅销的,CC1101就是CC1100的替代芯片。(芯片换代,实属正常)
那么频谱仪的射频IC就靠CC1101了,红色框框就是CC1101支持的频段,这个频谱分析仪其实就是和这些个频段对应。
------------------------------------困了,得睡觉了,再聊----------------------------------------------------------------------
【晒心得】收到MSP-SA430-SUB1GHZ后之初应用
作者:EEWORLD网友dwwzl
之前一直垂涎品牌射频分析仪,现在终于熬到了自个拥有了一台MSP-SA430-SUB1GHZ 的频谱分析仪,虽然是3个频段而不是全频段的,好在最近一直围绕着315M和433Mhz设计东东,想想也够了,即使有用到2.4G的,再想办法吧哈!
到手时,外包装好大的纸盒子,仍是一贯的TI包装哦!上图说明
打开盒子,就是全家福了
数据线好长,部分的弥补了些不是便携的不足哦,一路安装,链接硬件,天线也有个好特点,就是它的旋转是单向的。不知道大家有注意到没有呐!
软件界面也很友好,就是频率设置放在了第二项。每次都得点点鼠标了,频率设置为手机频段 900M±20Mhz,测得的室内环境信号,如下图:
高起的信号会随时间不断的密集,估计是多个手机待机时的网络搜寻通信所需吧
接下来开始用手机给另一个手机打电话,看到好大的信号起伏啊!
自个的切身感受是:“哥们们,以后可要距离手机远一点吧,这辐射高的不得了哇!” 对了,忘了说了,我测试的过程中,手持机可是距离频谱分析仪有1m远呐!辐射还是这么的强!接通后的观察,信号会降下来些,但是辐射也是时大时小的了。
接下来就是自个做的遥控器的发射信号检测了,
我选了两个不同功率的315MHz的遥控手柄,一个是标称距离1000m的,发射电流大概在15mA左右,一个是标称距离50m的,发射电流大概在7mA左右。
首先软件设置改为315MHz±1Mhz,对自个的产品频偏还是有信心的哈!
看看环境信号吧
还好吧,信号不是太嘈杂了,放大探测窗口后发现在312Mhz那里有更强信号,不知是不是ufo发来的呢!呵呵,反正不是我这里的信号
接着测试一个小功率的遥控手柄,
测试时,未拉开天线,任意的按下一个按键,绿色包络线就是记录的信号达到的程度。
测试时,手碰触天线并拉开时的信号,频率宽度增大了,功率也增大了n倍呀!
接着,又测试了大功率的遥控手柄,
每次测量后,需要点击一下软件上的运行按钮才可以消除之前的绿色包络线记录哦!
下图是按下任意发送键的信号,手柄距离频谱仪仍是1m的距离
未拉开天线的信号也很强的,难怪遥控距离远了,
接着用手拉开天线发射的信号,强度那个大呀!,电池那个费呀!
好了,以上是昨天收到后匆忙测试的效果,遥控手柄距离频谱仪是1m远,
我不知道这样测是不是规范,但是因为还不是很熟悉软件的设置和频谱仪的特性,还没有想好如何对测量的信号进行量化。
有哪位大侠知道的,指导一下咱了,俺在此先谢过了!
SensorTag android设备试用(含android app)
作者:EEWORLD网友eric_wang
参与论坛TI促销,我抢红包!活动,本来想等到货了发个开箱,看到订购的SensorTag 从大西洋那边飘过来仅用了3天,这速度让我和小伙伴们都惊呆了一把
可惜到货那天是周五,没给派送,一直等到今天下午终于送来了,看到坛子里的大神们好多已经比我先拿到了板子,而且发了不错的开箱,相关链接请看:
[晒心得]CC2541DK-SENSOR 骚红,非常漂亮!
TI Sensortag收到了!
【晒心得】CC2541到了哦,我是不是第一个收到的呢
照片拍的都很赞哦!
我这里就不做开箱了下午收到SensorTag后,上网找了一圈app,手头没有ios设备,碰巧有个刚刚升级到android4.3的N4,支持蓝牙4.0 BLE这就齐活了!匆忙的在谷歌商店里搜了一圈,你们懂得,很显然搜不到。事先没看文档,主要是因为都是英文的,我英语很渣,所以……终于在一位坛友的帮助下(他给我传过来一个Ti的适用于android的app) SensorTag_0_9_3.apk.zip (793.05 KB)
立刻装上见下图
心情那个激动啊,先打卡蓝牙
打开软件之后提示让按SensorTag侧面的按钮,轻按一下
出现这个页面之后点击连接
默认只勾选了四个传感器,再点击连接,此时SensorTag上面会有个黄色的led灯闪烁约3秒钟,连接成功后灯就熄灭了,如下图
连接成功数据出来了,随着移动SensorTag,数据会有所变化,就如同演示视频演示的样子。
SensorTag 的红色外壳是橡胶材质的,手感很好,起到了抗震防摔的作用。但是这里明显能感觉到android设备的app没有ios的给力,界面简单,功能单一,不能 显示统计数据图表,而且当你同时选择4个以上传感器之后就会提示只能选择4个,如果想选择多个请重新启动,我启动了N次都没成功,现在选择温度、湿度传感 器还总出现连接失败的提示,不知道是不是那两个传感器挂了,还是软件出现什么问题了大家有遇到过这类问题的吗?等周末用ios设备试试看。
说说 TI eZ430-Chronos 改日期格式
作者:EEWORLD网友upc_arm
手表默认的显示日期格式是 日.月 ,看起来很不爽。晚上改了一下程序 ,改过来了。
拆手表,费了一些劲,而且装上去之后按键就没有以前好使了。。。
说一说怎么改程序吧。
1 白色的是1.1版本,在1.1文件夹里,有个 CCS和IAR,结果两个文件夹里的例程是不一样的,我一直以为是相同的例程,不同的开发环境呢。
在CCS文件夹里有个 SportWatch工程,打开这个工程,在 logic/data.c文件中 display_date 函数
// Convert day to string
str = itoa(sDate.day, 2, 0);
if (sys.flag.use_metric_units)
{
display_chars(switch_seg(line, LCD_SEG_L1_3_2, LCD_SEG_L2_3_2), str, SEG_ON);
}
else
{
display_chars(switch_seg(line, LCD_SEG_L1_1_0, LCD_SEG_L2_1_0), str, SEG_ON);
}
// Convert month to string
str = itoa(sDate.month, 2, 0);
if (sys.flag.use_metric_units)
{
display_chars(switch_seg(line, LCD_SEG_L1_1_0, LCD_SEG_L2_1_0), str, SEG_ON);
}
else
{
display_chars(switch_seg(line, LCD_SEG_L1_3_2, LCD_SEG_L2_3_2), str, SEG_ON);
}
// Display "." to separate day and month
display_symbol(switch_seg(line, LCD_SEG_L1_DP1, LCD_SEG_L2_DP), SEG_ON);
只需要将 month 和 day 换一下位置就可以了。
TI工程师,你好!想买1个MSP-SA430-SUB1GHZ ,发现好像过了促销日期了,不知道现在还能不能,以折扣价买上。谢谢!