首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PIC SPI配置问题

PIC SPI配置问题
EN

Stack Overflow用户
提问于 2019-04-19 22:03:54
回答 1查看 151关注 0票数 0

我有一些关于SPI的SPIxCON寄存器的问题。我使用PIC18F26K83。1)有一个SPIxTCNTH: SPI传输计数器MSB寄存器。我可以在它上面设置前3个比特,它对要传输的比特进行计数。根据数据表,它是可写的位。根据数据表,它计算将要传输的比特数,那么为什么它是可写的?我需要根据我要发送的比特来写吗?或者它是用来通知用户的。

2)有SPIxTWIDTH: SPI传输宽度寄存器。在BMODE=1的情况下,它是由传输计数器I计数的每个传输的大小(以位为单位),它将发送诸如1.1或2.3之类的值到DAC.在这种情况下,我应该将其设置为什么?此寄存器是否有标准值?

3)根据数据表,我无法了解FIFO寄存器是用来做什么的,我们不能通过软件控制它们。它不是像一个缓冲区吗?因此,如果写入发送寄存器的速度快于传输速度,则发送数据将被放入FIFO。一个接一个地传送。我说的对吗?我不需要写任何东西,而不是写到发送缓冲区。

4)我读了SPIxCON1中的极性位,但不能理解。如果我不接触控制寄存器中的这些位,可以吗?我不想搞砸。

5)如何选择从机?SPIxCON2寄存器中有一个SSET (从机选择使能位)。我可以将其设为1,但是我如何选择从站呢?

感谢您的回答。我是个新手。很抱歉,我提出了一些简单的、甚至是无意义的问题。或者我可以简单地展示我的配置代码,但我相信它会更难分析。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-19 23:13:42

1)传输计数器(在使用时)以要发送或接收的字节数或部分字节数写入(取决于模式)。因此,如果您正在使用它(BMODE=0或TXR=0),则应将其设置为您期望发送或接收的字节数。

2)您需要查看这些数字的二进制表示,以了解在每种情况下您将发送多少位。标准值是一个完整字节。

3) FIFO是隐藏元素,写入SPIxTXB或从SPIxRXB寄存器读取可访问相应的FIFO。FIFO只有两个字节深,所以如果你正在发送快速TXWE位(iirc),你仍然需要检查溢出,但如果你有大量数据要快速传输,我建议使用DMA进行传输,然后你只需设置它并让它离开,就可以做其他事情,直到它完成。

4)我认为极性位只是在空闲状态期间将线路电平设置为高或低。它应该为每个人(主机和从机)设置相同的值。

5)如果您只有一个slave,您可以将该线路绑定到slaves enable线路。如果您有多个从机,则需要为每个and (针对每个)或信号设置一条GPIO线,并将OR输出附加到从机使能(如果其为低电平有效,通常如此)。确保一次只有一个从设备处于活动状态。做一个菊花链的从属也是可以做到的。我还没有使用过这样的设置。

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

https://stackoverflow.com/questions/55763094

复制
相关文章

相似问题

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