MSP430+CC1101
文章平均质量分 89
意念586
电力系统继电保护装置-嵌入式软件开发
展开
-
详解SPI中的极性CPOL和相位CPHA
详解SPI中的极性CPOL和相位CPHASPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要商...转载 2019-05-17 10:56:20 · 4423 阅读 · 1 评论 -
MSP430捕获器简单实用
MSP430定时器A捕捉脉实例[调试通过,很好用]运行代码 复制代码 /***************************************************************** //功能:利用定时器A的捕捉能测量脉冲信号的脉宽 // // // MSP430F44转载 2016-08-10 23:19:51 · 5928 阅读 · 3 评论 -
MSP430 一种低功耗设计
利用最低功耗实现绝对长的电池寿命是许多深度嵌入式应用的共同设计要求。在本文中,我们将讨论一种基于微控制器 (MCU) 的小区电子自动调温器,并对电流的每一微安 (uA) 都经过了细致而周密的调查研究。最终得到的产品不但超过了技术设计要求,而且成本比上一代产品低 50%。重新设计的电子自动调温器利用安装的电池可以工作 8 年以上,如图1 所示。本文侧要于明确功耗之所在、如何为应用选择正确的电池以及如转载 2016-08-10 23:16:39 · 3444 阅读 · 1 评论 -
msp430硬件II2C
msp430系列硬件I2C操作24LC128程序说明:24lc128为美信公司EEPROM存储器,存取空间为128kbit。具体的通信规则可以看其器件手册。 ***************************************************************************************/ 运行转载 2016-08-10 23:14:07 · 1027 阅读 · 0 评论 -
MSP430实现简单的对临界资源的冲突访问
实现对临界资源的冲突访问__monitor int get_lock(void){if (the_lock == 0) { /* Success, we managed to lock the lock. */ the_lock = 1; return 1; }else { /* Failure, someon转载 2016-08-10 23:09:24 · 303 阅读 · 0 评论 -
MSP430 开发注意事项要求
以下是在使用MSP430中的一些总结: 1.系统时钟问题: 系统默认使用DCO,使用外部高速晶振XT2时必须自己开启XT2,并延时50us等待XT2起振,然后手工清除IFG1中的OFIFG位 !!!!一定要注意操作顺序:打开XT2->等待XT2稳定->切换系统时钟为XT2 若后面两步操作反了,在通常情况下不会出现问题,但是在电压不稳MCU频繁复位的情况下,非常容易造成MCU死掉,只原创 2016-08-10 23:04:50 · 1927 阅读 · 0 评论 -
关于MSP430-Flash超过64K的读写操作方法
关于MSP430-Flash超过64K的读写操作方法微控论坛原创专贴 作者:微控论坛特约嘉宾 Qiaohaikun 下面例子是Qiaohaikun先生几年前一直用在MSP430FG4618...使用过的,一直都挺好使。希望在此分享出来能帮助到有需要的网友们。同样,希望各网友们如有精品程序例子的话同样可以发贴到微控论坛来。人人为我,我为人人! 运行代码转载 2016-08-10 21:03:06 · 1760 阅读 · 0 评论 -
MSP430 Flash信息区
430单片机,一般具有内部的信息区,以便保存一些需要EEPROM才可保存的数据。 在论坛没有收到相关信息,就借用网上的,抛砖引玉,如果有什么问题,多多指正,一起掌握! MSP430 FLASH型单片机的FLASH存储器模块根据不同的容量分为若干段,其中信息存储器SegmengA及SegmentB各有128字节,其他段有512字节。SegmentB的地址是:0x1000到0x107F,Se转载 2016-08-10 21:02:01 · 2255 阅读 · 0 评论 -
如何提高MSP430 C语言代码的执行效率
关于代码效率———————MSP430系列的程序设计准则,有利于提高代码效率。应该指出,这些准则基本上是基于MSP430系列的硬件结构特点而提出的。1.位域类型的执行时很慢的,所以应当在仅仅为了节省数据存储空间时才使用位域方式。如果用户必须使用位域存储,可以用char或unsigned int的位屏蔽操作来代替位域操作。2.在模块之外不使用的变量应当声明为static,这样在编译时转载 2016-08-10 20:58:28 · 1359 阅读 · 0 评论 -
WireLess LowerPower 实现方法
工作模式设计 典型的无线收发机编码如下图。 PREAMBLE(前导码)SYNCWORD(同步码)ID FIELD(ID)可选DATA + FEC +CRC(数据 + 前向纠错 + CRC检错) 前导码为“1010”交替码,其作用是使目的接收机时钟与发射机同步,正常模式下前导码长度转载 2016-08-09 09:28:19 · 767 阅读 · 0 评论 -
MSP430 ADC12采样转换模式详解
一、ADC12转换模式ADC12提供4种转换模式:单通道单次转换对选定的通道进行单次转换要进行如下设置:x=CSStartAdd,指向转换开始地址ADC12MEMx存放转换结果ADC12IFG.x为对应的中断标志ADC12MCTLx寄存器中定义了通道和参考电压转换完成时必须使ENC再次复位并置位(上升沿),以准备下一次转换。在ENC复位并再次置位之前的输转载 2016-07-21 21:34:57 · 11067 阅读 · 0 评论 -
三态门的概念
三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态——高阻状态的门电路。高阻态相当于隔断状态(电阻很大,相当于开路)。三态门都有一个EN控制使能端,来控制门电路的通断。可以具备这三种状态的器件就叫做三态(门,总线,......). C=1,Y=A C=0,Y高阻 计算机里面用 1和0表示是,非两种逻辑,但是,有时候,这是不够的, 比如说,他不转载 2016-07-20 19:34:31 · 6883 阅读 · 0 评论 -
MSP430 使用一些理解
1.中断嵌套,优先级 430总中断的控制位是状态寄存器内的GIE位(该位在SR寄存器内),该位在复位状态下,所有的可屏蔽中断都不会发生响应。可屏蔽中断又分为单中断源和多中断源的。单中断源的一般响应了中断服务程序中断标志位就自动清零,而多中断源的则要求查询某个寄存器后中断标志位才会清零。由于大多数人接触的第一款单片机通常是51,51单片机CPU在响应低优先级的中断程序过程中若有更高优先级的中断发转载 2016-08-10 23:23:15 · 2855 阅读 · 0 评论 -
msp430——软件模拟II2C实例
运行代码 复制代码 #include #define SDA BIT1 #define SCL BIT2 #define SEG_A 0xA0 //0x0200---0x027F #define SEG_B 0xB0 //0x0280---0x02FF #d转载 2016-08-10 23:24:52 · 1139 阅读 · 0 评论 -
MSP430中断原理分析
中断很大程度上体现了一款单片机的性能,从这一点将MSP430在中断方面做得很不错,主要是提供了非常丰富的中断源,基本的有IO中断,定时器中断和一些接口中断(SPI,UART,I2C)等等。现在我就谈谈关于MSP430中断的一些特性,主要是在项目经历中感觉比较有用的问题,跟大家分享下。第一,MSP430中断的优先级。MSP430支持中断优先级,但是优先级的高低怎么获知呢...转载 2019-04-28 09:35:17 · 3544 阅读 · 0 评论 -
SPI时序解析
SPI时序详解 SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。转载 2017-06-12 13:25:16 · 843 阅读 · 0 评论 -
MSP430升级程序
MSP430升级程序的几点注意事项 这几天测试写好的IAP升级程序,真是一个糟,能将程序下载进去,但无法运行。 经过各种测试,修改终于找到了问题的原因,现在大致总结下我在写IAP程序的时候遇到的问题和解决方案。首先要实现单片机的IAP升级程序,我们要知道自己的IDE如何能将程序的函数或者变量的编译地址固定,因为对于bootload程序,我们要固定它的地址,还转载 2016-11-28 09:47:24 · 1586 阅读 · 1 评论 -
MSP430程序升级
利用自定义升级固件MSP430系列单片机的FLASH存储器模块是一个可独立操作的物理存储单元。全部模块安排在同一个线性地址空间中,存储器被分为多个512字节的段(信息段大小为128/64字节)。各段可单独擦除,并且在正常工作电压下程序可对FLASH进行擦写操作,因此特别适合在线程序升级(in-system program)。自定义升级固件就是在程序中内置一段用于升级应用程序的代码,即可利用转载 2016-11-25 16:45:16 · 650 阅读 · 0 评论 -
MSP430程序升级
远程升级的流程1.基础准备远程升级程序是通过远程无线或者是有限的方式把代码写入到单片机的flash存储器中,无需工作人员到现场更换程序,大大的节省了人力和物力,提高了工作效率。要进行远程升级程序首先需要搞清楚下面的几点;一、首先需要搞清楚程序在单片机中的存储位置,中断向量表的存储位置。二、搞清楚单片机在启动过程都做了哪些工作,从上电那一刻开始到能够正常的工作这一段时转载 2016-11-25 17:05:21 · 1419 阅读 · 0 评论 -
msp430 程序升级
第一篇 在项目开发中,至关重要的是保证产品运行的可靠,如果遇到异常,能否恢复很重要,而不是像砖头一样,程序死在某个地方。固件升级的原理就是重写向量表,在引导区更新app区的flash,然后跳转app区。实际开发中就会有以下问题: 1.如果MCU复位,比如POR,PDR,WDT等复位,都会使sp指针指向复位地址。那么MCU从引导区执行,如果APP区程序有效,应该如何控转载 2016-12-02 09:26:05 · 2924 阅读 · 0 评论 -
msp430程序升级方法
最近在搞430的FLASH的自定义法(利用串口)程序烧写,烧写完成后断电复位,reset按键就可以运行新的程序。但是和学长交流了一下,这种方法不够好,希望有一种软复位的方式。于是百度了一下,都是些对看门狗进行写入特殊值使得430的cpu复位。反正个人是没有采用。 因为在搞程序的烧写下载,所以看了一下430的BSL。看到里面有一段话,关于从C代码中启动BSL的方法。如下:转载 2016-12-01 16:07:40 · 2590 阅读 · 1 评论 -
string转换成char*
string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1.data如:string str="abc";char *p=str.data();%这行应更正为char*p=(char*)str.data();,引自贴内网友的回复2.c_str如:string str="gdfd"; char *p=str.转载 2016-10-21 10:14:41 · 7841 阅读 · 1 评论 -
滤波器设计
滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。滤波器设计的目标是实现数据序列的频率成分变更。严格的设计规格需要指定通带波纹数、阻带衰减、过渡带宽度等。更准确的指定可能需要实现最小阶数的滤波器、需要实现任意形状的滤波器形状或者需要用fir滤波器实现。指定的要求不同,滤波器的设计也不转载 2016-09-23 23:58:25 · 1173 阅读 · 0 评论 -
MSP430随机数产生器
运行代码 复制代码 //***************************************************************************** // MSP430-随机数的产生 // 作者:B哥 // Email: cbing2000@163.com // May 2008 // Built wit转载 2016-08-10 23:30:27 · 2127 阅读 · 0 评论 -
MSP430常见问题解答
1-问:JTAG 与 I/O 功能之间的 MSP430 引脚复用 答: 四个引脚 P1.7 - P1.4 在 20 与 28 引脚 MSP430F1xx 器件上均同时具有 I/O 与 JTAG 功能。这些引脚的默认功能是,当器件通电时具有 I/O 功能。当测试引脚拉高时,则将这些引脚选为 JTAG。当使用交互式系统内调试程序时,这些器件的 FET 会将这些引脚处于 JTAG 模式下。如欲了解有转载 2016-08-10 23:28:15 · 2338 阅读 · 0 评论 -
MSP430 定时器输出PWM波形
硬件介绍:MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含转载 2016-07-20 19:25:59 · 19913 阅读 · 9 评论 -
MSP430晶振配置详解
MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。UCS简介MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参考该系列芯片的指导手册,其中XT1CLK、VLOCLK、REFOCLK和XT2CLK跟MSP430F1XX系列没有太大区别,转载 2016-07-20 10:14:12 · 10984 阅读 · 1 评论 -
MSP430+DMA
直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与I\O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。MSP430f16x系列单片机内部含有DMA模块,而且几乎内部所有外设都可以触发DMA开始存取数据。这里实现了这个模块的程序通用的函数库,方便使用。硬件介绍:MSP430F15X/16X 系列转载 2016-05-25 10:52:29 · 3566 阅读 · 0 评论 -
比特率 波特率 数据传输速率 区别
1.比特率 比特率(bit rate)又称传信率、信息传输速率(简称信息速率,information rate)。其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。 在二进制系统中,信息速率(比特率)与信号速率(波特率)相等,例如,当系统以每秒50个二进制符号传输时,转载 2016-05-25 09:54:55 · 34104 阅读 · 0 评论 -
MSP430FR5969学习心得
1.MSP430开发环境建立1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。2.插入USB仿真器,驱动选择安装目录的/drivers/TIUSBFET3.建立一个工程,选择"option"选项,设置 a、选择器件,在"General"项的"Target"标签选择目标器件 b、选择输出仿真,在"Linker"项里的"Outpu原创 2016-03-14 19:25:25 · 4984 阅读 · 1 评论 -
静态函数的优点 static
静态函数在函数的返回类型前加上关键字static,函数就被定义成为静态函数。 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。定义静态函数的好处: 其他文件中可以定义相同名字的函数,不会发生冲突 静态函数不能被其他文件所用。 存储说明符auto,register,extern,static,对应两种存储期:自动存储期和静态原创 2016-01-04 13:39:15 · 5727 阅读 · 0 评论 -
MSP430 测量输入电平
MSP430单片机IO口用来检测高低电平时,是不需要外部上拉下拉的,因为其内部有上拉和下拉。在用作高低电平检测时,需要开启上拉或下拉。 如果有效状态为高电平,则需要配置为REN为上拉使能,且配置OUT为0,即设置为下拉。 如果有效状态为低电平,则需啊哟配置REN为使能,且OUT位1,即设置为上拉。 如果不开启内部上拉下拉使能,则IO可能出现不固定状态。譬如转载 2015-12-15 16:44:58 · 4035 阅读 · 1 评论 -
CCS中CMD文件解析
gel文件中主要包含了PLL、DDR等的初始化工作,具体可以看一下gel源码就明白了;CMD主要是用于定义内存的划分,及数据、代码等的存放位置。 CMD:command命令,顾名思义就是命令文件指定存储区域的分配.2812的CMD采用的是分页制,其中PAGE0用于存放程序空间,而PAGE1用于存放数据空间。 1.)#pragma ,CODE_SECTION和原创 2015-11-10 15:49:03 · 7437 阅读 · 0 评论 -
MSP430FR5969内存分配的问题
cmd文件里的具体内容我就不贴了,大家自己可以看一下。cmd文件主要由两部分构成,一个是MEMORY{};另一个是SECTIONS{}其中MEMORY{}是定义内部所有寄存器及存储器的地址,在这里大部分内容都是厂家定义好的,一般不能修改。但是咱们今天要改的就是他,当然只能改其中允许该的地方,那就是FRAM的分配问题。根据数据手册里提供的内存分配情况(如下图)我们可以得知,59x9的内存从0x0原创 2015-10-10 11:25:54 · 2202 阅读 · 0 评论 -
CC1101 CRC校验位
不管是CC1101,CC110L,CC1100E还是CC430,这些射频芯片中都有CRC校验的功能,校验过程是由硬件自己完成的,我们根本看不到,我们只能看到一个CRC_OK状态标志位,置1表示CRC校验成功,表示数据没有错误。为什么我们看不到校验过程,这里先看看数据发送和接受时的形式 发送:数据+16位CRC接受:数据+16位(CRC 状态、链路质量指示和 RSSI 值原创 2015-09-15 08:54:16 · 2542 阅读 · 0 评论 -
SPI时序分析
SPI接口在模式0下输出第一位数据的时刻SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。图1中表现了这四种时序,时序与CPOL、CPHL的关系也可以从图中看出。图1CPOL是用来决定SCK时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,CPHA原创 2015-09-11 08:21:49 · 1253 阅读 · 0 评论 -
CC1101调试入门
先说说cc1101是通过SPI方式与MCU相连,可以通过MCU自带的硬件SPI,3线模式,或者MCU模拟SPI来驱动。关于滤波指令和寄存器配置:其实这里也TFT配置差不多,玩过TFT的都有同感,TFT可以通过RW引脚控制是读还是写,如果是写寄存器,先写寄存器的地址,然后写数据,数据就到了相应的寄存器里面了;读就是RW引脚设置为读对应的电平,先写寄存器的地址,该寄存器里面的数据就可以转载 2015-09-10 20:04:21 · 5939 阅读 · 1 评论 -
EEPROM-24LC512 family
I2C Serial EEPROM Family 一 功能介绍1、能页操作,每页可达128字节。2、具有的功能地址线,允许8个器件挂在同一总线上。高达4MBit的地址空间(64k x 8=512bit | 512bit x 8 = 4Mbit)3、在512k范围内,可随机读和顺序读。4、板级供电电压范围 1.7V to 5.5V。原创 2016-04-18 14:37:34 · 5816 阅读 · 0 评论 -
msp430程序跑飞之解决方法
msp430程序跑飞之解决方法1.中断或主函数中有死循环,现象是程序停在某处。2.堆栈溢出。现象是程序跑飞。解决办法:A.看中断有没有用 _EINT(),引起中断嵌套. B.Project--Options--General Options---Stack/Heap 将Stack size设置大一些。3.中断耗时太长,刚出中断又进去了.这时的现象是程序一直在中断中执行,回转载 2016-05-17 16:43:24 · 3235 阅读 · 0 评论 -
DMA简单的测试代码
MSP430F2616的DMA传输,根据触发方式的不同有多种模式,最简单的是Single Transfer,即:设置好源地址与目标地址,以及需要传输的byte/word数,全部传输完成之后DMAEN自动清零,而传输一个byte/word都需要触发一次。MSP430的DMA源地址和目标地址可以为byte或者word类型,且可以设置递增、递减或者不变,通过寄存器进行相应的设置即可,但它们不是这转载 2016-07-19 10:42:57 · 2642 阅读 · 0 评论