• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请问下为啥我的SSD2828读取不到ID值,都是0xFFFF

力洪 2020-11-30 浏览量:1098
初始化函数
void SSD2828_Init(void)
{
        SSD2828_QSPI_Init();
        //Packet Write Configuration
        SSD2828_Write_REG(0xB80x0000);        //VC(Virtual ChannelID) Control Register
        SSD2828_Write_REG(0xB90x0000);        //PLL Disable

        //PLL Configure
        //FR: bit15~14
        //00 ?62.5 < OUT f  < 125
        //01 ?126 < OUT f  < 250
        //10 ?251 < OUT f  < 500  
        //11 ?501 < OUT f  < 1000        
        SSD2828_Write_REG(0x00BA0xC050);        //Fout = Fin * 0x14 / 1 = 10M * 80 /1 = 800M
        SSD2828_Write_REG(0x00BB0x0009);        //LP(Low Power) Clock = Fout /10/8 = 10M
        SSD2828_Write_REG(0x00B90x0001);        //PLL ENABLE
        HAL_Delay(100);

        //RGB Input Interface Control
        SSD2828_Write_REG(0x00B1(SSD2828_VSYNC<<8)+SSD2828_HSYNC);
        SSD2828_Write_REG(0x00B2(SSD2828_VBP<<8)+SSD2828_HBP);
        SSD2828_Write_REG(0x00B3(SSD2828_VFP<<8)+SSD2828_HFP);
        SSD2828_Write_REG(0x00B4SSD2828_WIDTH);
        SSD2828_Write_REG(0x00B5SSD2828_HEIGHT);
        SSD2828_Write_REG(0x00B60x0003);        //HSVSPCLK=0 Bit[1:0]=11=24bpp

        //Delay Timeing
        //SSD2828_Write_REG(0x00C40x0001);        //Enable BTA
        SSD2828_Write_REG(0xC90x2302);        //p1: HS-Data-zero  p2: HS-Data- prepare  --> 8031 issue
        HAL_Delay(5);
        SSD2828_Write_REG(0xCA0x2302);
        SSD2828_Write_REG(0xCB0x0510);
        SSD2828_Write_REG(0xCC0x1005);        //0x100A????0A????
        HAL_Delay(5);
        SSD2828_Write_REG(0xD00x0000);        //HS TX Timer=0?????=0x0010

        //MIPI Lane Configure
        //00 - 1 lane mode
        //01 - 2 lane mode
        //10 - 3 lane mode
        //11 - 4 lane mode
        SSD2828_Write_REG(0xDE0x0003);        //2 Data Lane11=4LANE 10=3LANE 01=2LANE 00=1LANE
        SSD2828_Write_REG(0xD60x0005);        //Bit[7:2]:Send X(now=1) Packet in Blanking Period Bit[0]:1=R.G.B/0=B.G.R
        SSD2828_Write_REG(0xB70x024B);        //0x024B选择TX_CLK作为MIPI时钟0x026B选择RGB的PCLK作为MIPI时钟
        HAL_Delay(100);

}
读取ID函数
void   SPI5_READ_ID(void)
{
        SSD2828_Write_REG(0xd4 0x00FA);
        printf("2828 ID: 0x%x\n"SPI_READ());
}


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 没法判断你的指令对不对,我只能建议抓波形了,不知道你底层的寄存器写的波形是否一致呢?
    • 发布于 2020-12-01
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 用示波器看一下波形吧,2828读写函数都会有问题导致读出来全是f
    • 发布于2020-12-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种要检查一下SSD2828有没有工作,全是FFFF意思是总线上面没有数据传输
    • 发布于2020-12-01
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请问下为啥我的SSD2828读取不到ID值,都是0xFFFF