单片机/MCU论坛
直播中

tr4578

8年用户 916经验值
擅长:模拟技术
私信 关注
[问答]

为什么SSD2828读取不到ID值都是0xFFFF?

初始化函数
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%xn"SPI_READ());
}

回帖(1)

韩志保

2023-9-28 09:58:05
没法判断你的指令对不对,我只能建议抓波形了,不知道你底层的寄存器写的波形是否一致呢?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分