📄 范例说明.txt
字号:
!!!!操作之前请先仔细阅读数据文档,了解ADC及M8的SPI口的工作原理!!!
本范例演示了德州仪器的12位ADC-TLC2543与M8通过SPI口进行通讯。
TLC2543是12位ADC,输出采用串行输出(兼容SPI模式),基本信号线
是串行时钟线(SCK),数据输出(DOUT),数据输入(DIN也就是命令
字的输入),片选(CS低有效)。命令字的格式具体参见TLC2543的数
据文档第14页。TLC2543的具体资料(请仔细阅读)见附件,SPI口的寄
存器定义和时序等资料参考M8的手册以及双龙出的粉红面的《ATMEGA8
原理及应用手册》(清华大学出版社马潮,詹卫前,耿德根编著)。
程序演示了TLC2543在16位分辨率(16位需要两次读取数据,8位只需一次),
片选一直为低即TLC2543一直处于使能状态(其实是伪16位,为了适应采集
系统这里就是M8的寄存器位数,本质仍是12位)下的向M8传递转换结果同时
接收命令字的过程。可采取内部检测模式或者实际外部模拟通道输入模式
(本例采用外部模拟通道0和1交替输入),只需修改相应控制字即可。注
意留意高还是低字节先进入SPI的循环移位寄存器问题(通过控制字设置),
需要注意的是TLC2543在12位分辨率下,需要在M8上用软件模拟SPI口的时序,
个人觉得无法通过直接应用SPI实现,因为SPI口的循环移位寄存器是8位的,
SPI的IO时钟无法实现12个时钟脉冲,要么8个要么16个。
连线图
TLC2543 M8
__________________ __________
| 15 #CS |_____________|PB2(16) |
| 18 IO CLK|_____________|PB5(19) |
| 17 DATA INPUT|_____________|PB3(17) |
| 16 DATA OUT|_____________|PB4(18) |
|_________________| |__________|
波特率9600,八个数据位,一个停止位
结果是4×××和00××交替的 因为我是两通道交替输入
一个通道输入五伏,一个0伏,结果不是很精确,因为我得参考电压不是很准
欢迎访问 www.OurAVR.com 2004-12-04
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -