【DigiKey&NXP】FRDM-MCXA153 SPI 驱动调试

使用 FRDM-MCXA153 开发板驱动SPI外设

  • 版本说明
    • SDK版本:25_06_00
    • Keil MDK版本:5.42.0
    • Config Tool版本:25.6

硬件电路

查看官网下载的原理图得知,板载的Arduion的接口定义如下图右边,左边是我自己画的屏幕底板,使用的是Arduino的接口定义,可以根据两个原理图得知管脚的对应关系如下表

屏幕底板 开发板接口 MCU引脚
SCL LPSPI1_SCK P2_12
SDA LPSPI1_MOSI P2_13
DC P3_14

软件适配

官方的例程是用的 LPSPI0,这里用到了 LPSPI1 所以需要将 app.h 里面的代码稍作修改

#define EXAMPLE_LPSPI_MASTER_BASEADDR         (LPSPI1)
#define EXAMPLE_LPSPI_MASTER_IRQN             (LPSPI1_IRQn)
#define EXAMPLE_LPSPI_DEALY_COUNT             0xFFFFF
#define LPSPI_MASTER_CLK_FREQ                 (CLOCK_GetLpspiClkFreq(1))
#define EXAMPLE_LPSPI_MASTER_PCS_FOR_INIT     (kLPSPI_Pcs0)
#define EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER (kLPSPI_MasterPcs0)
#define EXAMPLE_LPSPI_MASTER_IRQHandler       (LPSPI1_IRQHandler)

将屏幕底板插到开发板上面,将SCK、SDA、DC、GND接到逻辑分析仪上

在官方的spi例程中是发送了一个长度64个字节的数据

/* Set up the transfer data */
for (i = 0U; i < TRANSFER_SIZE; i++)
{
    masterTxData[i] = (i + loopCount) % 256U;
    masterRxData[i] = 0U;
}

/* Print out transmit buffer */
PRINTF("\r\n Master transmit:\r\n");
for (i = 0U; i < TRANSFER_SIZE; i++)
{
    /* Print 16 numbers in a line */
    if ((i & 0x0FU) == 0U)
    {
        PRINTF("\r\n");
    }
    PRINTF(" %02X", masterTxData[i]);
}
PRINTF("\r\n");

使用逻辑分析仪抓包进行查看,可以看到spi发出来的数据02、03、04。。。可以正常的输出SPI信号,至此,使用FRDM-MCXA153 开发板板载的 Arduino 接口上面的 SPI 引脚输出 SPI 信号已经可以正常工作了。