ashaohlt 发表于 2013-3-6 22:52:12

请教:如何用8位SPI发送连续的24位数据

我要用mega16的SPI(数据寄存器只有8位)给一个DAC发送连续的24位数据,除了IO口模拟时序外,还有什么方法可以实现吗?谢谢各位!

yklstudent 发表于 2013-3-6 22:54:16

硬件SPI一样可以啊 IO模拟也一样容易实现

ashaohlt 发表于 2013-3-6 23:13:29

yklstudent 发表于 2013-3-6 22:54 static/image/common/back.gif
硬件SPI一样可以啊 IO模拟也一样容易实现

硬件SPI如何实现?可以具体一点吗?IO模拟的话太耗时间了,不利于精确控制。

ashaohlt 发表于 2013-3-6 23:40:42

superAFE 发表于 2013-3-6 23:24 static/image/common/back.gif
看了数据手册吗?AVR的各个硬件模块说明很详细的。

mega16的SPI数据寄存器是8位的,发送完后SS#就拉高了,从机没法接收到完整的24位数据。

zhanan 发表于 2013-3-6 23:41:51

发三次不就行了嘛

ashaohlt 发表于 2013-3-6 23:53:14

zhanan 发表于 2013-3-6 23:41 static/image/common/back.gif
发三次不就行了嘛

要连续的24位才行,分开后就会被SS#打断了,从机设备无法识别数据。

zhanan 发表于 2013-3-7 00:01:24

SS可配置吧,可程序控制。

ashaohlt 发表于 2013-3-7 00:03:41

zhanan 发表于 2013-3-7 00:01 static/image/common/back.gif
SS可配置吧,可程序控制。

数据寄存器只有8位,没传完不能改寄存器的,不然就出错了

zhanan 发表于 2013-3-7 00:04:57

ashaohlt 发表于 2013-3-7 00:05:39

手册截图

zhanan 发表于 2013-3-7 00:09:15

本帖最后由 zhanan 于 2013-3-7 00:10 编辑

你真够笨的,发送的时候你判断是否发完,发完再发下一个8位。或者用中断。全发完了,拉高SS。
好好看手册。

zhanan 发表于 2013-3-7 00:18:43

ashaohlt 发表于 2013-3-7 00:57:28

zhanan 发表于 2013-3-7 00:04 static/image/common/back.gif


感谢,我去试试看!
页: [1]
查看完整版本: 请教:如何用8位SPI发送连续的24位数据