首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PIC18作为SPI从站的问题

使用PIC18作为SPI从站的问题
EN

Stack Overflow用户
提问于 2013-01-26 01:22:27
回答 3查看 901关注 0票数 1

我一直在开发一个运行在16 PIC18F45k20上的MHz,并将其用作SPI从服务器。我发现,无论来自主机的SPI时钟速率(SCK)如何,我总是必须在SPI字节之间添加一个显著的延迟(~64 us),以避免SPI冲突或接收溢出。在没有延迟的情况下,在非常慢的SPI时钟速率下,95%的SPI数据包将在没有冲突或溢出的情况下通过。

在线帖子让我认为这可能是PIC18处理器和其他处理器的一个“特性”。

  1. 其他人有没有观察到这个奴隶的“特征”?
  2. 如果这是一个“特性”,它是否在所有PIC18处理器中找到?

我在没有中断的情况下对PIC18进行了以下测试:

代码语言:javascript
复制
if (SSPSTATbits.BF)
{
  DataIn = SSPBUF;
  SSPBUF = DataOut;
}

还使用中断进行测试,并看到了同样的挑战。

让我怀疑它是否真的检测到了SPI时钟。

EN

回答 3

Stack Overflow用户

发布于 2013-03-20 13:15:45

如果你有一个示波器检查,以确保芯片选择是不释放的事先事先知情同意锁定出最后的SPI数据字节。在释放芯片选择线之前,您需要等待SPI繁忙位。

票数 0
EN

Stack Overflow用户

发布于 2016-04-10 04:40:37

正如我所知,PIC18是一个8位的微控制器,尽管您可以很容易地发现它的整数变量被映射到16位。然而,SPI处理8位数据。这意味着如果您的主控制器发送超过8位,如16位,溢出发生在SPI模块,不能再响应主时钟。因此,在从模式中,确保来自主数据的数据具有8位结构。但是,如果pic18是SPI连接中的主程序,即使它的从服务器发送16位数据,pic18也会在前8位之后保存时钟数据,然后等待其缓冲区读取,然后空到下一个8位。

票数 0
EN

Stack Overflow用户

发布于 2020-08-23 18:21:19

我也遇到了这个问题,似乎应该考虑的是,支持的SPI简单地告诉MCU能够以多快的速度接收到SSPBUF。

从SSPBUF读取此字节并将其存储在缓冲区中将需要一些工作,例如增量指针等,这将需要一些时间。这就是减少多字节SPI的实际SPI带宽的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14532829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档