1.现在遇到问题,mipi屏幕3.3v给的太慢导致复位失败
于是开始查电压,就是因为存在1.8v是不对的电压,设计时是先1.8v供上来的时候,导致复位没有生效
不断排查,
1.发现休眠唤醒可以点亮,证明屏参没有问题
2.跳过开机uboot-logo显示也可以正常显示,证明是uboot内发送问题
3.强行吧mipi电源拉到3.3v发现可以正常显示,有logo有动画
4.得到结论,提前让控制mipi电压3.3v的引脚在uboot里面拉高给出3.3v
操作:
//rk3288-8.1\sdk\u-boot\board\rockchip\common\rkboot
extern void rtc_check_onoff(void);
void board_fbt_preboot(void)
{
enum fbt_reboot_type frt;
__maybe_unused bool charge_enable = false;
#ifdef CONFIG_UBOOT_CHARGE
int charge_node; /*device node*/
int uboot_charge_on = 0;
int android_charge_on = 0;
#endif
#ifdef CONFIG_CMD_FASTBOOT
/* need to init this ASAP so we know the unlocked state */
fbt_fastboot_init();
#endif
+ gpio_direction_output((GPIO_BANK7 | GPIO_B3),1);
+ gpio_direction_output((GPIO_BANK7 | GPIO_C5),1);
+ gpio_direction_output((GPIO_BANK7 | GPIO_A4),1);
+ gpio_direction_output((GPIO_BANK7 | GPIO_B4),1);
frt = board_fbt_get_reboot_type();
/* cold boot */
if (frt == FASTBOOT_REBOOT_UNKNOWN)
charge_enable = true;
/* no spec reboot type, check key press */
if ((frt == FASTBOOT_REBOOT_UNKNOWN) || (frt == FASTBOOT_REBOOT_NORMAL)) {
FBTDBG("\n%s: no spec reboot type, check key press.\n", __func__);
frt = board_fbt_key_pressed();
/* detect key press, disable charge */
if (frt != FASTBOOT_REBOOT_UNKNOWN)
charge_enable = false;
} else {
//clear reboot type.
board_fbt_set_reboot_type(FASTBOOT_REBOOT_NORMAL);
}
然后重新烧写uboot
然后显示正常,然后要赶下一个功能了,就这样了,虽然前面一段还是存在1.8v,但是依旧正常显示
反正是解决了我的一大难题,方法仅供参考