全志的资料太少,研究太累不想玩了。这个芯片资料比较全,入坑玩玩。
做了个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
离线