【问题标题】:PIC SPI configuration questionsPIC SPI 配置问题
【发布时间】:2019-09-09 19:09:47
【问题描述】:

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

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

3) 根据数据表,我无法获得 FIFO 寄存器的用途,我们无法通过软件控制它们。不是像缓冲区吗?因此,如果我写入传输寄存器的速度比传输速度快,则传输数据将被放入 FIFO。并将它们一一传播。我对么?我不需要任何东西,而不是写入传输缓冲区。

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

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

感谢您的回答。我是新手。抱歉,这些简单且可能毫无意义的问题。或者我可以简单地显示我的配置代码,但我相信它会更难分析。

【问题讨论】:

    标签: pic spi


    【解决方案1】:

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

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

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

    4) 我认为极性位只是将空闲状态下的线路电平设置为高或低。应该为每个人(主人和奴隶)设置相同的。

    5) 如果您只有一个从站,您可以将该线连接到从站启用线。如果您有多个从机,则需要为每个和(对于每个)OR 信号设置一条 gpio 线,并将 OR 输出连接到从机使能(如果它是低电平有效,通常是这样) .确保一次只有一个从属设备处于活动状态。也可以做一个菊花链的奴隶。我没有使用过这种设置。

    【讨论】:

    猜你喜欢
    • 2014-05-19
    • 2021-04-06
    • 2019-08-20
    • 2016-03-03
    • 2015-03-15
    • 2012-02-10
    • 1970-01-01
    • 2022-01-20
    • 2016-11-08
    相关资源
    最近更新 更多