迪文科技论坛

 找回密码
 立即注册
搜索
查看: 1895|回复: 6

大力希望厂家开发串口仿真固件

[复制链接]

10

主题

84

回帖

800

积分

高级会员

Rank: 4

积分
800
发表于 2020-1-18 21:06:41 | 显示全部楼层 |阅读模式
本帖最后由 luozewei 于 2020-1-18 21:20 编辑

我已经把串口4速度提高到25.8M波特率了。这个速度已经和JTAG接近了。厂家能否开发出一套和Keil 接口的 串口仿真工具。支持断点,数据上传下,程序下载。有利于加快OS开发速度。我先把串口4代码公布出来。 这个代码循环体总8条指令共大约50ns时间。能支持到100M波特率是没问题的。
接收函数思路,串口波特率最高是8分频的sys时钟 波特率25.8M。 接收缓冲用指针传递,生成的代码量最小。 设置定时器T1设置600ns中断用于跳出串口4接收函数(因为接收一个byte要400ns), 串口接收一旦进入中断,直到接收所有byte,实际上进中断出中断这个时间也要20个时钟周期差不多要100ns,当波特率足够快的时候还不如全部接收完再出中断,当空闲时间超过600ns 定时器T1响应跳出接收函数。/*****************************************************************************
void UART4_RX_ISR_PC(void)    interrupt 11
{
        TH1 = 0xFF;
        TL1 = 0xF5;        
        TF1 = 0;        
        while(!TF1)
        {
                while(!(SCON2R ^ 0));        
                *uart4.ptRx++ = SBUF2_RX;                                         
                SCON2R &= 0xFE;        
                TL1 = 0xF6;
        }
}
发送函数思路,串口波特率最高是8分频的sys时钟 波特率25.8M。接收缓冲用指针传递,生成的代码量最小。关闭发送中断EN,一旦进入发送函数,直到发送所有byte,跳出函数。波特率足够高。最多发送也就256字节内容,也才100us。发送缓冲第一个字节为长度。第二个字节开始才是发送的数据。这样有利用数据封装。又减少函数传递时间。 strlen 定义data变量,在while下 指令要比不加data少2条指令。
/*****************************************************************************
void Uart4SendStr( u8 *pstr )
{
        u8 data strlen = *pstr++;
        while(strlen--)
        {
                SBUF2_TX = *pstr++;   
                while((SCON2T & 0x01) == 1);
                SCON2T |= 0x01;
        }
}
25.8M TTL电平没多大问题,JTAGE最大也就50M. 如果能加一个串口转485芯片最好,差分传输误码率低很多。如果OS内部串口分频能到4分频。这个速度达到51.4M了,超过JTAG了。厂家只要开发一个仿真固件卡刷T5L内,   PC-USB转串口485总线连接到T5L。就可以实现了。实际上USB1.1时钟也才48M. 2.0速度就快多了。




回复

使用道具 举报

0

主题

50

回帖

396

积分

中级会员

Rank: 3Rank: 3

积分
396
发表于 2020-1-19 11:04:08 | 显示全部楼层
楼主,目前迪文是有EK043的开发板,然后配一个仿真器和烧录器,可以实现在线仿真的。
回复

使用道具 举报

0

主题

41

回帖

995

积分

高级会员

Rank: 4

积分
995
发表于 2020-1-19 11:04:30 | 显示全部楼层
楼主,迪文有EK043开发板,仿真器和烧录器,可能你这边手上只是个标准屏,如果你需要申请,可以联系迪文对应的业务员即可
回复

使用道具 举报

0

主题

11

回帖

294

积分

中级会员

Rank: 3Rank: 3

积分
294
发表于 2020-3-26 17:28:51 | 显示全部楼层
看楼主在用这个T5L的屏,有几个问题请教您一下,实在是一头雾水!
1.如果不用DWIN OS  ,自己用51自己开发OS,这个时候串口2还能和DGUS屏进行通讯吗?
2.串口2是左核51的串口呢,还是右核GUI的串口?
3.左核51如何和右核GUI交换数据,或者叫操作界面?  
有没有相关的资料共享一下,一头雾水,谢谢!
回复

使用道具 举报

0

主题

178

回帖

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
发表于 2020-3-26 19:23:55 | 显示全部楼层
T5L屏在使用时,OS程序和keil C程序只能运行一个。所以程序要么全用OS,要么全用KEIL C,不能混合使用
http://inforum.dwin.com.cn:20080 ... wthread&tid=290 可以参考案例
回复

使用道具 举报

17

主题

118

回帖

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
发表于 2020-3-26 22:53:01 | 显示全部楼层
z6642008 发表于 2020-1-19 11:04
楼主,目前迪文是有EK043的开发板,然后配一个仿真器和烧录器,可以实现在线仿真的。 ...

不是很好用
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

17

主题

118

回帖

1136

积分

金牌会员

Rank: 6Rank: 6

积分
1136
QQ
发表于 2020-3-26 23:10:15 | 显示全部楼层
281313005 发表于 2020-3-26 17:28
看楼主在用这个T5L的屏,有几个问题请教您一下,实在是一头雾水!
1.如果不用DWIN OS  ,自己用51自己开发O ...

我的理解,如有错误请指出:
1.迪文的左核是UI和串口2的,包括对固件,UI等的升级,如果使用左核,迪文是否开放?
2.在1中已说明;
3.  51内核和GUI内核是通过“系统变量接口“来进行数据交换,用户操作”系统变量接口“,UI内核读取相关数据进行处理,系统变量:0x0000-0x0FFF(屏幕翻页,背光,触摸等相关,用户可以通过OS/控件/串口写入指定命令操作,可以更快的配置屏幕属性等), 用户变量:0x1000-0xFFFF(按键,显示,输入等相关控件使用,os/串口控制);
梦想画板子画到眼瞎,写程序写到秃头!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-28 16:42 , Processed in 0.027952 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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