迪文科技论坛

 找回密码
 立即注册
搜索
查看: 31196|回复: 48

【T5L_DGUS II平台】串口更新字库(外部存储器读写操作0xaa

  [复制链接]

11

主题

33

回帖

999

积分

高级会员

Rank: 4

积分
999
发表于 2019-6-19 11:02:07 | 显示全部楼层 |阅读模式
T5LDGUS屏自带的 16Mbytes  SPI Flash,用户可以通过串口更新字库(.BIN/DZK/HZK)、图标(.ICL)、音乐(.WAE)文件,
需要通过变量地址00AAH来访问实现,如下图所示。



以 32Kbyes 块为基准来更新 16Mbytes 外部存储器内容。(16MBflash可以看作是被分割为512个32k大小的存储块,例如32.icl从0x0100地址开始)
D11:0x5A=启动一次外部存储器(16Mbytes)写操作, CPU 操作完清零。
D10:固定为 0x02 。

D9~D8:32Kbytes 存储器块地址,0x0000-0x01FF,对应整个 16Mbytes 存储器。
D7~D6:更新数据保存在数据变量空间的首地址,必须是偶数。
D5~D4:本次操作完成后延时等待下一次写操作的时间,单位为 1mS。
延时等待期间 DGUS 刷新将停止,以防止更新未完成导致错误。
D3~D0:未定义,写 0x00。

例:要更新13触控配置文件则发送指令:5A A5 0F 82 00AA 5A02 0068 3000 0014 0000 0000,
该指令的意义就是将变量地址3000H开始的32Kb数据更新到13号字库(0068h=104,104*32/256=13)的第一个32Kb位置。


如果数据超过32k,需要分多包下载,下载时间间隔推荐可以用20ms:
下面示范:例如32.icl文件(属性大小≤32*3)的过程:这里示例取变量地址8000h开始将数据缓存到变量地址。
16Mbytes 存储器既可以看做是分为了51232Kbytes空间用于写操作数据的更新,另外被定义为64个容量固定为256KB的单个字库ID空间。
如果数据包小于32KB32.icl文件大小为2.63KB),只需要一包数据发送到缓存的变量地址,再对0xAA系统变量接口发送写操作指令即可。
如果数据大小超过32KB,则需要将数据分为多包依次下载.

例如(32.icl图标库文件大小为87.3KB),数据更新流程分为3包数据依次更新:
1、将第1.icl图标库数据1=32k)发送到从8000h~C000h地址 一共有4000h个字=16KW=32KB
   然后发送写操作指令5A A5 0F 82 00 AA 5A 02 01 00 80 00 00 14 00 00 00 00
2、将第2.icl图标库数据2=32k)发送到从8000h~C000h地址 一共有4000h个字=16KW=32KB
   然后发送写操作指令5A A5 0F 82 00 AA 5A 02 01 01 80 00 00 14 00 00 00 00
3、将第3.icl图标库数据3(≤32k)发送到从8000h~C000h地址 一共有4000h个字=16KW=32KB
   然后发送写操作指令5A A5 0F 82 00 AA 5A 02 01 02 80 00 00 14 00 00 00 00

下载完之后,可以等待5秒对屏发一次复位指令,5A A5 07 82 00 04 55 AA 5A A5。

上述各个数据包的数据下载过程可以分解如下:
第一包数据分成若干条用82写指令发送到屏的起始地址8000h,每条指令可以发送240个字节长度数据。
1条:
5A A5 F3 82 80 00 44 47 55 53 5F 33 30 8D 00 01 5D 84 04 00 01 00 00 00 00 14 01 E0 01 10 02 6F 00 01 5A FF FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 60 00 60 00 00 FF DB 00 43 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 FF DB 00 43 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 FF C0 00 11 08 01 10 01 E0 03 01 22 00 02 11 01 03 11 01 FF C4 00 1F 00 00 01 05 01 01 01 01 01 01 00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B
2条:地址按照12078h)字长依次递增,第二个地址选择从
5A A5 F3 82 80 78 FF C4 00 B5 10 00 02 01 03 03 02 04 03 05 05 04 04 00 00 01 7D 01 02 03 00 04 11 05 12 21 31 41 06 13 51 61 07 22 71 14 32 81 91 A1 08 23 42 B1 C1 15 52 D1 F0 24 33 62 72 82 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36 37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7 E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FF C4 00 1F 01 00 03 01 01 01 01 01 01 01 01 01 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B FF C4 00 B5 11 00 02 01 02 04 04 03 04 07 05 04 04 00 01 02 77 00 01 02
。。。依次发送若干包数据。。。
136条(最后一条)剩下128字节数据。
◆5A A5 83 82 BF C0 9F E5 97 23 E7 8F D8 7F F6 5E D3 BF 6A 5F 8B 09 E0 ED 7F C6 96 1E 04 F0 96 87 A3 2E B3 E2 7D 73 50 73 A4 A5 B6 8E B1 EF 5F 0D BB 6B 98 91 50 ED 3B 9A 0C 4A 14 93 0F CE 14 D7 F4 FE 74 4F 0C FC 2C F8 6B A6 7C 1D F8 29 7D A5 8F 0F 5E E9 52 E9 1A CB 68 17 51 D8 6A 9A C5 86 A7 65 69 73 65 FD AB A7 40 4F 88 A6 D0 F3 A6 AD BE 99 A2 5F 62 3D 7E 49 53 57 9F E4 0C 2B F0 7C 5F 5B 7F 77 6F 4E
第一包数据缓存到变量地址之后再发送写操作指令5A A5 0F 82 00 AA 5A 02 01 00 80 00 00 14 00 00 00 00 (第一包大小为32KB
。。。。。。
第二包数据指和第一包数据结构一样:(第二包大小为32KB
第二包数据缓存到变量地址之后再发送写操作指令5A A5 0F 82 00 AA 5A 02 01 01 80 00 00 14 00 00 00 00
。。。。。。
第三包数据指令如下(下面举例为若第三包大小没有达到32KB):
5A A5 F3 82 80 00。。。依次发送若干包数据。。。
。。。。。
5A A5 BF 82 AE 68 83 FE B1 07 42 0F F7 8D 54 7E 25 EB FE 64 CD 3E 57 A3 DB B3 FF 00 22 F4 99 F2 97 92 70 70 32 49 C0 19 C0 19 E8 06 06 00 E0 7A 53 CC 91 C7 19 32 74 20 81 F5 CF F9 EF 54 23 90 EF 1E 64 B1 6D C1 C7 EF 53 AE 3F DE F4 CD 4F 34 91 6E FF 00 5B 17 FD FD 8F D0 7F B5 5D 34 DF EF 23 AF 5E FE 4F CC E2 B4 BB 4B EE 97 F9 12 25 CC 3E 5F EE CF 3B 8E E3 D3 8C 70 3B 67 F4 EB D3 A1 28 F7 5F BB 93 9F F9 67 27 7F F6 1B FD AA AD E6 45 FF 00 3D 62 FF 00 BF B1 FF 00 F1 55 1C B2 44 51 C7 99 11 25 24 C0 FB 5A 43 CE C6 F7 3B BA FE 1F 8D 76 DD 77 5F 7A FF 00 30 B3 EC FE E7 FE 47 FF D9
第三包数据缓存到变量地址之后再发送写操作指令5A A5 0F 82 00 AA 5A 02 01 02 80 00 00 14 00 00 00 00

如果用户只是在实际开发过程中,用于PC上位机软件和屏的调试在线下载,请下载T5L PC软件DGUS Tool V7.57以上版本。



友情链接:
(1)UE数据复制:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=3680
(2)0xAA 32.icl更新(理解0xAA指令、256KB、32KB数据块):http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=7553
(3)0xAA 14.bin更新(理解数据指令划分):http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=7561
(4)0xAA 多个32KB数据包:http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=243


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

12

回帖

116

积分

注册会员

Rank: 2

积分
116
QQ
发表于 2019-7-15 16:05:20 | 显示全部楼层
您好,我先把13文件代码发送了前缀是 5A A5 B4 82 30 00 然后是文件代码,收到指令5A A5 03 82 4F 4B。然后我又发送了5A A5 0F 82 00 AA 5A 02 00 68 30 00 00 14 00 00 00 00,又收到了5A A5 03 82 4F 4B指令,屏幕没有反应,请问哪里出错了?
回复

使用道具 举报

82

主题

150

回帖

2624

积分

超级版主

Rank: 8Rank: 8

积分
2624
发表于 2019-7-15 19:10:55 | 显示全部楼层
本帖最后由 神秘の宅叔 于 2019-7-15 19:17 编辑
NKTYjiao 发表于 2019-7-15 16:05
您好,我先把13文件代码发送了前缀是 5A A5 B4 82 30 00 然后是文件代码,收到指令5A A5 03 82 4F 4B。然后 ...
先检查下内核不是最新的
如果13bin文件比较大,需要分多包数据发送,是在13.bin数据分多条包发送的过程中是一定要加延的,例子里面给的是20ms也就是刷新周期,这个时间是给得比较宽裕的,要验证是否能下载成功,不如只做一个简单的触控,生成一个很小的触控bin文件测试一下呢。
回复

使用道具 举报

1

主题

12

回帖

116

积分

注册会员

Rank: 2

积分
116
QQ
发表于 2019-7-16 09:37:53 | 显示全部楼层
神秘の宅叔 发表于 2019-7-15 19:10
先检查下内核不是最新的
如果13bin文件比较大,需要分多包数据发送,是在13.bin数据分多条包发送的过程中是 ...

谢谢您,成功了,我的内核不是最新的,换了就可以了。
回复

使用道具 举报

15

主题

38

回帖

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2019-7-24 09:33:43 | 显示全部楼层
c51 CPU运行的空间是0x1000开始的64Kb的空间吗?
回复

使用道具 举报

0

主题

239

回帖

1788

积分

金牌会员

Rank: 6Rank: 6

积分
1788
发表于 2019-7-24 10:29:02 | 显示全部楼层
T5L双核,其中OS核可以运行8051代码或者DWIN OS系统。 标准的8051架构和指令集,64KB的代码空间,32kb片内RAM。
具体可以参照论坛里面的T5L ASIC应用开发指南。
回复

使用道具 举报

15

主题

42

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2019-8-4 13:28:03 | 显示全部楼层
有命令行模式吗 这样就不用反复切换页面下载了
回复

使用道具 举报

2

主题

8

回帖

78

积分

版主

Rank: 7Rank: 7Rank: 7

积分
78
发表于 2019-8-4 22:32:52 | 显示全部楼层
回复debug
回复

使用道具 举报

15

主题

38

回帖

250

积分

中级会员

Rank: 3Rank: 3

积分
250
发表于 2019-8-9 11:54:42 | 显示全部楼层
51内核可以读取16M外部FLASH储存的数据吗
回复

使用道具 举报

45

主题

254

回帖

3418

积分

论坛元老

Rank: 8Rank: 8

积分
3418
发表于 2019-9-25 11:43:14 | 显示全部楼层
dz00055 发表于 2019-7-24 09:33
c51 CPU运行的空间是0x1000开始的64Kb的空间吗?

不是,标准51只能寻址64K空间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-24 16:13 , Processed in 0.106004 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表