tlc2543程序的问题

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
毕业论文《基于80C51单片机和TLC2543的多路数据采集系统设计》
下载积分:1000
内容提示:毕业论文《基于80C51单片机和TLC2543的多路数据采集系统设计》
文档格式:DOC|
浏览次数:83|
上传日期: 18:04:28|
文档星级:
该用户还上传了这些文档
毕业论文《基于80C51单片机和TLC2543的多路数据采集系
官方公共微信楼主你是不是这个问题在另一个论坛问过??
UID1080069&帖子10&精华0&积分108&资产108 信元&发贴收入50 信元&推广收入0 信元&附件收入0 信元&下载支出2 信元&阅读权限10&在线时间3 小时&注册时间&最后登录&
还是用光耦隔离下吧&&AD器件都比较敏感
UID1051849&帖子26&精华0&积分0&资产0 信元&发贴收入130 信元&推广收入0 信元&附件收入0 信元&下载支出321 信元&阅读权限10&在线时间2 小时&注册时间&最后登录&
UID91700&帖子152&精华0&积分3342&资产3342 信元&发贴收入1030 信元&推广收入0 信元&附件收入560 信元&下载支出2550 信元&阅读权限50&在线时间99 小时&注册时间&最后登录&
模拟地和数字地不要短
UID988302&帖子463&精华0&积分80&资产80 信元&发贴收入4045 信元&推广收入0 信元&附件收入774 信元&下载支出5285 信元&阅读权限10&在线时间90 小时&注册时间&最后登录&
低频的模拟数字地没那么敏感,应该没啥问题。on-chip adc的坏处就是经常会不够准。
UID887647&帖子52&精华0&积分551&资产551 信元&发贴收入405 信元&推广收入0 信元&附件收入186 信元&下载支出130 信元&阅读权限30&在线时间12 小时&注册时间&最后登录&
我曾经面试时遇到这样的题,我问面试的工程师怎么弄,那个工程师也不知道!
UID72048&帖子26&精华0&积分10&资产10 信元&发贴收入185 信元&推广收入0 信元&附件收入0 信元&下载支出269 信元&阅读权限10&在线时间1 小时&注册时间&最后登录&
路过学习一下
UID988302&帖子463&精华0&积分80&资产80 信元&发贴收入4045 信元&推广收入0 信元&附件收入774 信元&下载支出5285 信元&阅读权限10&在线时间90 小时&注册时间&最后登录&
测电流的时候,如果是双端的,最好要用INSTRUMENT AMPLIFIER,注意要判断是用差分放大还是单端放大。
UID1144088&帖子17&精华0&积分5&资产5 信元&发贴收入120 信元&推广收入0 信元&附件收入0 信元&下载支出263 信元&阅读权限10&在线时间5 小时&注册时间&最后登录&
看一些HART的资料吧,可以看看ADI的资料,有专做接口的
[通过 QQ、MSN 分享给朋友]
TI信号链专区正式上线,欢迎访问!后使用快捷导航没有帐号?
查看: 4641|回复: 4
STM32中SPI数据传输问题
在线时间4 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 20, 距离下一级还需 180 积分
一粒金砂(中级), 积分 20, 距离下一级还需 180 积分
我在STM32外面接了一个ADC-TLC2543,用STM32的SPI传输ADC转换之后的结果。现在我用示波器观察STM32中MOSI(PA7)的输出,示波器中没有波形(片选信号和时钟信号正常),把MOSI接到ADC中,ADC的输出用示波器看有波形,但输入STM32中读出的数据很小,不正确,不知道是哪里出错了?? 大神们能不能帮我看看???
int main(void)
& &u16 Channel_Select_Tx=0;& && && &//用模拟通道0,1,2
& &u16 SPI_Rx=0;& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&//存储SPI接受到的数据
& &RCC_Configuration();
& &GPIO_Configuration();
& &SPI_Configuration();
&&// useless=Read_TLC2543(Channel_Select_Tx[0]);& && &//SPI传输的是上一个AD转换的结果,第一个数据没用
& &while(1)
& && & SPI_Rx=Read_TLC2543(Channel_Select_Tx);
& & & && & SPI_Rx=SPI_Rx+1;
void SPI_Configuration(void)
& &SPI_InitTypeDef SPI_InitS
& &SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullD& & & & //双线全双工模式
& &SPI_InitStructure.SPI_Mode=SPI_Mode_M& & & & & & & & & & & & & & & & & & & & & & & & //主
& &SPI_InitStructure.SPI_DataSize=SPI_DataSize_16b;& & & & & & & & & & & & & & & & & & & & //16位
& &SPI_InitStructure.SPI_CPOL=SPI_CPOL_H& & & & & & & & & & & & & & & & & & & & & & & & & & & & //时钟脚闲置时保持低电平
& &SPI_InitStructure.SPI_CPHA=SPI_CPHA_1E& & & & & & & & & & & & & & & & & & & & & & & & //在第一个时钟沿采样数据信号
& &SPI_InitStructure.SPI_NSS=SPI_NSS_S& & & & & & & & & & & & & & & & & & & & & & & & & & & & //软件NSS,片选信号由软件产生
& &SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_256; //对时钟256分频
& &SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;& & & & & & & & & & & & & & & & & & & & //高位在前
//&&SPI_InitStructure.SPI_CRCPolynomial=7;
& &SPI_Init(SPI1,&SPI_InitStructure);
& &SPI_Cmd(SPI1,ENABLE);
u16 Read_TLC2543(u16 chan)
& &&&u16 ADC
& & & &&&chan&&=12;
& & & &&&chan|=0x0C00;
& &&&GPIO_WriteBit(GPIOA,GPIO_Pin_4,Bit_RESET);& && && &&&//片选信号拉低
& & & &&&Delay_nms(100);& && && && && && && && && && && && && &//加入延时,速度过快读不到数据
& & & && &//等待SPI1 TX buffer 为空
& & & && &while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
& & & && &//发送SPI1的数据
& & & && &SPI_I2S_SendData(SPI1,chan);
& & & && &//等待SPI1完成数据接收
& && &while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
& & & && &//读SPI1所接受到的数据
& & & && &ADCdata=SPI_I2S_ReceiveData(SPI1);
& & & && &Delay_nms(100);
& & & & //&&ADCdata&&=4;& && && && && && && && && && && && && &//读取的数据为16位,第四为为0
& & & && &GPIO_WriteBit(GPIOA,GPIO_Pin_4,Bit_SET);& && && &&&//一次转化完成,片选拉高
& & & && &return ADC
以上是我的部分程序。谢谢啦!!!!
&&&&&&&&&&
在线时间879 小时
威望1700分
芯币2171枚
E金币1143枚
TA的帖子TA的资源
要看看MOSI和MISO都有正确波形才可以粗步判断SPI工作了。如果MOSI都没波形,那估计是哪里初始化有问题。
在线时间422 小时
芯币8690枚
TA的帖子TA的资源
纯净的硅(初级), 积分 673, 距离下一级还需 127 积分
纯净的硅(初级), 积分 673, 距离下一级还需 127 积分
spi有什么比较方便的 调试工具
在线时间2 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 10, 距离下一级还需 190 积分
一粒金砂(中级), 积分 10, 距离下一级还需 190 积分
这个应该是你程序问题
这个AD要第一次读的是上一个通道的装换数据,这点需要注意。还有就是在AD装换完后,一定要再读一次SPI寄存器。我今年刚用过这个方案。可以进一步交流
在线时间13 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
LZ问题解决了没有???
论坛测评队员
Powered by
逛了这许久,何不进去瞧瞧?2013年1月 硬件/嵌入开发大版内专家分月排行榜第一2012年10月 硬件/嵌入开发大版内专家分月排行榜第一2012年9月 硬件/嵌入开发大版内专家分月排行榜第一2012年8月 硬件/嵌入开发大版内专家分月排行榜第一2012年7月 硬件/嵌入开发大版内专家分月排行榜第一2012年6月 硬件/嵌入开发大版内专家分月排行榜第一2012年5月 硬件/嵌入开发大版内专家分月排行榜第一2012年4月 硬件/嵌入开发大版内专家分月排行榜第一2012年3月 硬件/嵌入开发大版内专家分月排行榜第一2012年2月 硬件/嵌入开发大版内专家分月排行榜第一2012年1月 硬件/嵌入开发大版内专家分月排行榜第一2011年11月 硬件/嵌入开发大版内专家分月排行榜第一2011年10月 硬件/嵌入开发大版内专家分月排行榜第一2011年9月 硬件/嵌入开发大版内专家分月排行榜第一
2014年10月 硬件/嵌入开发大版内专家分月排行榜第二2014年2月 硬件/嵌入开发大版内专家分月排行榜第二2013年10月 硬件/嵌入开发大版内专家分月排行榜第二2013年8月 硬件/嵌入开发大版内专家分月排行榜第二2013年3月 硬件/嵌入开发大版内专家分月排行榜第二2012年12月 硬件/嵌入开发大版内专家分月排行榜第二2012年11月 硬件/嵌入开发大版内专家分月排行榜第二2011年12月 硬件/嵌入开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。TLC2543 AD转换两路以上时出了问题 - 数据转换器 - 德州仪器在线技术支持社区
TLC2543 AD转换两路以上时出了问题
发表于2年前
<input type="hidden" id="hGroupID" value="22"
您好,我现在做的TLC2543AD转换,当转换一路时转换结果是正常的,但是当转换2路以上时出现的结果就不正确了,有的偏小(比如输入模拟量为5v,结果转换只有4.5v),有的偏大(比如输入为0,结果转换后有0.3v),但是这些通道单独工作时转换是没有问题的,请问这是怎么回事呢?改如何改善?&/p>&div style=&clear:&>&/div>" />
TLC2543 AD转换两路以上时出了问题
此问题已被解答
All Replies
您好,我现在做的TLC2543AD转换,当转换一路时转换结果是正常的,但是当转换2路以上时出现的结果就不正确了,有的偏小(比如输入模拟量为5v,结果转换只有4.5v),有的偏大(比如输入为0,结果转换后有0.3v),但是这些通道单独工作时转换是没有问题的,请问这是怎么回事呢?改如何改善?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
状元66151分
这个误差是在测量切换时,AD的暂态过程,影响了测量精度。因此,切换瞬间的前后值不能用。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
谢谢您的回复,那如果是这样,改如何解决呢?通道却换之间我加了延时的,从5ms到几s我都试了,还是不行啊。
今天又弄了下,发现通道之间存在干扰,比如两路转换结果显示(之间有延时),改变其中一路时另一路也会跟着变(按着同样的趋势,只是变的值较小,),网上有说是输入阻抗的问题,我是直接用电阻分压来调大小的,另外一路直接接vcc,芯片要求阻抗小于等于50欧姆应该没问题啊。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
状元66151分
仍然是单独测量正确,切换出问题吗?还是两通道独立测量有相互影响?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
是啊,还是单独测量ok,我说的单独测量是指其他通道都没开(即没有输入控制字),如果打开两个以上通道就不行了。
今天又换了一种ad转换程序,觉得不可思议但却能用,我的就不能用,贴上两个程序:
上图左边程序对应的控制字uchar channel[11]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xa0};,两路以上通道打开结果会有影响,不准确;
右图程序对应的控制字:0,1,2,3&&真的,就是这样的控制字,就能用,换成0x00这样的还不行,觉得好奇快,不知您有没有遇到这样的问题,不过这样的控制字用起来也很奇怪,比如我用8路(in0-in7),0对应的通道却是in7,1对应in1,2对应in2,&&
时间紧,目前就先这样用着了,(*^__^*) 嘻嘻&&
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1330分
前端电阻分压是用的 多大的电阻?方便传一下原理图吗?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
您好,分压电阻用10k的电位器,如果说这个模拟输入端输入阻抗不对的话,那直接接vcc和GND的模拟输入应该么问题啊,可是测试是这几个模拟输入都会相互影响,比如利用电阻分压端输入从最小调到最大(标准是0-,5v),此时接VCC端的输入会从4.75v变化到4.98v,就感觉输入端相互影响了。
由于我是直接在开发板上通过杜邦线测试的,所以原理图没有,不过是按照datasheet来接的,上个测试图吧
发现接了电容(68pF)和10欧姆的电阻也没改善。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1330分
数据手册中对输入端的阻抗有明确要求,要小于50欧,所以你用大电阻分压是不合适的,应该前端加一个放大器buffer。另外还要注意满足数据手册中公式5的要求, 还要保证运放是稳定的。(容性负载可能会导致运放不稳定)。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
探花10408分
请问有接电容在在Ref+ 跟 Ref-之间吗?在采集过程用示波器测量这两端电压,观察是否有电压波动;
10k的分压电阻太大了,请根据你所用电源的情况,尽量使用较小的分压电阻;
尽量在模拟输入端前加入运放作为bufffer,如数据手册Figure 1 所示; 如果没有接入运放,请在模拟输入端接入1nF以上的C0G类型的陶瓷电容;
内部有参考测试电压,可以用于测试以排查输入端阻抗的问题;
关于控制程序,请上传CS, CLOCK, DATA OUT, DATA IN, EOC 这几个引脚的时序以便分析,可以用示波器或逻辑分析仪抓到。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
探花10408分
另外,这边有一篇非常好的应用笔记可以参考:
&Determining Minimum Acquisition Times for SAR ADCs
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
很好的帖子,看看。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.

我要回帖

更多关于 tlc2543程序 的文章

 

随机推荐