您尚未登录。

#1 工业芯 匠芯创 » D211的CAN通讯如何避免死机 » 2024-09-09 17:23:27

tomas
回复: 4

初调D211的CAN通讯,最初是很正常的,可实现不同波特率下的数据正常收发。之后的测试卡的一塌糊涂
1- 发送卡壳;
2- CANH,CANL线缆短路,断路卡壳;
3- 设备波特率与总线波特率不一致时候卡壳。
卡壳有些是不可恢复的只能重新开机,有些是断开总线连接后可以恢复。

优化后的CAN通讯设计要点:
1.一定要把aic_can_hal.c文件中的hal_log_err()语句注释掉。主要是因为can通讯时有些error会被频繁触发,如果不关闭,所有线程都会被憋死,因为这属于中断响应。

2. can初始化时要选择自测模式而不是normal模式
    hal_can_ioctl(&can, CAN_IOCTL_SET_MODE, (void *)CAN_SELFTEST_MODE);
   按官方所说,自测模式属于发送不管,发送是否生效,用户可自己通过别的方式加以判断。
    很多情况下数据本就是发不出去的比如线缆断路,短路,并不需要sdk函数本身来保证发送是否成功,否则CAN也会出现卡壳。

3. 发送安全机制:
    . 设置一tx_done变量,在收发中断函数中tx_done=1。
    . 发送每一帧报文前先判断tx_done是否为1.如果=1直接发送,如果=0说明之前的报文未发送完毕。等待10ms且每隔1ms判断一次,等待过程注意让出线程。
    . 如果累计10ms后tx_done依然为0,说明总线异常,可能是D211设备异常,也可能是线缆异常。软件重启CAN外设来保证D211设备是正常的。
    . 重启CAN外设后,即直接发送不再判断,如果tx_done=1属于正常发送;否则属于重启后发送。发送后tx_done=0.

这样的话,对于每次发送任务,不管总线有无异常,总会执行所需要的发送任务。如果属于CAN外设驱动问题,在软件重启CAN外设后自然会恢复。如果属于线缆问题,线缆正常后也会第一时间恢复发送。

经过这样一番倒腾后,D211的can运行还是挺稳的。完美。。

#2 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-08-09 09:35:45

小结一下d211在rtt下的几个外设特点,用的是rtt的IO设备驱动。匠心创这点做的很好,bsp驱动很完善
1-uart:好用,支持中断和dma。
2-i2c:就用了一路驱动ctp,挺正常。
3-can:好用,也很简单。
4-pwm:简单好用,但花活估计玩不出来,只是点屏背光和驱动蜂鸣器。
5-timer:占用的是cap外设,rtt下不是很精准,ms级的定时器还能接受吧,us级的误差比较大。
6-ad采样:不大好,只支持中断方式,不支持dma方式,造成cpu占用率偏高,会影响到lvgl帧率。实测最高20kHz采样率,再高回调函数响应不过来。
总的来说,就是在luban-lite环境下,很多外设不能像普通mcu那么玩了。尤其是像pwm,adc这些。花式玩法还得是标准mcu。而对于标准性更好的外设,像uart,can这些,luban-lite的解决方案让人很满意。

#4 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-08-04 12:58:15

整体来讲, d211驱屏还可以. 比mcu强, 比主流的全志方案弱. 优点在于sdk很完整, 厂家技术支持力度强.
缺点是功耗比较大.电源品种太多.普通的cortex-M7,功耗一般在50 -70mA/3.3V. 即230mW. D211至少得500mW.
下一步测试要点:
1 - CAN通讯;
2 - AD采样;
3 - 脉冲输出, 输入捕获;
4 - NOR FLASH下的littleFs测试.
5 - 加密
6 - 二级boot,固件升级

#6 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-08-04 12:40:05

跑分例程:34帧。这是旋转90度的。如果不旋转,可再加4,5帧。
该核心板用的是d211,叠封ddr2,如果是ddr3,可再加4,5帧。
77d217ccf2123c7f6d660c207a0eeb5.jpg

#8 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-08-04 12:26:02

因为忙于其它项目,mipi核心板迟迟未放图。好事多磨,耽搁了一个多月,样机总算焊好了。
7%E5%AF%B8%E6%A0%B8%E5%BF%83%E6%9D%BF.jpg

#10 Re: 工业芯 匠芯创 » 插上SD卡启动变慢 » 2024-07-21 08:53:49

看看rtt有没有开启ramdisk插件。上电后会复制文件到ram区,这个很花时间。

#11 Re: 工业芯 匠芯创 » 基于D211BBX的第一张工程板 » 2024-07-17 14:13:13

小项目做完了,跑来小结一下:
1-关于工程备份:
    用户工程项目文件的备份主要包括硬件(目标板文件)和软件(工程APP)的备份。都很小。其它还包括自用的IC外设备的驱动文件以及对原始SDK的自行调整文件,也要留意备份。其它公共文件不需要备份,只跟官方SDK版本有关,坏了就重装一下。
2-关于调试仿真:
    VSCODE环境下开发很方便。新建文件后,文件夹内加个SConscript文件就可以。编译速度还行因为挂lvgl的工程本身就会比较大。镜像烧录也很方便,如果用的flash是NAND,烧录速度飞快。调试略显不足。printf代来替。
3-关于加密:
    待解决...
4-关于在线升级:
    待解决...
工程目前只是用到了uart,pwm,lvgl。官方SDK跟RTT兼容的很好。现在唯一不满意的就是调试操作显得有点烦。单次烧录过程一般是这样的:
    (1) m编译工程;
    (2) ISP脚接地,之后断电重启;
    (3) 开始烧录镜像文件
    调试过程中这个流程重复次数会非常频繁,如果能支持一键编译,烧录,那就很理想了。

#12 Re: 工业芯 匠芯创 » 关于MIPI与MCU 接口LCD屏寻求帮忙(SOC M4,你们定制的SOC) » 2024-07-10 09:24:15

官方文档有比较详细的mipi屏移植步骤。
mipi屏配置文件得管屏厂家要。依葫芦画瓢编写luban-lite下的驱动代码就可以了。

#13 Re: 工业芯 匠芯创 » 基于D211BBX的第一张工程板 » 2024-07-07 09:35:02

ADBD代替串口调试:实测在sdk v1.0.5是支持的。
这样的话,就完全不需要调试串口了。ISP(PA0)引脚还是需要引出来,以备系统崩溃时的烧录。
现场固件升级,一般情况留好USB接口就可以了。

#14 Re: 工业芯 匠芯创 » 基于D211BBX的第一张工程板 » 2024-07-04 10:58:29

借助官方的SDK,现在版本是V1.0.5,硬件没啥问题情况下,点屏速度很快。实测了一下,640*480的RGB屏,24位满色,跑分能到60帧(含旋转),做滑屏应该是比较轻松的一件事了。
因为是128MB的QSPI NAND,系统自动也具有了用户数据文件系统。
确实很方便。不足的地方也有:
1-跟一般MCU比,功耗有点偏大。有一部分功耗是给内置的ddr吃了。
2-调试串口,因为点屏固件一般比较大,用USB烧固件会很快捷方便。但出于调试需要,还要把串口留出一路,这样的话,服务于调试的引脚有点多了。如果串口是TTL电平,大估计还得把板载3.3V也拉出来。
最好是单一USB口能调试,能烧录。之前试过ADBD,这个插件好像只支持命令行启动,如果能开机默认自动启动就好了。这样除了usb烧录,再加ISP引脚(uart0的tx脚)就可以方便调试了。

#16 Re: 工业芯 匠芯创 » 基于D211BBX的第一张工程板 » 2024-07-02 09:55:02

pcb焊好了。目视检查后通电,测试各组电源。
1 - 一级DCDC输出5。0V:实测:5.00V
2 - 二级DCDC输出3.3V:实测:3.291V
3 - 二级DCDC输出1.8V:实测:1.793V
4 - 二级DCDC输出1.2V:实测:1.195V
5 - 二级LDO输出3.06V: 实测:3.046V

d211输出:
1 - 2.5V引脚:实测2.546V
2 - 3.0V引脚:实测3.009V(AD采样基准源)
3 - 1.8V引脚:实测为浮动电压,估计是需要CPU软件配置。

下一步测试镜像烧录,如果能正常烧录,基本就可以进入软件调试环节了

#18 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-06-30 15:32:52

基于d211核心板的底板,作UI工程太方便了。但前提是D211可不能拉跨。
左上角为模拟量输入,期望能借助LVGL,实现波形实时显示。
左下角为一路CAN+一路RS22.
右上角为电池充放电管理和开关机按键。
中间为并联的两节18650电池,6000mAh。
右下为蓝牙模块。因为是金属壳,天线需要外置。
简单方便!

#20 Re: 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-06-20 14:05:42

图片上传还是有问题。贴图不行,上传文件也不行。

----------------------------------------------------
如何在本站发图片, 顺便吐槽功能弱智的phpbb半自动步木仑
https://whycan.com/t_588.html

#21 工业芯 匠芯创 » 匠芯创 D211,7寸mipi屏核心板 » 2024-06-20 14:03:50

tomas
回复: 27

主控:D211
输入电源:5V
板载资源:
7寸mipi屏:1280*800分辨率,应该是D211的极限了。触摸接口:gt911。
输出:3路UART,2路CAN,2路ADC,2路PWM,2路CAP,若干GPIO。

应用:可直接粘贴在显示屏背面,作为模组使用,输出接口为24PIN,0.5mm间距的FPC排线。

这样的话,只要是7寸屏,就不需要再做4层板了。即是点屏模组,又是主控模组。

先贴一张效果图,打好PCB再补充调试过程。

32.jpg

.png

#22 Re: 工业芯 匠芯创 » 开始进入平头哥的双千兆网时代 » 2024-06-15 12:31:03

电源稍显麻烦,进线端保护也做得不好。PPTC感觉选小了,还要再加个功率大点的TVS管。
一级DCDC可以考虑24V转5V,二级电源都从5V转。3V电源搞一路感觉就可以,供地做好点就是了。并且24V转5V最好用耐压53V以上的DCDC芯片。
CAN接口保护反倒是有点过于强化了把。

#23 工业芯 匠芯创 » 基于D211BBX的第一张工程板 » 2024-06-15 09:15:01

tomas
回复: 14

主控:D211BBX。
LCD:分辨率480*640,必须24位。
电源:宽电压输入,二级电源,DCDC+PMIC
外设:5路UART+GPS+BLE

#24 Re: 工业芯 匠芯创 » RISC-V工业级高性能通用计算MCU G73x系列Datasheet,内置大容量1MB SRAM和2MB FLASH » 2024-05-25 07:45:53

可以出个d21x的升级版,把主频提高一下或是做个双核的。通用mcu同行卷的太厉害。

#25 Re: 工业芯 匠芯创 » d133如何通过usb读写nor flash里的文件系统的数据? » 2024-05-25 07:43:41

烧录镜像选择分区就可以了,rodata属于只读分区,如果是需要读写的文件,放在data分区就可以了

#27 Re: 工业芯 匠芯创 » d211适配LVGL9 » 2024-05-25 07:39:49

有啥用啥,LVGL8.3应该属于稳定版。用着就是了。据说V9比较慢

#29 Re: 工业芯 匠芯创 » d133接rgb屏幕,如何让屏幕旋转? » 2024-05-17 07:08:29

/* when define USE_DRAW_BUF, disp_drv.rotated can be
      LV_DISP_ROT_90/LV_DISP_ROT_180/LV_DISP_ROT_270
    */
    // disp_drv.rotated = LV_DISP_ROT_90;
留意注释,USE_DRAW_BUF也要使能

#30 Re: 工业芯 匠芯创 » d122bbv LVGL demo测试 » 2024-05-10 07:05:04

只能说还可以吧。
D1x没测过。测试过D213开发板,32位色,1024*600跑widget例程,全屏刷新,动态帧率最低25帧。
更高分辨率就需要产品设计时予以合理规避了。
理想情况下是希望1920*1024(1K)情况下能保证30帧。目前看还有点差距。

#31 Re: 工业芯 匠芯创 » 有没有好用迷你的程序和gui工具推荐? » 2024-04-24 07:51:30

看平台,如果是早先,默认windows,能用的就是vc,vb,delphi这些,其实现在也还在用,
如果是安卓,linux这些另当别论。
如果是mcu,lvgl比较合适,

#32 工业芯 匠芯创 » D213的点屏能力有多强(实测) » 2024-04-19 07:22:13

tomas
回复: 0

硬件:D213官方评估板,7寸lvgs屏,分辨率1024*600,像素格式ARGB8888.
软件;LVGL官方例程,主要跑了benchmark,widget,music等三个例程。

分析:lvgl例程里面的图片均为数组格式,所以不需要修改文件系统镜像,考核指标主要包括
1-d213的cpu计算能力;
2-gpu的在线渲染能力;
3-ddr的带宽吞吐能力。

例程1:benchmark
整体得分在49帧左右,涉及shadow的几个分项得分很低,只有5-10帧。

例程2:widget
静态刷屏,或者局部静态刷屏帧率很高,基本能做到50-100帧。滑屏过程中瞬间会跌到肉眼可见的15帧。但不影响丝滑性。

例程3:music
最低瞬间帧率20帧,也是滑屏过程中的瞬间。

例程4:旋转90度
帧率无变化,硬件旋转能力得到释放。

小结:
1-优点:整体表现比较优秀,跟同级别MCU方案比(包括M4,M7,ARM9),属于集成度最高,解决方案最完整的。内置128MB
的DDR,外置128MB的SPI-NAND。跟MCU常用的支持XIP的NOR方案比,文件空间更大,下载速度很快,开发过程中的频繁下载
烧录不会成为痛点。下载速度基本保证在1.5MB以上,以1MB的CODE镜像为例,做到了秒下载。

2-缺点:跑上述几个例程并没用到文件系统,所有图片资源都是c文件数组跟代码绑定在一块的,所以不会涉及文件访问片外NAND
存储器拖慢速度问题,但滑屏过程中还是会瞬间掉帧,不知道是因为什么引起的。主频不够快?GPU拉跨?DDR不给力?

3-关于旋转:通过官方所说的menuconfig使能旋转方法,旋转后图像显示不正常。最后还是改disp初始化代码实现了旋转。旋转后
的帧率没变化,说明硬件旋转起作用了,这点给个大赞。

4-关于SPI-NAND速度,新版SDK限制在91MB左右,而这种NAND的经典速度是133MB。如果采用了通过文件系统读NAND素材文件
做开发的话,大估计NAND带宽会成为限制帧率的一个主要瓶颈。官方要把NAND时钟频率提上去才好。再或者也可考虑上电时把一部分
文件提前拷贝到DDR,但怎么建立DDR文件系统,怎么拷贝,怎么选定需要拷贝的具体文件,还需要官方授道解惑,讲解的更为详细些。

5-关于AWTK例程,能显示(局部不正常),但帧率就跌的很厉害了。不知道怎么回事。官方最好能优化一下。AWTK有更好的
studio设计器支持。

附:测试宏定义开关
几个需要开启的字库是music例程需要的,开启后OS镜像文件体积也会变大一些,但对于这种nand型存储器,下载烧录速度不受影响。
/*Music player demo*/
#define LV_FONT_MONTSERRAT_8  0
#define LV_FONT_MONTSERRAT_10 0
#define LV_FONT_MONTSERRAT_12 1
#define LV_FONT_MONTSERRAT_14 1
#define LV_FONT_MONTSERRAT_16 1
#define LV_FONT_MONTSERRAT_18 0
#define LV_FONT_MONTSERRAT_20 0
#define LV_FONT_MONTSERRAT_22 0
#define LV_FONT_MONTSERRAT_24 0
#define LV_FONT_MONTSERRAT_26 0
#define LV_FONT_MONTSERRAT_28 0
#define LV_FONT_MONTSERRAT_30 0
#define LV_FONT_MONTSERRAT_32 0
#define LV_FONT_MONTSERRAT_34 0
#define LV_FONT_MONTSERRAT_36 0
#define LV_FONT_MONTSERRAT_38 0
#define LV_FONT_MONTSERRAT_40 0
#define LV_FONT_MONTSERRAT_42 0
#define LV_FONT_MONTSERRAT_44 0
#define LV_FONT_MONTSERRAT_46 0
#define LV_FONT_MONTSERRAT_48 0


#define LV_USE_DEMO_MUSIC 1
#if LV_USE_DEMO_MUSIC
    #define LV_DEMO_MUSIC_SQUARE    0
    #define LV_DEMO_MUSIC_LANDSCAPE 0
    #define LV_DEMO_MUSIC_ROUND     0
    #define LV_DEMO_MUSIC_LARGE     0
    #define LV_DEMO_MUSIC_AUTO_PLAY 0
#endif

#33 工业芯 匠芯创 » luban-lite新发布的# V1.0.4 #变慢了 » 2024-04-17 08:29:02

tomas
回复: 3

测试平台:官方D213开发板。

1-新发布的V1.0.4开机时间至少需要2s。V1.0.3开机时间大概不到1s。
2-提示sd卡挂载失败。其实是有sd卡,开机后ls sdcard也能正常查看sd卡文件。
3-spi nand时钟变慢了,v1.0.3是100MHZ,与配置一致
   qspi0 freq (input): 91636363Hz
   qspi0 freq ( bus ): 91636363Hz

可否给个解释,作为RTOS系统,2s开机时间有点长了。

Welcome to ArtInChip Luban-Lite 1.0 [Built on Apr 17 2024 08:05:07]
01-01 10:31:37 I/touch: rt_touch init success
01-01 10:31:38 I/gt911: touch device gt911 init success
[w] aic_find_panel()62 find panel driver : panel-lvds
[w] aicfb_probe()950 fb0 allocated at 0x46000040
[w] hal_ge_init()1620 dither line phys: 0x464B0100
[w] aic_sdmc_clk_init()547 SDMC1 sclk: 50400 KHz, parent clk 1008000 KHz
01-01 10:31:38 I/SDMC: SDMC1 BW 1, sclk 50400 KHz, clk 400 KHz(406 KHz), div 2-62

[w] aic_sdmc_probe()664 SDMC1 driver loaded
qspi0 freq (input): 91636363Hz
qspi0 freq ( bus ): 91636363Hz
[w] spinand_info_read()472 find raw ID efaa2100
[w] spinand_flash_init()523 Enabled BUF, HWECC. Unprotected.
nftl vol: data, size 0
01-01 10:31:38 I/sensor: rt_sensor[temp_aic] init success
01-01 10:31:38 I/WDT: ArtInChip WDT loaded
01-01 10:31:39 E/DFS: mount fs[elm] on /sdcard failed.

Reboot action: Watchdog-Reset, reason: Command-Reboot

Startup time: 2.004 sec
[ND]nftl start:400,51
[ND]nftl ok!
id = GT911
range_x = 1024
range_y = 600
point_num = 5

#34 Re: 工业芯 匠芯创 » f1c200s 和 D213 图形性能对比 » 2024-04-16 11:32:54

可以跑跑lvgl官方的lv_demo_widgets例程,D13X和D21X都跑一下,看看滑屏过程中的刷新率。
D213跑过还可以,最慢也有15帧以上,支持有硬件旋转。D13X不确定咋样

#35 Re: 工业芯 匠芯创 » 可否在vscode环境下只打开构建后的project目录 » 2024-04-15 13:48:28

506826164@qq.com 说:

@tomas
如果用过rtthread的scons,就会熟悉scons --target=mdk/mdk4/mdk5/iar/cb 等一键生成各种IDE的工程
比如scons --target=vsc 一键生成vscode工程

试过,生成不了vsc工程。
包括scons --dist打包命令,也是不生效

#36 工业芯 匠芯创 » 可否在vscode环境下只打开构建后的project目录 » 2024-04-11 11:49:24

tomas
回复: 5

官方是要求打开luban-lite的根目录。但根目录下的文件属于开发时的模板文件,应该是不需要做修改的。
用户二次开发的app应该是放在application目录下,并需要编写脚本文件。

对于习惯IDE模式的工程师来讲,甚是不方便,也不直观。

很明显,eclipse没办法支撑开发工作,卡慢死。仿真调试也可以不考虑,还好烧录很快。加上printf,也算行。

其实唯一选择也就是vscode+m命令行编译了。可否像eclipse一样,在project建构好后,也把需要的文件抽取出来到单独文件夹。
之后vscode只打开构建后的project根目录,而不是luban-lite根目录

#38 Re: 工业芯 匠芯创 » 官网下的D12x规格书,连个功耗\工作电流说明都没 » 2024-04-08 07:59:58

马力全开的话,大概要150mA/3.3V。
因为内置ddr,功耗小不了。

#39 工业芯 匠芯创 » D2X怎么构建自己的工程? » 2024-04-01 14:35:35

tomas
回复: 7

通过scons --add-board可以从接近的模板中构建自己的模板工程。但下一步要怎么做,毕竟模板工程只是第一步。
1-从menuconfig中开通,关闭本地组件,在线组件,这个很方便。

2-如果需要加入用户自己的app或文件,应该是也要通过menuconfig而不会是在IDE里面强加,不然构建刷新的话,自己的app文件和设置也就没有了。是不是
需要自行编写相应的构建脚本文件?

3-关于GPIO,通过menuconfig,可以配置I2C,CAN这些外设的IO口,并在pinmux.c文件中有体现。但如果是通用IO口,比如就是个LED灯,同时也想在pinmux文件中做统一配置,这时候咋办?

还有个问题是关于eclipse开发的。
通过:scons --target=eclipse_sdk,可以生成完整的eclipse工程,在ide环境下,实测发现:
如果是导入工程并拷贝到本地workspace,这时候eclipse编译速度尚可。但如果是仅是导入而不拷贝,eclipse很容易假死。
另外,如果所构建的工程通过scons --target=eclipse_sdk重新构建后,已有的eclipse工程不会同步更新,因为老工程已经拷贝到本地workspace了。这时候咋办。
后来通过eclipse open projects from file system方式直接使用output文件夹下的eclipse工程,工程重构后,ide里面刷新后确实能自动更新,但还是存在编译速度非常慢的问题。
这一问题小结一下就是:ide只有把构建的工程导入且拷贝到其自己的workspace,编译速度会好一些,但工程重构后,老工程会得不到同步更新。

#40 工业芯 匠芯创 » 请教:D13*做hmi的话效果咋样 » 2024-03-26 16:02:30

tomas
回复: 2

就是跟主流的mcu比比(mpu没法比),一般的mcu,比如M7这些,主频基本也够,但16位外置sdram时钟也就166M.
D13*的内置psram是16位还是8位的,读/写周期能到多少, 跟常规的16位sdram比的话,是快点还是慢点.

还有就是开发问题, 官方这个luban-lite-master系统好像也没听说过. 容易上手么?

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn