
RK628 HDMI 转 MIPI(屏幕时序有问题)
简介
RK628的功能验证板,使用外部MCU通过I2C与RK628通信。RK628的资料从网上找的,驱动来源于Linux内核。目前屏幕调的还是有问题。已弃坑)
简介:RK628的功能验证板,使用外部MCU通过I2C与RK628通信。RK628的资料从网上找的,驱动来源于Linux内核。目前屏幕调的还是有问题。已弃坑)开源协议
:Public Domain
描述
RK628D是一款不错的芯片,性价比比较高,可惜官方没有开放资料。我利用网上能找到的东西,设计了一块评估板,从Linux内核中抽取出了对应驱动。

外部MCU:CH582M
pcb板BUG:没有3213封装的32MHz晶振,找了3225的晶振斜着干上去了。
LCD的驱动用了TPS65142,我设计时对这个芯片的理解可能还是出现了一些偏差,输出有问题,最后的电压没有到屏幕规格书里的建议值。
建议还是换成LCD的LED电源+LCD正负电源分立的这种。

屏幕:LQ055T3SX02Z。1920*1080

屏幕的初始化序列在panel.c中设置,屏幕的显示参数在rk628_config.c中设置。
如果更换单片机,需要提供的接口列表:
void rk628_delay_us(int us);
void rk628_delay_ms(int ms);
int64_t rk628_gettime_us();
void rk628_set_RST_pin(int val);
int rk628_get_DET_pin_level();
// 设置定时任务,可以利用定时器实现。rk628_interface.c代码里写了一个简易的定时任务管理
void rk628_schedule_timer(void (*timer_cb)(), int time_us);
void rk628_schedule_timer_interrupt(void (*timer_cb)(), int time_us);
void rk628_enable_INT_interrupt(void (*pin_cb)(), uint8_t type);
void rk628_enable_DET_interrupt(void (*pin_cb)(), uint8_t type);
// rk628结构体指针没有用到
int rk628_i2c_write(struct rk628 *rk628, u32 reg, u32 value);
int rk628_i2c_read(struct rk628 *rk628, u32 reg, u32 *value);
// 这个不用改
int rk628_i2c_update_bits(struct rk628 *rk628, u32 reg, u32 mask, u32 val);
void dbg_print(char *fmt, ...);
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论