完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在研究使用PIC24作为SPI从机。这似乎没有问题,只是作为一个被动的奴隶。(只有接收数据)在我看来,主动奴隶是不可能的。(如果主机发送命令,那么从属需要立即回答,因此它没有时间来检索和加载适当的数据)是否还有一种方法来制造一个主动的奴隶?(奴隶不仅从主人那里接收,而且在主人的请求下返回数据)
|
|
相关推荐
9个回答
|
|
您可以预加载准备传输的字节/字,或者启用增强模式并预加载8xbyte/字。但是,如果希望从机像内存那样对接收到的SPI数据作出响应,则需要在发送下一组时钟之前添加打包字节/字或确保主等待。
|
|
|
|
也有时钟扫描迫使主人等待数据,马上对你意味着什么?使用快速的PIC,互插时延是主要问题。你使用的波特率是多少?你也在编程大师吗?
|
|
|
|
真正地?在SPI上?从未考虑过…
|
|
|
|
真正地?在SPI上?从来没有想过…我想我需要倾斜阅读。如果您正在编写主代码,则为SPI。主控需要等待确保数据准备好,以使时钟返回。可选地,低波特率可以帮助。DMA是更有用的,如果奴隶知道主人要求什么。PIC上的高时钟速率也有帮助。
|
|
|
|
一切都好!
|
|
|
|
对于标准模式下的SPI,有一件事我不太清楚:SPITBF标志(传输缓冲区已满),这是在发送开始时清除的,还是在发送所有比特之后清除的?(数据表不太清楚这个……)
|
|
|
|
我从来不确定它和RBF-我通常去检查我的代码。但是几天前,我们尝试了TBF,它刚写完就退出了,为了传输完整的字节,我们不得不等待RBF。(在PIC32上)
|
|
|
|
OPs问题似乎显示了对SPI交换如何工作的误解——关键词是“交换”。当一个设备发送一个比特,另一个设备接收它并且还发送它自己的对应比特。主设备将发起交换,而从设备将简单地等待直到看到时钟(或f)为止。如果需要“OP”所称的“活动”从站,那么正如其他人所说,您需要预加载从站缓冲区,或者,正如我看到的一些尝试实现的,使用也连接到中断的从站选择线,并且在从站可以加载之前锄主站不启动时钟。更可靠的方法是在SPI交换通道的顶部实现一个协议,如果需要的话,让主设备发送一个“立即读取值”命令,给从设备一点时间来响应,而结束一个命令“给我值”(或者虚拟值,这与下面的命令相同)。任何其他方法都会有风险从奴隶发送旧数据。(然而,主控程序可以快速连续地请求两个值,并且总是忽略第一个值。)重新评论关于时钟扩展的注释:这不是SPI过程的一部分,因为它在I2C协议中。但是,您可以得到类似的结果,因为主控器控制时钟,而从控器只对指定的SCK转换作出响应。硬件真的不在乎过渡之间的时间,所以只要它愿意,主人就可以把它拉长。(然而,这也是为什么使用SS或类似的线路对从设备来说很重要的原因,否则它会看到时钟上的噪声脉冲,并认为这是第一次时钟转换——如果发生这种情况,它将与主设备不同步。)
|
|
|
|
您好,彼得,同意上述误解。SPI只是一个“电子机制”。外围时钟在其计时时进入。时钟可以是任何低于指定最大频率的频率。从机无法预测时钟的开始(参见后面)并准备好应答,除非它预先加载了一些标准报头/应答或“过时”数据。获取EEPROM、Flash或SRAM芯片的数据表可能是值得的。在这里,您将看到常见的半双工数据传输,它需要“虚拟”写入,以时钟协议应答从从属到SPI主机。作为指导。如果您使用PIC到PIC(24/33)通信,请使用16位CPU。使用16位SPI。用标志进行实验。由于“机制”,主SPI Rx中断也意味着Tx已经完成(一个字)。总是引入某种aslave“同步”工具。它重置SPI时钟并清除缓冲区(这是通过禁用和重新启用来实现的)。我在字传送上使用了一个超时。有一个特性允许奴隶在数据传输之前知道1个ScRink循环。但从来没有用过。对我来说似乎有问题。T Yorky
|
|
|
|
只有小组成员才能发言,加入小组>>
5125 浏览 9 评论
1984 浏览 8 评论
1914 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3148 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2212 浏览 5 评论
696浏览 1评论
583浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
465浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
601浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-1 11:25 , Processed in 1.443303 second(s), Total 94, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号