找回密码
 注册会员
搜索附件  
MCU资讯论坛 附件中心 单片机论坛 AVR单片机论坛 用SPI读取12位AD芯片TLC2543.rar

热门下载

附件中心&附件聚合2.0
For Discuz! X2.5 © hgcad.com

用SPI读取12位AD芯片TLC2543.rar

 

用SPI读取12位AD芯片TLC2543:
使用AVR的SPI,读取12位AD转换芯片TLC2543,并实时将转换结果,通过PC串行口,传输给串口调试助手显示。


  本范例演示了德州仪器的12位ADC-TLC2543与M8通过SPI口进行通讯。 TLC2543是12位ADC,输出采用串行输出(兼容SPI模式),基本信号线 是串行时钟线(SCK),数据输出(DOUT),数据输入(DIN也就是命令 字的输入),片选(CS低有效)。命令字的格式具体参见TLC2543的数 据文档第14页。TLC2543的具体资料(请仔细阅读)见附件,SPI口的寄存器定义和时序等资料参考M8的手册。

  程序演示了TLC2543在16位分辨率(16位需要两次读取数据,8位只需一次), 片选一直为低即TLC2543一直处于使能状态(其实是伪16位,为了适应采集 系统这里就是M8的寄存器位数,本质仍是12位)下的向M8传递转换结果同时 接收命令字的过程。可采取内部检测模式或者实际外部模拟通道输入模式 (本例采用外部模拟通道0和1交替输入),只需修改相应控制字即可。

  注意留意高还是低字节先进入SPI的循环移位寄存器问题(通过控制字设置), 需要注意的是TLC2543在12位分辨率下,需要在M8上用软件模拟SPI口的时序, 个人觉得无法通过直接应用SPI实现,因为SPI口的循环移位寄存器是8位的, SPI的IO时钟无法实现12个时钟脉冲,要么8个要么16个。

电路图:

波特率9600,八个数据位,一个停止位(请参考上面串口调试助手的设置)。

  结果是4×××和00××交替的 因为我是两通道交替输入 一个通道输入五伏,一个0伏,结果不是很精确,因为我得参考电压不是很准。


看看有多少?看看有多少?看看有多少?看看有多少?
谢谢
dddddddddddddddddddddddddddddddddddddddddddddddd

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 19:15 , Processed in 0.023088 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部