This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5994:SPI clk 波形怪异。 每个字节都有小延迟。

Guru**** 2381490 points
Other Parts Discussed in Thread: MSP430FR5992, MSP430FR5994, MSP430FR2355, MSP430FR2433
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1277037/msp430fr5994-spi-clk-waveform-is-weird-there-is-a-small-delay-for-every-byte

器件型号:MSP430FR5994
主题中讨论的其他器件: MSP430FR2355MSP430FR2433、MSP430FR5992

您好!

我使用的是 MSP430FR5994和 MSP4305992


将使用的芯片从 MSP430FR2355、MSP430FR2433更改为 MSP430FR5992、MSP430FR5994后、无法与目标芯片进行 SPI 通信。

目标芯片必须精确调整为通信频率。 (文献编号:1MHz)


观察示波器、clk 波形很奇怪。

无法通信。 (msp599x)

工作正常 clk。 (msp2433)

void B1_do_spi_noCS(uint8_t nbytes){

    // Reset SPI transaction pointers
    pSPITxBuf = spi_tx_buf;
    pSPIRxBuf = spi_rx_buf;
    spi_tx_end = pSPITxBuf + nbytes;
    spi_rx_end = pSPIRxBuf + nbytes;

    SpiDone = 0;

    // Trigger SPI transfer
    UCB1IE |= UCTXIE;

    // Block until end of transaction
    __bis_SR_register(LPM0_bits);
}


#pragma vector=USCI_B1_VECTOR
__interrupt void USCI_B1_ISR(void)
{
    switch (__even_in_range(UCB1IV, USCI_SPI_UCTXIFG))
    {
    case USCI_NONE:
        break;                // Vector 0 - no interrupt
    case USCI_SPI_UCRXIFG:
        *(pSPIRxBuf++) = UCB1RXBUF;
        //cnt1++;
        if (pSPIRxBuf >= spi_rx_end)
        {
            SpiDone = true;
            // Exit low power mode
            _BIC_SR_IRQ(LPM0_bits);
        }
        break;
    case USCI_SPI_UCTXIFG:
        UCB1TXBUF = *(pSPITxBuf++);
        //cnt2++;
        if (pSPITxBuf >= spi_tx_end)
        {
            UCB1IE &= ~UCTXIE;
            _BIC_SR_IRQ(LPM0_bits);
            _BIC_SR_IRQ(LPM0_bits);
            SpiDone = true;
        }
        break;
    default:
        break;
    }
}

SPI 源代码。 在 MSP 2,355,2433上、该代码运行良好。

禁用 RX 中断会将 SPI CLK 波形和目标芯片标准化以使其运行。 但没有意义。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    MCLK 为16MHz。

    SPI CLK 的前11个字节有一个恒定波形。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    "Properties"-> Build -> MSP430Compiler -> Processor Options ->数据存储器模型

    restrict (默认)->小
    它起作用了。