我正在做一些阅读,甚至在我的微控制器上得到了一个“主”SPI。这是我的问题,基本上,如果主机想要初始化对我们写入SSPBUF的从机的写入,我们如何控制从机的响应?对于我来说,数据表似乎并不是很清楚这种情况下事件的顺序。
即,主机将一个字符放入SSPBUF,这将启动SPI模块向从机发送数据,在移位期间,从机返回一个字节。
在从机端,有没有什么东西告诉您有传入的数据,您可以先写入SSPBUF,然后再接受数据?
或
在主机有机会发起传输之前,您是否必须向SSPBUF写入您希望发回的第一个“返回值”?
发布于 2010-06-03 09:05:00
你想在处理从机芯片选择的GPIO线上使用一个中断。确保从机有足够的时间处理此中断,并在时钟开始之前加载输出数据寄存器。
某些SPI模块禁止使用GPIO -您需要检查您的SPI模块是否具有处理芯片选择的功能,或者仅根据GPIO活动启用该模块。
发布于 2010-06-03 08:51:16
通常,我过去使用SPI所做的是从主机向从主机发送2个字节,两者之间的延迟最小。主机发送:"X - Y“,其中"X”是希望从从机读取的变量,而"Y“实际上只是一个用来对从机的响应进行时钟输出的虚拟变量。同时,当从设备接收到"X“时,它会得到一个中断,查找要放入其输出缓冲区中的值,而当它接收到"Y”时,对其数据包的响应将计时到主机。
发布于 2010-05-28 22:56:10
无论您的微控制器是什么,三个可能是与接收SPI数据相关联的ISR,以及一个寄存器,在该寄存器中可以访问已接收的数据并将其复制到局部变量中。
https://stackoverflow.com/questions/2920999
复制相似问题