0

我正在使用 Waveshare 1.54" ePaper 模块。使用 SPI 外围设备:

  • CPU频率为16Mhz
  • SPI 预分频器除以 8
  • 最高位优先
  • CPOL=0,CPHA=1

显示器没有响应,但它正确响应 TI CC1310。SPI 的问题是在传输字节后它没有进入理想的高电平状态。

我用逻辑分析仪检查过。 在此处输入图像描述 在此处输入图像描述

SPI 是这样初始化的:

/****************** Initializing The SPI Peripheral ******************/

void SPI_setup(void)
{
    CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, ENABLE);  //Enable SPI Peripheral Clock
    //Set the MOSI, MISO and SCk at high Level.
    //GPIO_ExternalPullUpConfig(GPIOC, (GPIO_Pin_TypeDef)(GPIO_PIN_6),ENABLE);
    SPI_DeInit();
    SPI_Init(SPI_FIRSTBIT_MSB,                    //Send MSB First
             SPI_BAUDRATEPRESCALER_8,             //Fosc/16 = 1MHz
             SPI_MODE_MASTER,
             SPI_CLOCKPOLARITY_LOW,               //IDEAL Clock Polarity is LOW
             SPI_CLOCKPHASE_2EDGE,                //The first clock transition is the first data capture edge
             SPI_DATADIRECTION_2LINES_FULLDUPLEX, //Only TX is Enable 
             SPI_NSS_SOFT,
             0x00);
    SPI_Cmd(ENABLE);
}
4

1 回答 1

0

这与仅在不同处理器上将 SPI 电子墨水显示器与 PIC 18F46K22 连接时遇到的问题几乎相同。值得注意的是,STM8 上的 CPHA 与 PIC18 上的 CPE 具有相反的意义,这可能是您出错的原因。也就是说在STM8上和在PIC18上CPHA=1效果一样。CKE=0您确实必须仔细查看每个部分的时序图。

来自https://www.waveshare.com/wiki/1.54inch_e-Paper_Module在此处输入图像描述

对比STM8参考手册: 在此处输入图像描述

显然,您需要以下之一:

  • CPHA=1/ CPOL=1( SPI_CLOCKPOLARITY_HIGH/ SPI_CLOCKPHASE_2EDGE) 或
  • CPHA=0/ CPOL=0( SPI_CLOCKPOLARITY_LOW/ SPI_CLOCKPHASE_1EDGE)

如果您希望 SCLK 处于常高状态,那么您需要第一个选项 - 尽管我看不出为什么这是“理想的”,但 Waveshare 图清楚地表明任何一个都可以接受。

于 2021-01-06T23:35:01.390 回答