蓝牙cc2541蓝牙模块原理图的未连接的io口悬空会出现什么情况

CC2541按键修改,IO配置问题 - 蓝牙Bluetooth 技术 - 德州仪器在线技术支持社区
CC2541按键修改,IO配置问题
发表于1年前
<input type="hidden" id="hGroupID" value="42"
各位大神你们好:&/p>
&p>&span>在CC2541simpleBLECentral示例工程中,把之前的IO配置改p1.1和P1.2口作为按键,参照/question_answer/wireless_connectivity/bluetooth/f/103/p/.aspx#157410和SensorTag来配置,但改后不成功,还请各位大神帮我看看.......&/span>&/p>
&p>这是我已修改后的地方:&/p>
&p>在hal_board_cfg.h中&/p>
&p>/* S1 */&br>#define PUSH1_BV &BV(1)&br>#define PUSH1_SBIT &P1_1&br>#define PUSH1_POLARITY &ACTIVE_LOW&br>/*S2*/&br>#define PUSH2_BV BV(2)&br>#define PUSH2_SBIT P1_2 &br>#define PUSH2_POLARITY ACTIVE_LOW&/p>
&p>#if defined ( &a href=&.cn/product/cn/CC2540& target=&extwin&>CC2540&/a>_MINIDK )||(WB_BOARD) // 在编译中添加(WB_BOARD)&br>/* SW_1 is at P1.1 */&br>#define HAL_KEY_SW_1_PORT &P1&br>#define HAL_KEY_SW_1_BIT & & &BV(1)&br>#define HAL_KEY_SW_1_SEL & &P1SEL&br>#define HAL_KEY_SW_1_DIR & & P1DIR&/p>
&p>/* SW_2 is at P1.2 */&br>#define HAL_KEY_SW_2_PORT & & P1&br>#define HAL_KEY_SW_2_BIT & & & &BV(2)&br>#define HAL_KEY_SW_2_SEL & & & P1SEL&br>#define HAL_KEY_SW_2_DIR & & & P1DIR&/p>
&p>#define HAL_KEY_SW_1_IEN & & & & & IEN2 /* CPU interrupt mask register */&br>#define HAL_KEY_SW_1_ICTL & & & & &P1IEN /* Port Interrupt Control register */&br>#define HAL_KEY_SW_1_ICTLBIT & &BV(1) /* P1IEN - P1.1 enable/disable bit */&br>#define HAL_KEY_SW_1_IENBIT & & &BV(4) /* Mask bit for all of Port_1 */&/p>
&p>#define HAL_KEY_SW_1_PXIFG & & & P1IFG&br>#define HAL_KEY_SW_2_IEN & & & & & IEN2&br>#define HAL_KEY_SW_2_ICTL & & & & P1IEN&&br>#define HAL_KEY_SW_2_ICTLBIT & BV(2)&&br>#define HAL_KEY_SW_2_IENBIT & & BV(4)&&br>#define HAL_KEY_SW_2_PXIFG & & & P1IFG&/p>
&p>#define HAL_KEY_SW_1_EDGEBIT BV(0)&/p>
&p>在simpleBLECentral.c&/p>
&p>static void simpleBLECentral_HandleKeys( uint8 shift, uint8 keys )&/p>
&p>if(keys & HAL_KEY_SW_1)&br> {&br> epd_dis_Rssi_db(01);//显示数字01&br> }&br> if(keys & HAL_KEY_SW_2)&br> {&br> epd_dis_Rssi_db(02);//显示数字02&br> }&/p>
&p>按键按下后还是无法显示,其中epd_dis_Rssi_db( );函数没有问题,是不是还有其他地方没有修改到位?&/p>&div style=&clear:&>&/div>" />
CC2541按键修改,IO配置问题
此问题尚无答案
All Replies
各位大神你们好:
在CC2541simpleBLECentral示例工程中,把之前的IO配置改p1.1和P1.2口作为按键,参照/question_answer/wireless_connectivity/bluetooth/f/103/p/.aspx#157410和SensorTag来配置,但改后不成功,还请各位大神帮我看看.......
这是我已修改后的地方:
在hal_board_cfg.h中
/* S1 */#define PUSH1_BV &BV(1)#define PUSH1_SBIT &P1_1#define PUSH1_POLARITY &ACTIVE_LOW/*S2*/#define PUSH2_BV BV(2)#define PUSH2_SBIT P1_2 #define PUSH2_POLARITY ACTIVE_LOW
#if defined ( _MINIDK )||(WB_BOARD) // 在编译中添加(WB_BOARD)/* SW_1 is at P1.1 */#define HAL_KEY_SW_1_PORT &P1#define HAL_KEY_SW_1_BIT & & &BV(1)#define HAL_KEY_SW_1_SEL & &P1SEL#define HAL_KEY_SW_1_DIR & & P1DIR
/* SW_2 is at P1.2 */#define HAL_KEY_SW_2_PORT & & P1#define HAL_KEY_SW_2_BIT & & & &BV(2)#define HAL_KEY_SW_2_SEL & & & P1SEL#define HAL_KEY_SW_2_DIR & & & P1DIR
#define HAL_KEY_SW_1_IEN & & & & & IEN2 /* CPU interrupt mask register */#define HAL_KEY_SW_1_ICTL & & & & &P1IEN /* Port Interrupt Control register */#define HAL_KEY_SW_1_ICTLBIT & &BV(1) /* P1IEN - P1.1 enable/disable bit */#define HAL_KEY_SW_1_IENBIT & & &BV(4) /* Mask bit for all of Port_1 */
#define HAL_KEY_SW_1_PXIFG & & & P1IFG#define HAL_KEY_SW_2_IEN & & & & & IEN2#define HAL_KEY_SW_2_ICTL & & & & P1IEN&#define HAL_KEY_SW_2_ICTLBIT & BV(2)&#define HAL_KEY_SW_2_IENBIT & & BV(4)&#define HAL_KEY_SW_2_PXIFG & & & P1IFG
#define HAL_KEY_SW_1_EDGEBIT BV(0)
在simpleBLECentral.c
static void simpleBLECentral_HandleKeys( uint8 shift, uint8 keys )
if(keys & HAL_KEY_SW_1) { epd_dis_Rssi_db(01);//显示数字01 } if(keys & HAL_KEY_SW_2) { epd_dis_Rssi_db(02);//显示数字02 }
按键按下后还是无法显示,其中epd_dis_Rssi_db( );函数没有问题,是不是还有其他地方没有修改到位?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
进士3136分
1、首先在应用层初始化函数中加入key事件注册
// Register for all key events - This app will handle all key events RegisterForKeys(xxxxxx_TaskID );
2、因为simpleBLECentral这个工程可能用到的是五向按键,即ADC加中断模式,而你修改的是两个I/O口,要使用中断模式会好好些
& & &所以在hal_interrupt.c这个源文件 中把PORT1的中断函数修改一下,如果不知道怎么修改的,可以参考keyfob或sensorTag这两个例程或其它
3、希望可以帮到你,祝你好运
专注于电子电路设计,致力于智能产品的开发。欢迎加入:BLE/WIFI兴趣群
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
问题解决了没有,好像这里没有改
#define HAL_KEY_SW_1_EDGEBIT BV(0) & & & & &
你试一下,好像要改成 BV(3)
You have posted to a forum that requires a moderator to approve posts before they are publicly available.看门狗是在软件跑飞的情况下CPU自恢复的一个方式,看门狗分为硬狗和软狗,硬狗就是由专门的看门狗硬件电路实现看门狗功能,看门狗芯片也比较多,比如DS1232,除了看门狗功能外还有电源电压监测功能。软狗就是由软件实现的看门狗功能,现在很多CPU都自带了软狗,很难说硬狗好还是软狗好,如果软狗够用,尽量使用软狗简化设计,看门狗说白了就是一个定时器!,当软件在选定的时间间隔内不能置位看门狗定时器(WDT),WDT就复位系统。看门狗可用于电噪声,电源故障或静电放电等恶劣工作环境或高可靠性要求的环境。如果系统不需要应用到看门狗,则WDT可配置成间隔定时器,当时间间隔到达产生中断。 WDT的特性如下:
4个可选择的时间间隔
看门狗模式
定时器模式
定时器模式下产生中断请求
CC2541的看门狗定时器(WDT)可以配置成看门狗模式或者普通的间隔定时器,WDT包括一个15位定时/计数器,它的频率由32.768KHz的晶振决定,用户不能查看计数器的值。
看门狗的模式由寄存器WDCTL来配置,寄存器WDCTL的定义如下:
WDCTL.INT[1:0]:定时器定时间隔选择位,有四种可选的时间间隔,32.768KHz时钟下,1s、0.25s、15.625ms、1.9ms分别对应3、512和64个时钟周期。注意,定时时间间隔只能在看门狗处于空闲(IDLE)模式下才能配置有效。
WDCTL.MODE[1:0]:模式选择位,有三种模式可选择,空闲模式、看门狗模式和计时器模式,在计时器模式下,设置该位为00空闲模式则停止该计数器,当需要从计数器模式转换到看门狗模式,必须首先使该位为00使之处于空闲模式,然后再赋值10,转换到看门狗模式。如果处于看门狗模式,则不管向该位写入什么值都不起作用了,始终处于看门狗模式。一般来说,也不会在程序里切换模式,都是作单一用途的。
WDCTL.CLR[3:0]:看门狗定时器清零位,在看门狗模式下,先向该位写入0xa,再写入0x5,定时器计数值清0,注意的是写入0x5必须紧跟着写入0xa,这两条语句之间不能插入其他语句。当处于空闲模式下,写该位不会产生任何影响
1 /******************************************************************************
2 *函 数 名:FeetDog
能:喂狗,计数器清0
4 *入口参数:无
5 *出口参数:无
6 ******************************************************************************/
7 void FeetDog(void)
WDCTL = 0xa0;
//清除定时器。当0xA 跟随0x5 写到这些位,定时器被清除
WDCTL = 0x50;
计时器模式下WDCTL.CLR[0]位置1(其他三位不管写入什么值),则计数器清0(0x0000),但计数器不会停止计数,WDCTL.MODE[1:0]设置为00,计时器模式下计数器才停止并且计数值清0。
1、看门狗模式
系统复位后默认是处于空闲模式的,所以需要人为设置为看门狗模式,将WDCTL.MODE[1:0]设置为10,此时看门狗计数器开始从0计数,一旦处于看门狗模式,就没有办法停止该计数器了,向WDCTL.MODE[1:0]写入00或者其他值都没有作用了。
如果计数器计数到设定的计数值(3、512或者64),就会产生一个系统复位信号,如果计数器被清0,则此时计数器又从0开始计数,此过程称为&喂狗&,所以在程序合适的位置放置喂狗代码,程序运行一次循环则会清除计数器一次(喂狗一次),计数器就不会溢出,如果程序跑飞了,就执行不到喂狗代码,超过设定的时间间隔,计数器就会溢出,对系统复位。看门狗模式下不会产生中断。另外前面说过定时间隔只能在看门狗处于空闲(IDLE)模式下才能配置有效,而一旦设定为看门狗模式,就不会回到空闲(IDLE)模式,所以定时时间间隔也是不可更改的了。注意:看门狗的时间间隔应该大于喂狗程序执行一次所需的时间!不然还没喂狗计数器就溢出复位了。一般的1s都够了,没有哪个程序执行一次的时间会超过1s吧,呵呵。
2、计时器模式
将WDCTL.MODE[1:0]设置为11,WDT处于计时器模式。一旦设定WDCTL.MODE[1:0]为11,计数器就开始从0计数,当计数值达到设定的的计数值(3、512或者64),便会产生看门狗中断请求,IEN2.WDTIE看门狗中断使能的情况下,IRCON2.WDTIF看门狗中断标志位变为1。注意中断使能信号放在WDCTL.MODE[1:0]配置前面,不然计数器开始计时了,还没有开中断。
在计数器模式下,WDCTL.CLR[0]为1则清除计数器,然后从0开始计数,并不会停止计数器,WDCTL.MODE[1:0]设置为00,计数器停止工作并且计数值清0。在计数器工作的时候,写入
WDCTL.INT[1:0]&无效,定时时间间隔无法改变,当计数器达到设定值时,并不会产生系统复位信号。如果定时器不够用的时候可以用该定时器,但是定时的时间只有4种选择。
看门狗模式
示例程序:WDT为看门狗模式,时间间隔为1s,定时喂狗,如果没有喂狗,则系统不断复位,LED灯每隔1s亮灭一次,无需第87行延时程序,因为看门狗的时间间隔设定为1s,LED刚好亮1s。
1 /******************************************************************************
2 *文 件 名:WDT.c
述:看门狗程序
7 ******************************************************************************/
8 #include &iocc2541.h&
10 #define LED1 P1_0
12 /******************************************************************************
13 *函 数 名:Delay1ms
能:延时1ms
15 *入口参数:uiDelay,延时参数,值越大,延时越长
16 *出口参数:无
17 ******************************************************************************/
18 void Delay1ms(unsigned int uiDelay)
unsigned int i,j;
for(i = 0; i & uiD i++)
for(j = 0;j & 1322; j++);
27 /****************************************************************
28 *函 数 名:InitClock
能:系统时钟初始化
30 *入口参数:无
31 *出口参数:无
32 *****************************************************************/
33 void InitClock(void)
CLKCONCMD &= ~(1 && 6);
//选择32MHz晶振
while(CLKCONSTA & (1 && 6));
//等待时钟稳定
CLKCONCMD &= ~0x47;
//系统时钟和定时器时钟都是32M
40 /******************************************************************************
41 *函 数 名:InitLED
能:LED灯初始化
43 *入口参数:无
44 *出口参数:无
45 ******************************************************************************/
46 void InitLED(void)
P1SEL &= ~0x01;
//P1.0设置为通用I/O口
//P1.0设置为输出
52 /******************************************************************************
53 *函 数 名:Init_Watchdog
能:看门狗初始化
55 *入口参数:无
56 *出口参数:无
57 ******************************************************************************/
58 void Init_Watchdog(void)
WDCTL = 0x00;
//打开IDLE 才能设置看门狗
WDCTL |= 0x08; //定时器间隔选择,间隔一秒,设定为看门狗模式
64 /******************************************************************************
65 *函 数 名:FeetDog
能:喂狗,计数器清0
67 *入口参数:无
68 *出口参数:无
69 ******************************************************************************/
70 void FeetDog(void)
WDCTL = 0xa0;
//清除定时器。当0xA 跟随0x5 写到这些位,定时器被清除
WDCTL = 0x50;
//系统不复位LED1 灯长亮
77 /******************************************************************************
78 *程序入口函数
79 ******************************************************************************/
80 int main(void)
InitClock();
//时钟初始化,32MHz
InitLED();
//LED初始化
//熄灭LED1
Delay1ms(1000);
//点亮LED1
//Delay1ms(1000);
Init_Watchdog();
//看门狗初始化
FeetDog();
//喂狗程序
//注释掉次子函数,系统不断复位,LED1闪烁
计时器模式
示例:WDT处于计时器模式,中断方式,LED灯闪烁,0.25s状态改变一次
1 /******************************************************************************
2 *文 件 名:WDT.c
述:WDT计时器模式
7 ******************************************************************************/
8 #include &iocc2541.h&
10 typedef unsigned char
11 typedef unsigned int
13 #define LED1 P1_0
15 /******************************************************************************
16 *函 数 名:Delay1ms
能:延时1ms
18 *入口参数:uiDelay,延时参数,值越大,延时越长
19 *出口参数:无
20 ******************************************************************************/
21 void Delay1ms(unsigned int uiDelay)
unsigned int i,j;
for(i = 0; i & uiD i++)
for(j = 0;j & 1322; j++);
30 /****************************************************************
31 *函 数 名:InitClock
能:系统时钟初始化
33 *入口参数:无
34 *出口参数:无
35 *****************************************************************/
36 void InitClock(void)
CLKCONCMD &= ~(1 && 6);
//选择32MHz晶振
while(CLKCONSTA & (1 && 6));
//等待时钟稳定
CLKCONCMD &= ~0x47;
//系统时钟和定时器时钟都是32M
43 /******************************************************************************
44 *函 数 名:InitLED
能:LED灯初始化
46 *入口参数:mode,mode为1则点亮所有LED,mode为0则熄灭所有LED
47 *出口参数:无
48 ******************************************************************************/
49 void InitLED(uchar mode)
P1SEL &= ~0x01;
//P1.0设置为通用I/O口
//P1.0设置为输出
//LED灯亮熄控制
56 /******************************************************************************
57 *函 数 名:Init_Watchdog
能:看门狗初始化
59 *入口参数:无
60 *出口参数:无
61 ******************************************************************************/
62 void Init_Watchdog(void)
WDCTL = 0x00;
//打开IDLE 才能设置计时器间隔时间
WDCTL |= 0x0d; //设定为计时器模式,定时器间隔为0.25秒
68 /******************************************************************************
69 *函 数 名:WDT_ISR
能:WDT计时器模式中断服务程序
71 *入口参数:无
72 *出口参数:无
73 ******************************************************************************/
74 #pragma vector = WDT_VECTOR
75 __interrupt void WDT_ISR(void)
WDTIF = 0;
//看门狗中断清除
LED1 = ~LED1;
//定时时间到,LED状态翻转
81 /******************************************************************************
82 *程序入口函数
83 ******************************************************************************/
84 int main(void)
InitClock();
//时钟初始化,32MHz
InitLED(0);
//LED初始化,熄灭LED1
IEN2 |= 0x20;
//看门狗中断使能
//开总中断
Init_Watchdog();
//看门狗初始化
拓展问题:CC2541在睡眠模式下,看门狗如何工作。初步认识为看门狗继续工作,计数器一直计数,有待后续验证!
阅读(...) 评论()本文从功能需求的角度分析一般单芯片的应用框架(SDK )的接口设计过程,并以TI CC2541为例说明的应用开发方法。一、应用框架(Framework)我们熟知的Framework包括 Framework、 QT、 MFC。应用框架抽象并封装实现了一般应用场景的需求,完成应用开发的80%,剩下的20%则以回调()和接口的方式供应用开发人员调用以完成具体的需求。一般Framework完成的工作包括:任务分发、消息通信和UI等。例如以上三种框架所属的IDE都能够实现所见即所得的UI可视化编程,框架完成了UI控件的大部分工作,而开发人员只需要完成UI控件的消息处理逻辑即可,如点击了这个button后如何进行响应等。蓝牙BLE单芯片的系统架构包括、SOC硬件抽象接口和蓝牙应用框架等组成部分,和SOC硬件抽象接口的理解请理解《如何快速理解一个全新的》(发送55获取)和《如何快速理解一个全新的(续)》(发送56获取)。本文只讨论蓝牙应用方面框架接口设计和应用开发。二、蓝牙BLE的应用需求我们都知道BLE是为了实现连接后的通信传输和控制。BLE设计的初衷是为了完成少数据量的通信,侧重于通信控制。所以我们可以理解BLE的包括两大组成部分:一个是蓝牙连接;另一个是通信控制。前者即对应GAP(General Access Profile),后者对应GATT(General Attribute Profile)。Profile在蓝牙术语里面相应于特定的应用场景协议。三、蓝牙BLE的应用需求分析我们分别对连接和通信控制进行分析。这里以蓝牙设备角色进行分析,简单理解即是从设备。所用的蓝牙一般充当central角色,即主设备。1. 连接连接部分,蓝牙外设要完成的功能包括:1) 蓝牙外设要被发现,其必须要进行广播2) 在主设备扫描时要给出扫描响应。这时蓝牙设备还是处于广播状态。3) 主设备发起连接时,其可以要求密码配对,而也可以选择无需密码验证。4) 主设备发起连接过程的握手,接受连接。5) 蓝牙外设连接成功后才会开启通信服务。2. 通信控制1) 蓝牙外设在连接后通过GATT来提供服务发现(service discover),这样主设备能够从中获取蓝牙外设提供的各种服务profile。2) 主设备在获取蓝牙外设服务后,会对GATT profile的各种特征字(characteristics)进行读写传输控制。3) 特征字主要包含write、read、和indicate等主要通信方式。对于蓝牙外设的write特征字,主设备(如)可以进行写操作;对于read,主设备则可以从中读取信息;write和read对于蓝牙外设来说,其属于被动控制,即蓝牙外设被动接受主控制的通信控制。而notify和indicate则是蓝牙外设主动向主设备传输数据,前提是主设备要预先订阅对应的characteristics的信息更新。Notify数据后,主设备不需要应答响应,而indicate则需要应答响应。四、蓝牙BLE的应用框架(framework)设计我们之前已经分析过,framework应该完成应用开发的80%工作,即基本完成了常见的应用需求。剩下20%则是由各个具体应用的具体场景需求来决定的。例如,蓝牙底层连接时怎么握手,咱们应用开发人员不需要关心吧;GATT的characteristics value值的通信过程,我们不要关心吧。当蓝牙外设有新的数据要传输给主设备时,只需要调用notify或者indicate接口就可以了,至于底层怎么实现,那是开发人员的工作。OK,咱们根据第三部分的需求分析来找出应用开发人员所关心的20%工作任务。换句话来说,剩下的80%工作量即是蓝牙应用框架Framework所要完成的任务。一般蓝牙单芯片都会给用户提供SDK进行开发,其里面已经实现framework了。我们应用开发人员应当重点关注这20%的任务。1. 连接1) 对于广播来说,不同的应用需要广播的信息并不一样,如ibeacon和微信airsync协议的广播数据格式要求是不一样的。所以,framework应该提供给用户一个自定义广播数据的接口。2) 同理,framework应该提供给用户一个自定义扫描响应数据的接口。3) 对于密码配对过程,常见的做法是framework给应用开发提供一个回调接口,当收到主设备传送过来的密码后,对这个接口进行回调,并将这个密码以参数的形式传递给这个接口,以让用户自己判断密码是否跟预设的一致。4) Framework应该对连接的状态进行管理,分别提供用户回调接口,在连接成功时对接口进行回调,以让用户在连接成功时做一些特定的操作,如闪灯标识、开启GATT服务等;在断开连接时也应该回调用户接口,以让用户在断开连接时做一些特定的操作。2. 通信控制我们这里还是只分析蓝牙外设Peripheral角色的framework,不探讨主设备的framework,读者可以相应进行分析。1)framework应该明确如何用最简单的方式定义并添加一个蓝牙GATT profile服务。蓝牙BLE有自己的协议标准,一个蓝牙服务service包括一个或者多个characteristics,而每个characteristics都包含对应UUID、属性描述(如可读、可写、长度等)、属性值value、属性配置(代表订阅信息)等等。为了简化后续的数据处理,一般framework会设置一个handle来对应一个characteristics。2)framework提供接口给用户来对各个characteristics的属性value进行设置和获取。3)framework提供回调接口给用户,当主设备读characteristics回调读接口,以让用户进行特定操作后再进行传输;当主设备写characteristics时回调写接口,以让用户完成相应的操作。4)framework提供用户接口,完成主动的和indicate操作。OK,以上即是单芯片普遍的设计需求。我们在接触一款新的BLE单芯片时,只要能够重点把握好以上这20%的编程方法,就能快速进行应用开发。五、Ti CC2541应用开发TI CC2541 SDK有一个简单的示例工程SimplePeripheral,向开发人员展现如何进行蓝牙应用开发。我们通过这个工程来理解上述框架设计和编程。1. 连接1)定义广播数据GAPRole_SetParameter(GAPROLE_ADVERT_DATA,…);2)自定义扫描响应数据GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA,…);3)密码管理回调ProcessPasscodeCB4)状态管理回调StateNotificationCB2.通信控制 1)添加GATT服务GATTServ_RegisterService 2)读回调 simpleProfile_ReadAttrCB 3)写回调 simpleProfile_WriteAttrCB 4 )属性值设置和获取
SimpleProfile_SetParameter SimpleProfile_GetParameter 5)主动传输 GATT_Notification GATT_Indication参数可以对照具体的接口进行分析。我们在看具体的接口之前,可以思考一下,这些接口的参数应该包括什么东西,如果你能想到包括什么,恭喜你,你的应用框架设计能力已经大大提高了。 记住:企鹅圈不仅会告诉你如何实现功能(实践),还会告知你为什么要这样实现(理论)!我们在开发的过程中也要注重怎么去思考和总结开发方法,以积累经验,举一反三,触类旁通!将为您减少类似内容我要收藏222个赞不感兴趣分享到分享到:相关文章还可以输入140字热门频道6371.8万人订阅11.6万人订阅30.6万人订阅2999.8万人订阅194.5万人订阅你还可用第三方账号来登录请输入你注册的电子邮件地址绑定密保手机*您可用使用此密保手机找回密码及登录*请勿随意泄露手机号,以防被不法分子利用,骗取帐号信息手机号码发送验证码确定电子邮件请输入您的意见和建议请您输入正确的邮箱地址,以便我们和您联系,帮您解决问题。扫描下载手机客户端热门搜词CC2541 | Bluetooth
/ 蓝牙低耗能 | 无线连接 | 描述与参数
|C0|0|0|0|2003|0|2
(正在供货)
SimpleLink Bluetooth Smart 和专利无线 MCU
&(英文內容)
&(英文內容)
In English
日本語表示
相关终端应用
CC2541 是一款针对
低能耗以及私有 2.4-GHz 应用的功率优化的真正片载系统 (SoC) 解决方案。 它使得使用低总体物料清单成本建立强健网络节点成为可能。 CC2541 将领先 RF 收发器的出色性能和一个业界标准的增强型 8051 MCU、系统内可编程闪存存储器、8-KB RAM 和很多其它功能强大的特性和外设组合在一起。 CC2541 非常适合应用于需要超低能耗的系统。
这由多种不同的运行模式指定。 运行模式间较短的转换时间进一步使低能耗变为可能。
如果 CC2540 上的 USB 未启用并且 CC2541 上的 I2C/ 额外 I/O 未启用,那么 CC2541 与 CC2540 在 6-mm x 6-mm 方形扁平无引脚 (QFN)40 封装内引脚兼容。 与 CC2540 相比,CC2541 提供更低 RF 流耗。 CC2541 没有 CC2540 所具有的 USB 接口,并在 TX 模式中提供较低的最大输出功率。 CC2541 还增加了 1 个 HW I2C 接口。
CC2541 与 CC2533 优化 RF4CE IEEE 802.15.4 SoC 引脚兼容。
CC2541 有 2 个不同的版本:分别具有 128kB 和 256kB 闪存的的 CC6。
CC2541 的方框图请参见。
射频2.4-GHz
符合低能耗规范和私有的 RF 片载系统 支持 250-kbps,500-kbps,1-Mbps,2-Mbps 的数据速率 出色的链路预算,不使用外部前段而支持长距离应用 高达 0 dBm 的可编程输出功率 出色的接收器灵敏度 (1 Mbps 时为 &94 dBm),可选择性,和阻挡性能 适合于针对符合世界范围内的无线电频率调节系统: ETSI EN 300 328 和 EN 300 440 2 类 (欧洲),FCC CFR47 15 部分(美国),和 ARIB STD-T66 (日本)
布局极少的外部组件 提供参考设计 6-mm & 6-mm 方形扁平无引脚 (QFN)-40 封装
与 CC2540 引脚兼容 (当不使用 USB 或者 I2C 时)
低功率工作模式 RX 低至: 17.9 mA 工作模式 TX (0 dBm): 18.2 mA 功率模式 1 (4-&s 唤醒): 270 &A 功率模式 2 (睡眠定时器打开): 1 &A 功率模式 3 (外部中断): 0.5 &A 宽泛的电源电压范围 (2 V&3.6 V)
工作模式下 TPS62730 兼容低功率RX 低至: 14.7 mA (3-V 电源) TX (0 dBm):14.3 mA(3V 电源)
微控制器具有代码预取功能的高性能和低功率 8051 微控制器内核 系统内可编程闪存,128 或者 256 KB 在所有功率模式下具有保持功能的 8-KB RAM 支持硬件调试 扩展基带自动化,包括自动确认和地址解码 所有功率模式中对所有相关寄存器的保持
外设功能强大的 5 通道直接内存访问 (DMA) 通用定时器 (1 个 16 位,2 个 8 位) 红外 (IR) 生成电路 具有捕捉功能的 32-kHz 睡眠定时器 精确数字接收到的数字信号强度指示器 (RSSI) 支持 电池监视器和温度传感器 含 8 通道和可配置分辨率的 12 位模数转换器 (ADC) 高级加密标准 (AES) 安全协处理器 2 个功能强大的支持几个串行协议的通用异步接收发器 (UART) 23 个通用 I/O 引脚(21 & 4 mA,2 & 20 mA) I2C 接口 2 个具有 LED 驱动功能的 I/O 引脚 安全装置定时器 集成的高性能比较器
开发工具CC2541 评估模块工具包 (CC2541EMK) CC2541 小型开发工具包 (CC2541DK-MINI) SmartRF& 软件 提供 IAR 嵌入式 Workbench&
Software Features 符合针对单模式蓝牙低能耗 (BLE) 解决方案的符合 v4.0 协议的堆栈完全功率优化堆栈,包括控制器和主机GAP - 中心设备,外设,或者广播器(包括组合角色)属性协议 (ATT) / 通用属性配置文件 (GATT) & 客户端和服务器对称式对多重处理 (SMP) - AES-128 加密和解密L2CAP示例应用和配置文件针对 GAP 中心和外围作用的一般应用距离临近,加速计,简单关键字,和电池 GATT 服务 BLE 软件栈 内支持更多应用多重配置选项单芯片配置,允许应用运行在 CC2541 上用于运行在一个外部微处理器上的网络处理器接口 BTool - 用于评估、开发和测试的视窗 (Windows) PC 应用
查看更多内容
其它合格版本 CC2541
Q100 适用于追求零缺陷的高可靠性汽车电子应用的器件
相关终端应用
特色工具和软件
获取更多帮助
器件选择帮助
生产、订购和质量
Device Type
Bluetooth Standard
Operating Temperature Range
Approx. Price (US$)
Technology
Wireless MCU
Bluetooth Smart (Bluetooth low energy)
1.79 | 1ku
Bluetooth Low Energy

我要回帖

更多关于 cc2541蓝牙模块电路图 的文章

 

随机推荐