本范例演示了德州仪器的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个。