8212|13

61

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

LM3s1138SPI接口的AD例程 [复制链接]

请问哪位有1138的SPI接口AD例程,供小弟学习一下,谢谢!

最新回复

我怎么看不到时钟的配置呢?  详情 回复 发表于 2018-10-31 14:50
 
点赞 关注(1)

回复
举报

4138

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
木有啊,只有LM3s811和LM3s5956和LM3s6432的资料
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

能不能借道发个s811的例程供大家学习下呢

能不能借道发个s811的例程供大家学习下呢,

谢谢分享!

 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

4
 
版主,你好!你能发个s811的AD的SPI例程供大家学习下吗?
 
 
 

回复

1万

帖子

16

TA的资源

版主

5
 

不明白811不是有AD转换么,为什么要SPI

 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

242

帖子

0

TA的资源

纯净的硅(中级)

6
 

你这是用SPI连接AD芯片吗?

 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 guguo2010 的帖子

对,用SPI连接兼容SPI的外部AD芯片
 
 
 

回复

242

帖子

0

TA的资源

纯净的硅(中级)

8
 

我倒是做过一个这样的测试,当时是用1138的spi连接AD78H90的。

源程序找不到了,大概总结下吧。

 

1、先是反反复复看了AD78H90的手册,找到其支持的SPI通信格式,然后比对1138的SPI格式,并选择其中一款,记得我当时选择的是SSI_FRF_MOTO_MODE_3,也就是极性和相位都取1的Freescale格式;

2、设置SPI速率,根据AD支持的速率与CM3主模式下支持的速率进行设置,好像能支持到8MHz吧;

3、SPI位数,这个就完全按照AD对于SPI通信协议的需求去选择了,就像AD78H90需要16bits,包括3个地址传输CLK、12个AD数据CLK和几个转换建立CLK等;

4、SPI设置好了,就直接用API函数调用即可。

因为AD78H90是单次SPI通信完成AD通道选择与数据返回,所以需要连续调用SSIDataPut(),SSIDataGet();

 

希望对你有所帮助。

 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

9
 
void init(void)                                                                                                                  //        芯片初始化子程序
{
        unsigned long ulBitRate = TheSysClock/10;                                                        //  配置SSI时钟为2MHz
        SysCtlPeripheralEnable( DAC_PERIPH        );                                                          //         使能GPIO外设
    GPIOPinTypeGPIOOutput(DAC_PORT, CS  );                                                            //         设置 GPIO为输出口  
        GPIOPinTypeGPIOInput(DAC_PORT, EOC  );                                                            //         设置 GPIO为输出口  
        GPIOPadConfigSet(DAC_PORT,  CS  , GPIO_STRENGTH_8MA,                                //        配置GPIO驱动电流,弱上拉输出
                                        GPIO_PIN_TYPE_STD_WPU);

        SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI);                                         //  使能SSI模块
    SysCtlPeripheralEnable(SSICLK_PERIPH);                                      //  使能SSI0接口所在的GPIO端口
    SysCtlPeripheralEnable(SSIRX_PERIPH);
    SysCtlPeripheralEnable(SSITX_PERIPH);

    GPIOPinTypeSSI(SSICLK_PORT, SSICLK_PIN);                                              //  将相关GPIO设置为SSI功能
          GPIOPinTypeSSI(SSIRX_PORT, SSIRX_PIN);
    GPIOPinTypeSSI(SSITX_PORT, SSITX_PIN);

    SSIConfig(SSI_BASE, SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, ulBitRate, 12);//  SSI配置:基址,协议格式,主模式,位速率,数据宽度
    SSIEnable(SSI_BASE);                                                                   //  使能SSI收发
        CS_H;

}

int wait()                                                                                                                                //        等待传输完毕
{
        if((HWREG(SSI_BASE+SSI_O_SR)&0x00000010)==0x00000010)
        return 1;
        else
        return 0;
}

int ADC2543(unsigned int cmd)                                                //        AD控制子程序,读取上一次AD值,并开始下一次转换
{
        unsigned int result=0;                                                                 //        定义两个整型变量,并将其中一个result初始化
        unsigned long pulData;
        cmd <<=4;                                                                                         //        左移四位,低四位数据进行通道选择
    CS_L;                                                                                                //        片选为低
        SSIDataPut(SSI_BASE,cmd);                                                                                        //        发送通道选择命令
        while(wait());                                                                                                                //        等待传输完毕
        SSIDataGet(SSI_BASE,&pulData);                                                                                //        读取AD转换的数据
        while(wait());                                                                                                                //        等待传输完毕
        while(!GPIOPinRead(DAC_PORT,EOC));                                                    //        等待AD转换完成
        CS_H;
        result=(unsigned int)(pulData);                                                                                //        数据类型转换
        return result&0x0FFF;                                                                                                //        返回数据
}

int main(void)                                                                                               //        主函数main
{
        static float value;                                                                               //        定义一个浮点型变量
        jtagWait();                                                                                                                        //        防止JTAG失效
    clockInit();
        init();                                                                                                       //        调用芯片初始化子程序
        while(1)                                                                                                        //        无限循环
        {
                value = ADC2543(0)*5.0/4095;                                          //        处理从AD读回的数据,得到实际的模拟量
        delay(50000);                                                                         //        设置断点,观察变量value的数值,长延时
        }
}
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

10
 

谢谢你们!

 

9楼,请问你能上传一下完整的工程文件吗?

[ 本帖最后由 sh2010 于 2011-8-11 20:07 编辑 ]
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

11
 

SPI总线(硬件)实验——TLC2543  AD转换实验

一、实验目的

1、学习Cortex-M3SSI使用及其相关的API函数;

2、掌握SSI总线通讯编程方法;

3、学会串行ADTLC2543)的应用编程。

INT_ADC.rar

95.66 KB, 下载次数: 103

 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

12
 
非常感谢你。这下可以好好学习一下……
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(中级)

13
 
非常好   谢谢了!!!!!!!!!!!!!!!!!!!
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

14
 
飞龙飞龙 发表于 2011-8-14 14:56
非常好   谢谢了!!!!!!!!!!!!!!!!!!!

我怎么看不到时钟的配置呢?
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表