全志的资料太少,研究太累不想玩了。这个芯片资料比较全,入坑玩玩。
做了个D133板子88P的,支持多种LCD接口,可以当点屏神器了。 支持RGB/LVDS/MIPI/8080/SPI/QSPI
目前裸机代码调通320*480 8080-16bit。其他继续调。
后面改版,大家有什么想法可以参考。
离线
欢迎欢迎,我们目前技术支持还需要大牛帮我们分担,以后个人开发者会越来越多。
离线
@ArtInChip 就是样品价格有点贵……
离线
@ArtInChip 就是样品价格有点贵……
样品价格不便宜,特别是现在这种MCU价格都在下调的阶段,然后这个还不包邮,甚至邮费比东西还贵
离线
欢迎欢迎,我们目前技术支持还需要大牛帮我们分担,以后个人开发者会越来越多。
d13x有没有原厂设计供参考啊?
离线
ArtInChip 说:欢迎欢迎,我们目前技术支持还需要大牛帮我们分担,以后个人开发者会越来越多。
d13x有没有原厂设计供参考啊?
我也想要
离线
离线
调屏不难,MCU做过很多。使用这个芯片的库和一些驱动,需要看下。主要是手上屏幕没有这么多种。
离线
ArtInChip 说:欢迎欢迎,我们目前技术支持还需要大牛帮我们分担,以后个人开发者会越来越多。
d13x有没有原厂设计供参考啊?
有的,具体请联系淘宝,匠芯创代理店客服。
离线
8080-8bit
4线SPI
离线
RGB接口 480*272
离线
请问支持40PIN的LVDS吗
离线
跟T113区别大不?
离线
移植nes,运行速度飞快
离线
可以驱动MIPI屏幕吗
离线
可以驱动MIPI屏幕吗
看规格是可以的,我手上没有mipi的屏 暂时没试。
离线
我用的7寸800*480的40pin的rgb屏幕,没点亮,能给点指导吗?背光是亮了。
de里,选了rgb,试过rgb888,rgb565,屏幕都没图像。panel那里改成了800*480.
离线
可以驱动MIPI屏幕吗
mipi 完全没有问题, 我们点过了。
离线
我用的7寸800*480的40pin的rgb屏幕,没点亮,能给点指导吗?背光是亮了。
de里,选了rgb,试过rgb888,rgb565,屏幕都没图像。panel那里改成了800*480.
还要配置下其他的时序, 另外你用什么哪一个代码显示屏的? 我是裸机直接刷FB
离线
@sjshe3326
我用的nor-flash-rtt那个,在win下是lunch 6。
找到了t113的tina sdk里的uboot和内核的设备树,看了下800*480屏幕的配置参数。因为t113-s3能点亮这个7寸屏,就参照这个了。
&lcd0 {
lcd_used = <1>;
lcd_driver_name = "default_lcd";
lcd_if = <0>;
lcd_x = <800>;
lcd_y = <480>;
lcd_width = <150>;
lcd_height = <94>;
lcd_dclk_freq = <48>;
lcd_pwm_used = <1>;
lcd_pwm_ch = <7>;
lcd_pwm_freq = <10000>;
lcd_pwm_pol = <1>;
lcd_hbp = <55>;
lcd_ht = <1240>;
lcd_hspw = <20>;
lcd_vbp = <35>;
lcd_vt = <650>;
lcd_vspw = <10>;
lcd_lvds_if = <0>;
lcd_lvds_colordepth = <1>;
lcd_lvds_mode = <0>;
lcd_frm = <0>;
lcd_io_phase = <0x0000>;
lcd_gamma_en = <0>;
lcd_bright_curve_en = <0>;
lcd_cmap_en = <0>;
屏幕配置这里,估计裸机和os没区别吧,目前menuconfig里这么配置:
┌──────────────────────────────────────── display timing of simple panel ─────────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters │
│ are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> │
│ for Help, </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ (48) pixelclock in MHZ │ │
│ │ (800) hactive │ │
│ │ (480) vactive │ │
│ │ (55) hback-porch │ │
│ │ (1240) hfront-porch │ │
│ │ (20) hsync-len │ │
│ │ (35) vback-porch │ │
│ │ (650) vfront-porch │ │
│ │ (10) vsync-len │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load > │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────── RGB interface options ─────────────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters │
│ are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> │
│ for Help, </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ rgb mode (PRGB) ---> │ │
│ │ interface format (PRGB 24 BIT) ---> │ │
│ │ data order (RGB) ---> │ │
│ │ clock phase select (0 degree) ---> │ │
│ │ [*] data mirror │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load > │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────── Display Parameter ───────────────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters │
│ are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> │
│ for Help, </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ [*] Display Support │ │
│ │ select Display interface (Display RGB interface) ---> │ │
│ │ RGB interface options ---> │ │
│ │ select framebuffer format (rgb888) ---> │ │
│ │ [*] Support double framebuffer │ │
│ │ [*] Display color block │ │
│ │ framebuffer rotation degree (0) ---> │ │
│ │ Display Panels ---> │ │
│ │ panel backlight control (gpio) ---> │ │
│ │ (PE.13) panel backlight enable pin │ │
│ │ [ ] panel backlight enable pin low active │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load > │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
通过示波器,测量lcd屏幕的40pin接口,各引脚均无发现变化的波形。据说clk应该有波形才对。
另,我目前更换spi flash的那块板,又出现了2秒烧录的问题了。更换回之前换下的那个spi flash,问题依旧。总不能出现了,就换个新的spi flash。
能否通过QQ请教下?我在群主的别墅群里,也在芒果的群里。
最近编辑记录 Gentlepig (2024-01-26 14:05:14)
离线
发现昆仑派这个板子用的是rgb接口,就编译了这个配置,下载倒板子上,屏幕有图像,就是乱的。找商家要了屏幕的资料,确定了front-porch, back-porch, sync_len这些参数,修改menuconfig里de选项的分辨率以及这些参数。屏幕显示正常了。
这里好奇,为什么之前用tina linux,uboot及内核设备树里的这些参数,和我从厂家要的都不一样,但是却能正常驱动这个屏幕?
我又按这些参数,修改nor-rtt这个配置,结果编译后,屏幕还是没有输出,rgb的clk也没信号。
我试过将昆仑派的配置参数,复制到nor-rtt这个配置里,结果问题依旧。
-------------------------------------------------
对比了下target目录下的两个配置目录下的pinmux.c文件。发现nor-rtt这边没有AIC_PRGB_16BIT_LD这个宏定义,另一边多出来些引脚配置。这些,看样子是需要自己添加了。
target目录下,分几个子目录,其实是两种,一种是官方299的那个开发板,另一个就是139的昆仑派。
299板子有lvds接口,没rgb接口,故除了target/kunlun88-nor这个目录下的pinmux.c里有rgb引脚配置,其他几个目录下的pinmux.c没有rgb引脚配置。即使在menuconfie里配置了rgb功能,而因为实际上没有初始化rgb引脚,故屏幕始终点不亮。
另今天lubanlite更新了,有了68脚的配置了,还有d12x的配置。
看了target目录下68脚的pinmux.c,里边还是比较全的,rgb24bit,rgb16bit都有。而d13x的还是之前那样...
最近编辑记录 Gentlepig (2024-01-27 17:36:58)
离线
sdk怎么获取?
离线
@Gentlepig
感觉是1240 和 650两个参数有问题 因该没有这么大
离线
@Gentlepig
另外要看下 好像官方SDK默认是LVDS还是mipi 没有把RGB管脚全部配成RGB模式功能 需要自己加一下
离线
@Gentlepig
另外要看下 好像官方SDK默认是LVDS还是mipi 没有把RGB管脚全部配成RGB模式功能 需要自己加一下
屏幕点亮了。
spi flash的问题,通过将spi flash的状态寄存器清零也解决了。
rtp触摸屏没搞定,同事运行test_rtp_draw和lvgl程序,界面会闪。
然后关掉lvgl,调用test_rtp_draw -c,出现类似ts_calibrate的界面,有个小光标,但是点击没反应,调试口貌似也卡住了。
aic /> test_rtp_draw
Usage: test_rtp_draw [options]
-c, --calibrate Platform the screen calibration
-p, --points Set the points for drawing, defalut is 1000
-d, --draw Draw the shape
-h, --help
Example: test_rtp_draw -c
aic /> test_rtp_draw -h
[I] rtp_get_fb_info()98 Screen width: 800, height: 480
运行rtp_status应该是正常:
aic /> rtp_status
In RTP controller V1.00:
Mode hw 2/ sw 2, RTP enale 1, Press detect enable 1
Pressure enable 1, max 800, x-plate 235, y-plate 902
Sample period: 15 ms, Fuzz: 0
aic />
-----------------------------------------
应该是rtp设备打开这里出了问题,一直卡在这里。
if (!g_opened) {
ret = rt_device_open(g_rtp_dev, RT_DEVICE_FLAG_INT_RX);
if (ret != RT_EOK) {
rt_kprintf("Failed to open %s device\n", AIC_RTP_NAME);
return;
}
g_opened = 1;
rt_kprintf("g_opened %s device\n", AIC_RTP_NAME);
}
用list_devices命令,可以看到有aic_rtp设备的,不知道为什么会卡在rt_device_open(aic_rtp, xxx)这里。
而且,虽然卡在这里了,我在后面添加的rt_kprint语句,都不能打印出来,但是屏幕绘制还是能执行的,挺奇怪的,屏幕绘制十字光标或栅格,都是在这个rt_device_open()语句后边才开始调用的。
最近编辑记录 Gentlepig (2024-01-29 16:01:43)
离线
test_rtp.c里,打开rtp这里,从中断方式改成轮询方式,就可以正常运行校准程序了。
// ret = rt_device_open(g_rtp_dev, RT_DEVICE_FLAG_INT_RX);
ret = rt_device_open(g_rtp_dev, RT_DEVICE_FLAG_RDONLY);
但是还有问题,较准时,会有这么个提示:
The RTP parameter (press detect enable debounce) is inaccurate
我将滤波时间改小了,可以完成校准设置,但是执行test_rtp_draw -d,画线时,屏幕上只在一条斜线上描点。
设置还是有问题。
-----------------------------------------
看test_rtp.c程序,应该是按中断方式设计的,设置中断回调函数。就是不知道为什么我这里设置为中断方式,总是卡死。
没看到要开adc中断啥的...
-----------------------------------------
rt-thread设置里,device driver里,使能touce device driver,并且,不要使能touch irq use pin irq。这样,编译后,test_rtp.c的device_open就正常了。
但是校准完,有个文件打不开的提示,而且,校准完画线,还是只在一条斜线上显示。
aic /> test_rtp_draw -c
[I] rtp_get_fb_info()98 Screen width: 800, height: 480
g_opened aic-rtp device
rtp calibrate start.
Top left : X = 50 Y = 50
01-01 08:00:56 I/RTP: PDEB should be configured as 0xff57ff57
Calibration: X = 463, Y = 320
Top right : X = 750 Y = 50
01-01 08:00:58 I/RTP: PDEB should be configured as 0xff57ff57
Calibration: X = 446, Y = 91
Bot right : X = 750 Y = 430
01-01 08:00:59 I/RTP: PDEB should be configured as 0xff57ff57
Calibration: X = 92, Y = 26
Bot left : X = 50 Y = 430
01-01 08:01:00 I/RTP: PDEB should be configured as 0xff57ff57
Calibration: X = 47, Y = 226
Center : X = 400 Y = 240
01-01 08:01:01 I/RTP: PDEB should be configured as 0xff57ff57
Calibration: X = 259, Y = 196
open file failed!
aic /> Try to read 1000 points from RTP ...
01-01 08:01:02 I/RTP: PDEB should be configured as 0xff57ff57
最近编辑记录 Gentlepig (2024-01-30 14:48:59)
离线
又遇到了两个问题。
连接网络后,ping局域网地址成功,ping域名失败,打开了dns功能,同样失败。这是为什么呢?
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ --- LwIP: light weight TCP/IP stack │ │
│ │ lwIP version (lwIP v2.1.3) ---> │ │
│ │ [ ] IPV6 protocol │ │
│ │ [*] LwIP Examples │ │
│ │ [ ] IGMP protocol │ │
│ │ -*- ICMP protocol │ │
│ │ [ ] SNMP protocol │ │
│ │ [*] Enble DNS for name resolution │ │
│ │ [*] Enable alloc ip address through DHCP │ │
│ │ (1) SOF broadcast │ │
│ │ (1) SOF broadcast recv │ │
│ │ -*- UDP protocol │ │
│ │ [*] TCP protocol │ │
│ └───────────────────↓(+)──────────────────────────────────────────────────────────────────────────────────────┘ │
aic /> ping www.baidu.com
Ping request could not find host www.baidu.com. Please check the name and try again
aic />
luban-lite sdk, 在ubuntu下,执行了tools/onestep.sh命令,有个ab的命令,可以直接增加个自定义的配置。
在win下,用了win_env.bat,无法执行tools/onestep.sh命令,也没有ab这个命令了,如何新增自定义配置呢?
---------------------------------
win下试了git bash,可以运行onestep.sh然后ab新增个配置。
----------------------------------
win_env.bat环境里,用scons -h可以查看更多命令,里面又--addboard命令。
-----------------------------------
用scons --add-board命令遇到了个坑,之前sdk有个这样的目录:
luban-lite\application\os\helloworld
更新又,这里变成了:
luban-lite\application\rt-thread\helloworld
luban-lite\application\freertos\helloworld
tools/scripts/aic_build.py里有个命令复制应用文件目录,就报错找不到之前的os目录。修改该.py文件,将app_os由'os'改为'rt-thread',就能正常添加自定义配置了。
----------------------------------
新增了个自定义配置后,同时打开lvgl例程和lwip例程,结果下载到板子上跳不到app。
Pre-Boot Program ... (24-01-26 17:26 a87e5e1 dirty)
SPINOR
cs=0, phase=2
cs=1, phase=1
Psram_init done.
goto run SPL
tinySPL [Built on Feb 1 2024 07:52:04]
[W] usbh_get_connect_id()107 usb 0 port change wait failed.
[E] main()133 Not find udisk.
qspi0 freq (input): 100000000Hz
qspi0 freq ( bus ): 50000000Hz
qspi0 freq ( bus ): 100000000Hz
Selecting default config 'Luban-lite firmware'
spl read: 750332 byte, 15396 us -> 47592 KB/s
151172 : Run APP
关掉lvgl例程后,lwip例程才正常。
这是ram不够?或flash不够?编译时,没注意到有什么 提示。
最近编辑记录 Gentlepig (2024-02-01 16:06:16)
离线
@Gentlepig
一条斜线问题 我开始也遇到了,是x y 坐标反了造成的。我在rtp里面把 xy交换就可以了
离线
@Gentlepig
一条斜线问题 我开始也遇到了,是x y 坐标反了造成的。我在rtp里面把 xy交换就可以了
是指x-plate值吗?我搜了下,说是电阻屏x方向上的电阻值。文档里给了个800*480电阻屏的这两个值,235、902,我试过并对换过这两个值,都没成功。
好一点的时候,是在屏幕上画个大圆,屏幕上隐约能显示出个极小的类似圆的轨迹点。
┌──────────────────────────────────────────── RTP touch panel options ────────────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters │
│ are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> │
│ for Help, </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ [*] Using touch panel RTP │ │
│ │ (15) The sample period of RTP(in cycle mode) │ │
│ │ (800) The pressure threshold of RTP │ │
│ │ (235) The x-plate value of RTP touchscreen │ │
│ │ (0) The Y-plate value of RTP touchscreen │ │
│ │ (0xffffffff) The press detect enable debounce │ │
│ │ (0x4f00004f) The precharge delay of RTP │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load > │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
离线
@Gentlepig
我改动是下面代码里面panel_x panel_y哪里xy交换,这个是和硬件相关的
static void test_draw_a_point(u32 cnt, struct aic_rtp_event *e,
calibration *cal)
{
u32 pos = 0;
u8 *buf = NULL;
int panel_x = 0;
int panel_y = 0;
int a[7] = {0};
u8 rate = g_fb_info.bits_per_pixel / AIC_BITS_TO_BYTE_RATE;
panel_x = AIC_RTP_MAX_VAL - e->y; // ls x<->y //
panel_y = AIC_RTP_MAX_VAL - e->x; // ls x<->y //
panel_x = (panel_x * g_fb_info.width) / AIC_RTP_MAX_VAL;
panel_y = (panel_y * g_fb_info.height) / AIC_RTP_MAX_VAL;
离线
@sjshe3326
楼主,这个工程能分享下吗? 比如原理图和代码, 我自己手头上有一块正点原子7寸1024*600的屏幕,正在找方案把它点亮呢
离线
@sjshe3326
楼主,这个工程能分享下吗? 比如原理图和代码, 我自己手头上有一块正点原子7寸1024*600的屏幕,正在找方案把它点亮呢
可以 我整理下发出来,本来这个第一版就是把屏调一调。
本来想再改一下,把屏的接口都兼容上去。手上没有其他屏幕 就还没有改第二版。
离线
请问支持40PIN的LVDS吗
LVDS要使用RGB的座子转一下了。
离线
@sjshe3326
先谢谢你哈!我目前在看这个芯片相关手册和SDK,我觉得这个芯片点屏真是太好了!
离线
有幸了解到这颗点屏强芯,想了解SDK如何获取,淘宝客服回复该芯片的SDK是开放的,去官网也没看到开放的资源,有了解的兄弟么?
离线
WhyCan_dev_pp 说:有幸了解到这颗点屏强芯,想了解SDK如何获取,淘宝客服回复该芯片的SDK是开放的,去官网也没看到开放的资源,有了解的兄弟么?
太粗心了吧,官网的文档中心里有讲SDK的获取方式。
嗯,感谢大佬指正,已找到相关资源
离线
Rafx 说:请问支持40PIN的LVDS吗
LVDS要使用RGB的座子转一下了。
可以不转接直驱吗,D133貌似原生支持LVDS?
离线
sjshe3326 说:Rafx 说:请问支持40PIN的LVDS吗
LVDS要使用RGB的座子转一下了。
可以不转接直驱吗,D133貌似原生支持LVDS?
原生直接支持单link-LVDS
离线