SSD1627怎么配置才能启动?
我按照 datasheet 上写的步骤配置,可是墨水屏并没有点亮。因为设置比较多,也不知道哪一点配置不对。屏商没有软件技术支持,有点着急,不知道怎么查找问题以下是我们的配置程序,希望路过的高手指点一二,多谢!
uint8_t start_SSD1627(void)
{
CommBuf.bytes=SWresetLckCommW; //1.软件复位及上锁(命令)+(数据) addr=02h
CommBuf.bytes=0x00; //data
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,2,AM_HAL_IOM_RAW))
{//命令+数据=16bits
return 0;
}
for (uint32_t i = 0; i < SPItimeout; i++) //等待复位结束
{//during reset,BUSY=1
if(am_hal_gpio_input_bit_read(SPIbusyGPIO)==0x00) //低为空闲
{
break;
}
am_util_delay_us(100);
}
if(am_hal_gpio_input_bit_read(SPIbusyGPIO)) //如果是超时到这一步,直接返回
{
return 0;
}
else
{
am_util_debug_printf("1.SSD1627复位ok!!\r\n");
}
CommBuf.bytes=OSClkCommW; //2.内部晶振&时钟设置(命令)+(数据) addr=01h
CommBuf.bytes=0x83; //turn on internal oscillator and set time base=0.5ms
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,2,AM_HAL_IOM_RAW))
{//命令+数据=16bits
return 0;
}
else
{
am_util_debug_printf("2.内部晶振&时钟设置ok!!\r\n");
}
CommBuf.bytes=CPVolCommW; //3.充电泵电压及流注使能(命令)+(数据) addr=03h
CommBuf.bytes=0x7b; //set V0 output voltage and set the end level
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,2,AM_HAL_IOM_RAW))
{//命令+数据=16bits
return 0;
}
else
{
am_util_debug_printf("3.充电泵电压及流注使能ok!!\r\n");
}
CommBuf.bytes=CPCtrCommW; //4.充电泵控制(命令)+(数据) addr=06h
CommBuf.bytes=0x05; //Enable Cap-lite charge pump and set 8x multiplier
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,2,AM_HAL_IOM_RAW))
{//命令+数据=16bits
return 0;
}
else
{
am_util_debug_printf("4. 15V充电泵使能并配置成8x!!\r\n");
}
CommBuf.bytes=CCPSCommW; //5.充电泵设置(命令)+(数据) addr=37h
CommBuf.bytes=0x00; //set Cap-lite charge pump option:byte1=0x00
CommBuf.bytes=0x10; //byte2=0x10
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,3,AM_HAL_IOM_RAW))
{//命令+数据=24bits
return 0;
}
else
{
am_util_debug_printf("5.15V充电泵设置ok!!\r\n");
}
CommBuf.bytes=AnalCtrCommW; //6.模拟控制(命令)+(数据) addr=05h
CommBuf.bytes=0xd9; //turn on bias,charge pump and V1 buffer:disable discharge,disable voltage regulation on V0
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,2,AM_HAL_IOM_RAW))
{//命令+数据=16bits
return 0;
}
else
{
am_util_debug_printf("6.模拟控制ok!!\r\n");
}
CommBuf.bytes=LUTset1CommW; //7.波形LUT设置1(命令)+(数据)addr=16h----波形寄存器电压
CommBuf.bytes=0x3e;//0xd5; //waveform LUT setting
CommBuf.bytes=0xc6;//0x7d;
CommBuf.bytes=0xd0;
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,4,AM_HAL_IOM_RAW))
{//命令+数据=32bits
return 0;
}
else
{
am_util_debug_printf("7.波形LUT电压设置ok!!\r\n");
}
CommBuf.bytes=LUTset2CommW; //7.1波形LUT设置2(命令)+(数据)addr=17----波形寄存器电压
CommBuf.bytes=0x5f; //7.2waveform LUT setting
CommBuf.bytes=0x59;
CommBuf.bytes=0xf2;
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,4,AM_HAL_IOM_RAW))
{//命令+数据=32bits
return 0;
}
else
{
am_util_debug_printf("7.波形LUT设置2ok!!\r\n");
}
CommBuf.bytes=LUTset6CommW; //8.波形LUT设置6(命令)----波形寄存器时间
CommBuf.bytes=0x65;//0x65; //waveform LUT setting(数据)addr=1b
CommBuf.bytes=0x83;//0x90;
CommBuf.bytes=0x8a;//0x00;
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,CommBuf.words,4,AM_HAL_IOM_RAW))
{//命令+数据=32bits
return 0;
}
else
{
am_util_debug_printf("8.波形LUT时间设置ok!!\r\n");
}
DisDataBuf.bytes=RAMdata1CommW; //9.RAM显示数据更新(命令)+(数据)addr=10
for(uint8_t i=1;i<12;i++)
{
DisDataBuf.bytes=0xff;
}
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,DisDataBuf.words,12,AM_HAL_IOM_RAW))
{
return 0;
}
else
{
am_util_debug_printf("9.send display RAM data ok!!\r\n");
}
DisDataBuf.bytes=DisUpdatCommW; //10.显示刷新(命令)+(数据)addr=00
DisDataBuf.bytes=0xa0; //perform dispaly updata
DisDataBuf.bytes=0x40;
if(AM_HAL_IOM_SUCCESS !=am_hal_iom_spi_write(SPIOModule,SPICEn,DisDataBuf.words,3,AM_HAL_IOM_RAW))
{
return 0;
}
else
{
am_util_debug_printf("10.等待显示刷新!!\r\n");
}
return 1;
} 我的SPI是正确的,这个已经验证过的。就是SSD1627的配置,可能不对还是怎么回事,屏没有点亮 没有技术支持和参考代码的厂家就是一个坑,硬件在你手里,这种情况下,只能是建议你抓波形了,SPI请再次读写寄存器测试,确保这个是正确的。在这个基础上,继续研究寄存器吧,没办法。 xyz549040622 发表于 2021-3-24 21:00
没有技术支持和参考代码的厂家就是一个坑,硬件在你手里,这种情况下,只能是建议你抓波形了,SPI请再次读 ...
多谢,我每次调用MCU硬件SPI写库函数,得到的反馈都是success,证明这个SPI应该是ok的了(我们公司居然没有逻辑分析仪)。屏商说这个很简单,别人都是试一下就出来了,我很想骂人。而且他们提供的SSD1627datashee好像是剪截修改版(我后来在本网站下载了一份原厂SSD1623的dtatsheet 才发现的) 不明白在SOLOMON SYSTECH官网上为何居然不提供SSD1627datasheet下载!这个芯片留着他们自己当饭吃吗?别人不用它的时候,它啥玩意也不是。这个有何保密的,真是想不通那些芯片厂商或芯片代理是个什么心态
页:
[1]