所使用的为MSP430F5438,比较老的一款单片机了。不过它的串口还是比较多,所以本人还是比较喜欢。
在使用SPI硬件接口的时候,初始化程序代码:
void halCom3Init(void)
{
unsigned char Data[3];
P3SEL |= (BIT0+BIT4+BIT5);
P3DIR |= BIT3;
UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
UCA0CTL0 |= UCMST+UCSYNC+UCCKPH+UCCKPL+UCMSB; // 3-pin, 8-bit SPI master+UCCKPL
// Clock polarity high, MSB
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 0x04; // /2
UCA0BR1 = 0; //
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
// UCA0IE |= UCRXIE; // Enable USCI_B0 RX interrupt
}
通常时序由UCCKPH和UCCKPL来控制,具体可参看USER'S GUIDE。实际调试的时候,CLK下降沿或上升沿和DATA的转变时间几乎重合,导致硬件SPI接口不好使。
改用软件模拟SPI接口后,感觉很稳定。具体时序可参照所通信的器件的时序图来调整。
//****************************************模拟SPI实现DAC8734基本写操作
void DAC8734_Write(UCHAR txdata)
{
UCHAR i;
SETCLK;
for(i=0;i<8;i++)
{
SETCLK;
if(0x80&txdata)
SETSDI;
else CLRSDI;
_NOP();
CLRCLK;
txdata<<=1;
}
SETCLK;
}
//****************************************模拟SPI实现写8734命令字
void DAC8734WriteReg(UCHAR* Dat)
{
CLRCS;
_NOP();
DAC8734_Write(Dat[0]);
DAC8734_Write(Dat[1]);
DAC8734_Write(Dat[2]);
SETCS;
_NOP();
}
关键字:MSP430 SPI 硬件接口
引用地址:
MSP430 SPI硬件接口
推荐阅读最新更新时间:2024-03-16 16:01
基于MSP430的倒车雷达设计
随着人们对汽车辅助驾驶系统智能化要求的提高和汽车电子系统的网络化发展,新型的倒车雷达应能够连续测距并显示障碍物距离,并具有通信功能,能够把数据发送到汽车总线上去。 以往的倒车雷达设计使用的元器件较多,功能也较简单。本文介绍的基于新型高性能超低功耗单片机MSP430F2274的倒车雷达可以弥补以往产品的不足。 系统总体设计 系统采用超声波测距原理。超声波测距仪器一般由发射器、接收器和信号处理器三部分组成。工作时,超声波发射器发出超声波脉冲,超声波接收器接收遇到障碍物反射回来的反射波,准确测量超声波从发射到遇到障碍物反射返回的时间,根据超声波的传播速度,可以计算出障碍物距离。作为一种非接触式的检测方式,超声波具有空
[单片机]
实战msp430:TB捕获PWM波的脉冲宽度
用TB捕获脉宽 想用TBCCRO捕获脉冲低电平宽度,思路是:tbccr0捕获到下降沿中断,则记下tbccro的值,并改为上升沿触发;捕获到上升沿中断,则记下tbccro的值,改为下降沿触发。 硬件:单片机:MSP430F149 晶振:32K,8M 输入信号:通过无线接收到低电平10ms,高电平7.5ms, 输入口:P4.0(TB0) 要求:捕获低电平的脉宽 软件: 1. 初步思路:通过定时器TBCCR0作为捕获模块对外部输入信号进行捕获:先设为下降沿捕获,如果捕获到,马上修改为上升沿捕获,并马上TBR清零开始计数;如果不过到上升沿,马细奈陆笛兀裈BCCR0的数据记下来,此即为脉冲低电平宽度。 2. 使用TI公
[单片机]
基于MSP430系列单片机复位电路系统设计分析
0 引言 TI公司的混合信号处理器 MSP430系列单片机以其处理能力强大、外围器件集成度高、功率消耗低、产品系列全面、全系列工业级等特点,作为目前MCU主流市场的产品之一,在电子应用领域中得到广泛应用,被越来越多的电子设计师所青睐。由于 复位电路设计问题而导致的系统出现上电后不工作或状态不正确是很多MSP430单片机电路设计者们在设计、调试和应用中曾遇到过的问题,尽管这种情况发生的几率很低,但对于可靠性要求较高的应用场合,这个现象仍需引起电子设计人员的足够重视。 为此,本文对MSP430全系列单片机的复位系统和复位机制进行了详细深入的分析,并针对性地提出了具体的外围复位电路设计方案和有关电子元器件的详细
[单片机]
SPI存储器的结构特点及在自动测试仪上实现测试的方法研究
本文分析了SPI 存储器的结构特点和测试难点,提出了一种基于并行转串行逻辑的SPI 存储器算法图形自动产生的方法,并以SPI EEPROM 芯片AT25HP512 为例,实现了测试程序开发。实验证实,该方法可以克服SPI 存储器地址算法自动产生的困难,对该类芯片测试具有通用性。 0 引言 串行存储器大多采用I2C 或SPI 接口进行访问,其中以SPI 接口的芯片最多,主要包括EEPROM、FLASH memory、FRAM等类型。与并行存储器相比,串行存储器引脚少、体积小、易于扩展、与单片机或控制器连接简单、工作可靠,而且大多拥有掉电保持数据的特性,所以越来越多地用在各类电子产品和工业测控系统中。但SPI 存储器所有输入的内容
[测试测量]
MSP430F249单片机 Proteus仿真 IAR工程设置 实例和开发环境
1 开发环境与流水灯实验 使用的是IAR 7.10 新建工程的细节看这里: https://blog.csdn.net/x1131230123/article/details/106956182 需要在debug模式下设置, 编译后hex文件在proNameDebugExe下 proteus设置时钟: 代码: #include MSP430x24x.h #define uchar unsigned char #define uint unsigned int void delayms( uint t ) { uint i; while ( t-- ) for ( i = 1330; i 0; i-- )
[单片机]
基于MSP430的ADS7841驱动程序
师姐(博士)反向设计了ADS7841芯片。为了测试其稳定性和精度,所以帮忙写了这个驱动程序。最初是师兄用FPGA写的,但读出来的数据差距太大,所以我就用430单片机帮忙搞了一个!但这个程序调试的并不顺利,简直就是痛苦,我昨天中午和晚上都没吃饭!首先碰到I/O口坏的情况,还有就是这个芯片的 DATASHEET关于读数的说明是错的,害人不浅!据datasheet解释是等待busy信号为低才开始读数,其实这个时候已经晚了,会漏掉一位。所有上面这些问题我是借助逻辑分析仪看出来的,把抓出来的时序一点点的分析,终于发现了读数方面DATASHEET的漏洞。还有就是她没提写数据和读数据分别应该在时钟的什么沿触发。实在让人郁闷~!~正常应该在下降沿写
[单片机]
MSP430多处理器之间的通信方式及协议
在单片机系统中,多处理器是指多个相同类型或者不同类型的单片机协作处理同一个系统的不同工作。它们之间必须具备一定的数据交换和协作处理能力,共同完成一个系统化的工作。不同处理器之间可以采用数据交换方式、并行总线方式、串行总线方式进行通信。其中,数据交换方式又可以称为共享内存交换方式;串行总线方式又可以分为单总线方式、集成电路之间的通信方式和UART方式。 1 MSP430多处理器 MSP430是一款超低功耗的混合信号控制器,具有1 6位RISC结构,有着丰富的片内外设,主要包括有看门狗、定时器、比较器、硬件乘法器、液晶驱动器、ADC、I/0端口、串口(USART)等等,还集成有64 KB的Flas’E-ROM和2 KB的RAM。其
[应用]