本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
使用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伏,结果不是很精确,因为我得参考电压不是很准。
用SPI读取12位AD芯片TLC2543.rar
(288.08 KB, 下载次数: 35)
|