3248|7

38

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

有没有用MSP430F149驱动LDC1000的 [复制链接]

本帖最后由 PuesueDream 于 2016-7-19 12:36 编辑


2016年TI杯省级大学生电子设计竞赛所用的主要元器件清单如下:
DC/DC变换器件lm5117
MOS管csd18532kcs
电感传感器LDC1314,LDC1000
摄像头 
高速缓冲运放 
高速比较器 
电阻应变片 
电动小车(地面投影不超过A4纸)















最近在看LDC1000电感传感器,用的是网上的一个例程,虽然也有5529LP的例程,但是5529和149区别有点大,尝试过移植,但是没有用。进过两天研究,感觉问题出在了SPI驱动上:
#include
#include "lcd1000.h"


//====RP推算金属的距离=================
#define RPMAX    0x13
#define RPMIN    0x3A

//=======================IO=============
#define  MISO_0     P3OUT &=~BIT2      
#define  MISO_1     P3OUT |= BIT2

#define  MOSI_0     P3OUT &=~BIT1         
#define  MOSI_1     P3OUT |= BIT1

#define  SCK_0      P3OUT &=~BIT3         
#define  SCK_1      P3OUT |= BIT3

#define  CSN_0      P3OUT &=~BIT0
#define  CSN_1      P3OUT |= BIT0

//============变量的定义===============
static char DATA_BUF;
static char txaddr;
char rxbuff;

char proximtyData[2];
char frequencyData[3];

int  proximtyDataMIN;
int  frequencyDataMIN;

int  proximtyDataMAX;
int  frequencyDataMAX;

int  proximtyDataTEMP;
int  frequencyDataTEMP;

static unsigned char SpiRead(void)
{
        unsigned char i;
        for (i=0;i<8;i++)
        {
                DATA_BUF=DATA_BUF<<1;
                SCK_1;
                if ((P3IN&0x04))        //读取最高位,保存至最末尾,通过左移位完成整个字节
                {
                        DATA_BUF|=0x01;
                }
                else
                {
                        DATA_BUF&=~(0x01);
                }
                SCK_0;
         }
         return DATA_BUF;
}

static void SpiWrite(unsigned char send)
{
        unsigned char i;
        DATA_BUF=send;
        for (i=0;i<8;i++)
        {
        if (((DATA_BUF&0x80) != 0))        //总是发送最高位
        {
            MOSI_1;
         }
        else
         {
            MOSI_0;
         }
        SCK_1;
        DATA_BUF=DATA_BUF<<1;
        SCK_0;
        }
}

char spi_writeByte( char addr, char data)
{
    txaddr = addr & ~0x80;
    CSN_0;
    SpiWrite(txaddr);
    SpiWrite(data);
    CSN_1;
    _NOP();
    return 0;
}

char spi_readByte(char addr)
{
    txaddr = addr | 0x80;
    CSN_0;
    SpiWrite(txaddr);
    rxbuff = SpiRead();
    _NOP();
    CSN_1;
    _NOP();
    return rxbuff;
}

void Init_LDC1000()
{
        spi_writeByte(LDC1000_CMD_RPMAX,       RPMAX);
        spi_writeByte(LDC1000_CMD_RPMIN,       RPMIN);
        spi_writeByte(LDC1000_CMD_SENSORFREQ,  0x94);
        spi_writeByte(LDC1000_CMD_LDCCONFIG,   0x17);
        spi_writeByte(LDC1000_CMD_CLKCONFIG,   0x02);
        spi_writeByte(LDC1000_CMD_INTCONFIG,   0x02);

        spi_writeByte(LDC1000_CMD_THRESHILSB,  0x50);
        spi_writeByte(LDC1000_CMD_THRESHIMSB,  0x14);
        spi_writeByte(LDC1000_CMD_THRESLOLSB,  0xC0);
        spi_writeByte(LDC1000_CMD_THRESLOMSB,  0x12);

        spi_writeByte(LDC1000_CMD_PWRCONFIG,   0x01);
}
void Init_IO()
{
    P3DIR |= 0xFB;   
    P3SEL&=0xF0;
    CSN_1;                                          
    SCK_0;
}


spi_readByte读出来的数总是0,改了好久,还是没改好。。。。。。
有没有感兴趣的,探讨探讨!!!

最新回复

楼主求份完整的程序,急,谢谢!! 740354585@qq.com   详情 回复 发表于 2016-7-27 11:44
 
点赞 关注

回复
举报

38

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
在线等!!!
 
 

回复

9795

帖子

24

TA的资源

版主

板凳
 
先用SPI读一个确定好用的外设,比如FLASH,确定MSP430F149的SPI没有问题后再试度读取LDC1000试试
另外LDC1000的模拟电源是5V供电

点评

就是5V啊 我试试吧  详情 回复 发表于 2016-7-19 15:15
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

4
 
littleshrimp 发表于 2016-7-19 13:34
先用SPI读一个确定好用的外设,比如FLASH,确定MSP430F149的SPI没有问题后再试度读取LDC1000试试
另外LDC1 ...

就是5V啊  我试试吧
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

5
 
楼主好人求发份 1172547779@qq.com
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

6
 
楼主调好了说声
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

7
 
楼主我也是读出来全是0啊,头疼!
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

8
 
楼主求份完整的程序,急,谢谢!!
740354585@qq.com
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表