new.ease 发表于 2008-8-5 22:48:01

你可以用一根铜丝引出来

一根不难,难的是好几根。要么连到一起,要么,这根连上了那根又掉了。

唉,继续焊

armfans 发表于 2008-8-5 23:00:21

那个蓝牙模块好像不好找到其资料,另外mega128旁边的那个没焊的器件可能flash吧,另外到哪里能买到手机插头啊,没想到大家这么快就出来研究成果了

zcdyyu 发表于 2008-8-5 23:06:36

蓝牙模块要找资料应该不难,将模块卸下,拆掉上面的屏蔽盖,看看是那家的蓝牙芯片,估计是BGA的.要想知道IC的引脚的话还要将IC卸下一一测量.比较考手工.插座是什么样的,发个图看看.

shdzbsl 发表于 2008-8-5 23:08:11

呵呵,到100多楼了啊,希望在200楼以前能把这个好东西搞清楚,起码硬件电路和控制方法要搞定。到那时,大家就有个好玩又稳定的平台了。关键是廉价。

TO: 【98楼】 new.ease

检测了一下电路,发现它和MAX3222的典型电路相吻合,很可能就是串口。


试着画了它的电路图,捎带发现了个错误,85楼的电路图画错了一个引脚,现已更正。

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_369753.jpg
(原文件名:pocketsuffer_max3232_sch.jpg)
电路图中的U18我用了个插座代替,结合了MAX3222的资料,感觉应该起反相作用。芯片名称我现在还搞不清楚。

关于那个U9芯片,因为接触的flash比较少,正在查。

关于晶振,因为它接的有源晶振,而且我手头没有12M左右的,不太好试,还是麻烦有条件的网友测试下吧。个人感觉用有源晶振超到12M应该没什么问题。

关于表针,你可以拿个电阻的引脚在表针上绕两匝,再把引脚的头剪成尖头就比较小了,我就是这么整的。

TO:【100楼】 new.ease

    我是从M128的引脚焊了细线出来,转成6P排座,再转成10P ISP座。 不太好焊,我焊的已经掉了好几次了。你可以从那个15P的数据口想办法引出ISP接口,电路图在85楼。其实如果找得到那种数据接口的线最好,直接插上,ISP 、充电、串口通信全都搞定。但估计不好找。不如一狠心,吧那个座子拆掉,找细线把15根线全部引出,转换成15P的排座或排针,那样比较方便些。
    遗憾一下,本来以为可以抢到100楼的,可惜打字太慢,晕啊...


PS: 人多力量大,希望大家多多参与,早日搞定它。

shdzbsl 发表于 2008-8-5 23:15:43

TO: 【104楼】 zcdyyu

你是说它的那个15P的接口座吧。

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_369774.jpg
(原文件名:pocketsuffer_15P_IF.jpg)




各部分的电路的图片在这里:

http://auction1.taobao.com/auction/item_detail-db2-c25df0948f8df669fdb4ca33f7682664.jhtml

这些图片很清晰,比用眼睛盯着看电路板舒服多了。

zcdyyu 发表于 2008-8-5 23:20:12

你发的这个我看过了,就是看不见洞是什么样的.这个15P的插头估计难找.

shdzbsl 发表于 2008-8-5 23:38:36

TO: 【107楼】 zcdyyu

来个正面的,条件有限,凑合看吧。

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_369793.jpg
(原文件名:pocketsuffer_15P_IF_2.jpg)

估计这种数据线就算能找到也会很贵,搞不好还比这个PocketSuffer还贵。

zcdyyu 发表于 2008-8-5 23:43:12

我见过很多手机连接器,没有这种的.

shdzbsl 发表于 2008-8-6 02:35:12

经过激烈的思想斗争之后,我决定不再寄希望于专用的数据线了。自己DIY个数据接口吧。

先拆掉那个座子。

再找到合适的细线(我用的是阿莫的镀银线,刚好),小心的焊上去。

挖掉座子塑料部分,焊上的线穿过这个座子,然后把座子翻过来重新焊上。用胶枪把座子和线的空隙部分填充适量的热熔胶,起固定的作用。

把引出的线连接到合适的插座,我用的是小间距的排座。引出了6针ISP接口和两针充电接口,其余的暂时不用,拿热缩管保护了一下。

上几张图吧:

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_369853.jpg
(原文件名:pocketsuffer_15P_IF_11.jpg)

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_369854.jpg
(原文件名:pocketsuffer_15P_IF_12.jpg)

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_369855.jpg
(原文件名:pocketsuffer_15P_IF_13.jpg)

armok 发表于 2008-8-6 07:04:03

哈,这个帖子越来越精彩了。 没有想到大家真的能玩起来。

new.ease 发表于 2008-8-6 09:08:32

各位,建议一下,我们可不可以先集中力量主攻液晶,因为这样调试也方便。只要这块搞定了,其它的大家分而搞之。
其它的,如,开机键盘shdzbsl 已经搞的差不多了。
或者shdzbsl 来组织一下。有效的利用我们人力资源。

还有就是液晶现在有资料,虽然是长了点

mtheory 发表于 2008-8-6 10:07:33

液晶那部分不是问题,资料已经有了,现在要把没有资料的芯片找出,还有是电路要确定是如何连接的。。。

ilikemcu 发表于 2008-8-6 11:11:21

看来我也有不要搞一款了,呵呵,再顶下。实在佩服!

mtheory 发表于 2008-8-6 11:28:31

我找了很久都没有找到那个蓝牙模块的资料啊。。。。有谁找到了。。。。

langeliu 发表于 2008-8-6 14:17:26

留个记号,慢慢看

leifeng 发表于 2008-8-6 14:35:50

蓝牙模块:
芯片表面的字符:
21314
3A12L
340AA

new.ease 发表于 2008-8-6 14:44:44

终于把线焊接好了。读出了熔丝位。
看了一下。保密位的设定。其中并未对LPM、SPM做限止。我想可能是因为厂家为了升级的需要。

既然这样我们是不是可以先在应用区写一段代码读出BL

然后在写一个BL读出应用区呢。

当然我们这样做主要是为了更好的利用硬件。

谢谢,请高手做答一下。

new.ease 发表于 2008-8-6 14:46:21

117楼:
你把罩拆下来啦 ,芯片上没有厂家标识??
可否上图

leifeng 发表于 2008-8-6 15:02:16

是CSR的标志,但和网上卖的模块不同,没有SST的flash
和这个基本一样:
center>http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_370414.jpg
蓝牙模块 (原文件名:jbm-131.jpg) </center>
晚上上图

new.ease 发表于 2008-8-6 19:37:30

那位兄弟看一下118楼的方法有没有可行性呀。
读出代码来分析。可能进度会快一些

zjx888 发表于 2008-8-6 19:57:24

记号

holged 发表于 2008-8-6 20:31:52

好玩

shdzbsl 发表于 2008-8-6 20:55:12

TO: 【121楼】 new.ease

M128被加密了啊,不能读flash。要写flash就要整片擦除,写入自己的程序就意味着原来的程序必须被擦除,再读出的flash是空的。

况且,就算能读出flash,但只能反编译成汇编,不好理解和利用。要是有源代码的话就方便了,但这种商业产品不太可能找到源代码。

其实自己写程序试着实现它原来的功能也不错啊,或者自己利用这个平台重新开发个产品

new.ease 发表于 2008-8-6 21:26:29

多谢楼上解答。看来只有自己动手了。

楼上可否给个QQ号

shdzbsl 发表于 2008-8-6 23:11:36

  找了找液晶控制器的资料。去epson网站转了好一会儿才找到它的半导体产品部分。找了半天,没看到SED1355F,全是S1D13xxx。正郁闷着呢,看着S1D13505F00A挺眼熟,功能和SED1355F一样。搜了资料一看才知道,这个芯片就是原来的SED1355F0A。在它的DataSheet里搜SED1355,呵呵,现出原型,它里面的代码例子里的注释还是SED1355。 看来它想脱胎换骨却留了个小尾巴。呵呵。

找到的s1d13505F00A的相关文档资料,我下不下来,大家谁下载下来了记得传上来啊。网址如下:

http://vdc.epson.com/index.php?option=com_docman&task=cat_view&gid=72&Itemid=99

上面网页的Software and Drivers 里的 S1D13505_Initialization_Source_Example ,大家可以测试一下。
点击此处下载 ourdev_370893.zip(文件大小:5K) (原文件名:S1D13505_Initialization_Source_Example.zip)

一起上传s1d13505F00A的DataSheet:
点击此处下载 ourdev_370894.pdf(文件大小:4.63M) (原文件名:S1D13505F00A.pdf)

SED1355F0A的DataSheet:(楼上已有人发了,我一块整理到这里)
点击此处下载 ourdev_370895.pdf(文件大小:2.80M) (原文件名:SED1355F0A.pdf)

TO:【125楼】 new.ease
QQ:点击此处    我QQ上线少,自从升到了太阳。
  ||
  ||
  ||
  \||/
    \/
   \/

mtheory 发表于 2008-8-6 23:36:24

蓝牙模块啊。。。。。。。

new.ease 发表于 2008-8-6 23:54:45

126楼:我下完了。

传上来了

点击此处下载
ourdev_370914.rar(文件大小:2.18M) (原文件名:13505.rar)
评估板的资料和CE LINUX驱动没有下载

shdzbsl 发表于 2008-8-7 01:25:48

提醒大家一下,这个东东好像不多了,要下手就要快点了。

差点忘了谢谢 new.ease  leifeng  qhdz 黑精灵 lostbear MEGA64 zcdyyu 等网友提供的资料和热心参与。
当然还要感谢LZ 314forever给我们找到这么好玩的东东。呵呵。

大家加把劲,早日搞定它。

new.ease 发表于 2008-8-7 01:31:51

shdzbsl:
你的开电源部分可能有问题,只是打开了电池部分。
好像不像本身的程序。可以使用外部电源。

shdzbsl 发表于 2008-8-7 01:58:05

楼上,能不能说具体一点?你认为原程序在开机部分实现了哪些功能?
 
我是看了电路猜了下控制原理,按自己的思路实现的开机功能,你也可以试着自己改下控制方式。

按照我分析的电路,外部电源可以边充电边给系统供电。接外部电源时和用电池时应该是一样的,没有区分电池和外部电源的地方啊。惟一不太一样的是充电时指示灯为红色,充电中开机后显示黄色,就是红绿灯都亮。

314forever 发表于 2008-8-7 08:10:04

能找到SED1355的官方资料就好办多了,如果是按照datasheet自己写驱动,估计得写死。前几天搞了一块TFT,初始化要写三十几个寄存器./emotion/em090.gif;这个伪彩估计能好一些。早上去TB看只剩下15个了,前几天还有好几百个呢,要的话真就得快下手了./emotion/em205.gif

new.ease 发表于 2008-8-7 10:13:34

131楼:
我现在有两块板。一块写入兄弟的测试程序。一块是原来的程序。
写入测试程序的要按大概二秒才能开机。原来的程序只要按下了就可以开机了。
灯的颜色好像是正常的和原来的一样。应该是由硬件控制的。

兄弟不要搞的太晚了。身体要紧

qkj1575 发表于 2008-8-7 12:38:34

你们在推销产品啊

awsoft 发表于 2008-8-7 14:01:30

不得不顶啊

jamiedu 发表于 2008-8-7 15:03:18

标记

leifeng 发表于 2008-8-7 16:19:49

补充:蓝牙模块清晰图:

蓝牙模块ourdev_371553.jpg(文件大小:915K,只有300K以内的图片才能直接显示) (原文件名:DSCN5511.jpg)


http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_371554.jpg
蓝牙小图 (原文件名:DSCN5511.jpg)

new.ease 发表于 2008-8-7 16:54:20

呵,蓝牙芯片的DS先上了

点击此处下载 ourdev_371593.pdf(文件大小:3.32M) (原文件名:BC213143A-ds-001Pm BlueCore2-ROM Data Sheet.pdf)

qhdz 发表于 2008-8-7 20:13:53

该机的上网方式


      操作
本机-------->蓝牙手机--->(GPRS/PPP(电话拨号))---->该机服务商的代理服务器<--->WEB网页
↑                           ↓
------------------(专用类似图象的数据)------------------

这个机子通过网络得到的是专用显示数据,所以不需要字库.
它的操作也是由代理服务器来完成.

如我单击了网页某连接,机子把单击坐标发到服务器,服务器根据动作执行再返回新数据.

它的方式像瘦终端.

yuhang 发表于 2008-8-7 21:15:59

越来越有意思了,支持

zcdyyu 发表于 2008-8-7 21:19:30

请问 138楼 new.ease
CSR其它芯片资料有吗?

ldqmoon 发表于 2008-8-7 23:22:24

1355方面我在准备了, 先是得到硬件电路图, 今天量了一些,明天再发个完整的上来

new.ease 发表于 2008-8-7 23:46:00

141楼:这是我从CSR站上下的。不知你要其它那方面的资料。你也可以去下。的

ldqmoon 发表于 2008-8-8 09:55:24

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_372158.JPG
(原文件名:M128-SED1355.JPG)


M128和1355的连接图,请参考

硬件上象是直接连接,但又要控制573,不知道他软件怎么做的,直接操作还是IO口模拟。。。

shdzbsl 发表于 2008-8-8 10:09:40

液晶有些进展了,测了下它的电路,试着改了它的资料里的例子。现在可以初始化,不再黑屏了。但显示的图像几乎是全白的,感觉是对比度太小了,稍微能区分出来。我用它的13505cfg.exe选的参数,试了半天也没找到与对比度有关的寄存器,实在是找累了。大家有研究这个液晶的,还望指点迷津。
  这块液晶应该是STN,4096色吧?但SED1355F控制的STN有8位和16位,没有12位啊?怎么让它显示4096色?

34480016 发表于 2008-8-8 10:15:42

再发展下去, 本帖就要置酷了

shdzbsl 发表于 2008-8-8 10:24:40

TO:【144楼】 ldqmoon

帮你检查了个小错误:

M128_A0_A14---> SED1355FAB0_AB14
M128_A16_A21 ---> SED1355FAB15_AB20

我刚开始测时也是以为它按你画的那种常规的接法,但后来仔细测才发现不一样。SED1355F的AB15不是接的m128的A15,而是跳过了A15,接到了A16(74HC573扩展)。

shdzbsl 发表于 2008-8-8 10:42:12

TO:【144楼】 ldqmoon

   我是这么理解的,它为了扩展地址线,加了一个74HC573用来锁存A15以上的地址。比如,CY62128是128K的,先将A16锁存到573,再用总线读写数据。SED1355F也是这样扩展了高位地址。

  关于高位地址的锁存方法,我是先关掉总线,PORTC作输出。输出要锁存的地址后,PG3作普通IO产生一个锁存信号,将地址锁入573。这样实现的锁存速度比较慢(相对总线)。但因为是A15以上的地址,不会频繁的切换,所以应该还可以接受。就当切换页用了。

实现代码:

MCUCR=0x40; // 关闭总线 //
DDRC=0xff;
PORTC=0x01; // 此处输出要锁存的地址 //
PORTG|=(1<<PG3);
PORTG&=~(1<<PG3);
MCUCR=0xc0; // 打开总线 //

不知道大家是怎么实现的,有没有更快些的方法,欢迎讨论。

new.ease 发表于 2008-8-8 10:58:34

shdzbsl :
厉害,看来液晶都快搞定了。发液晶的程序上来,我们好跟进。

sonic5566 发表于 2008-8-8 13:42:59

越来越有趣了 做个记号

new.ease 发表于 2008-8-8 15:34:54

shdzbsl :
可不可以解答一下,为什么这里取值是0x2000

KeyValue = (*(volatile unsigned char *)0x2000 );

分析了一下KEY-XXXXXX可能是用来通知键盘主机是否已读取一个键。

shdzbsl 发表于 2008-8-8 15:57:29

  这是一个随便设的值,因为键盘转成并行数据后接在总线上,获取键值就要读取总线上数据。这个数据是锁存在74HC595中的,而此处并没有用常用的高位地址74HC138等译码器译码后作它的片选,而是直接用IO控制它的片选引脚,所以不管地址线上是什么地址,只要控制IO使能595,再从总线上读回数据就可以了。另外,这里选择0x2000只是为了使地址高于0x0000~0x10ff的内部RAM地址,从而进行外部总线的读写操作。这个地址只要是不小于0x1100就可以了。

  另外,关于如何访问外部存储器的低于0x1100的地址空间的数据,数据手册的存储器部分有相关介绍。

new.ease 发表于 2008-8-8 16:44:46

原来如此,谢谢

new.ease 发表于 2008-8-9 14:03:59

人呢??
LCD搞的怎么样了呢

jamiedu 发表于 2008-8-9 17:14:43

继续看。。

dodgecat 发表于 2008-8-9 17:21:49

这个东西很体现DIY精神,支持

new.ease 发表于 2008-8-9 18:31:34

shdzbsl:
根据DS的初始化程序改好以后。可以打开显示屏了。但不能松开,松开就断电。
应该是参数有误。可以贴你的初始化代码上来么??

shdzbsl 发表于 2008-8-9 20:16:16

TO:【158楼】 new.ease

液晶屏正在调,主要是初始化有问题。试验了下它的几个功能,有的可以用,有的还有问题。

现在我的屏设成256色时,只能显示左边半屏。设成16位色时(实际显示4096色),只显示了最左边的四分之一屏。显示的颜色也不对,但很有规律,我猜测可能是没配置好DRAM,也可能是我的硬件问题。顺便提醒一下,检测电路连接时有可能把芯片的相邻引脚短路(引脚上焊锡变形,短路相邻的引脚),我就出现过几次这种情况。

   最近看了一下数据手册,要配置好它的40多个寄存器还真麻烦。还好有个工具(13505cfg.exe),可以方便一点。但硬件相关的一些配置还是不太确定的。比如那个DRAM的配置,可以有几种选择,可能要实验一下。

   另外,你的显示屏初始化后就断电,有可能是访问外部总线时误访问了单片机内部的ram(0x0000~0x10ff),导致内部RAM数据被修改,可能正好把控制电源的端口给修改了。我用的方法是定义一个偏移量(大于0x1100),然后访问相应的寄存器时用这个偏移量和寄存器地址相加(确保访问的是外部总线),最终实现访问这个寄存器。代码示例如下:

#define ADDR_OFFSET      0x4000

/*
** Step 1: Enable the host interface.
**
** Register 1B: Miscellaneous Disable - host interface enabled, half frame
** buffer enabled.
*/
(*(volatile unsigned char *)(ADDR_OFFSET+0x1b) ) = 0x00; /* 0000 0000 */

还有一个问题是访问它的存储区时,如果还用以上的总线访问方法就不能访问低于0x1100的地址,应该要改成M128的数据手册中的方法。我还没试,大家可以试一下。

补充:刚试了下M128手册的方法,已经实现了0x0000~0x7fff外部总线地址空间的访问。
      方法与数据手册的例子略有不同。主要原理是屏蔽总线高位地址(即强制高位地址输出0)。比如,你要访问外部地址0x0001,可以把最高位地址A15屏蔽掉(即作为普通IO口),可以通过控制PORTC让它输出0。然后执行访问外部地址0x8001的操作,因为该地址大于0x10ff,单片机访问外部总线,但高位地址已被强制输出0,所以总线上实际地址为0x0001,实现了访问0x0001的目的。
    考虑到这个东东的实际电路连接中,没有像通常那样A0-A15接AB0-AB15,而是跳过了A15,即A0-A14接AB0-AB14,其它高位地址用573锁存。可能就是考虑到M128总线访问0x0000~0x10ff时的不便,故意留了A15没接。如果我们屏蔽掉A15,则可以连续访问外部地址空间0x0000~0x7fff。这样就可以认为是以32K为一个单元,通过控制外部锁存器锁存A15-A20来实现单元的切换,从而可以连续访问整个2M空间。大家可以测试一下,相关示例代码如下:

#define MEM_OFFSET       0x8000// 设置memory地址偏移量,此处必须为0x8000 //

DDRC = 0xff;
PORTC = 0x00;
XMCRB |= (1<<XMM0);// 禁用A15 ///////////////////////

LCM_M_R_Mem();         // 选择访问memory //

LCM_SetUpperAddr(0x00);// 锁存 AB15-AB20 地址 //
for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt+=2)            // 将0x0000-0x7fff填充为0xff,显示为白色 //
{
(*(volatile unsigned char *)(lpCnt+MEM_OFFSET) ) = 0xff;    // 待访问地址作0x8000的偏移 //
(*(volatile unsigned char *)(lpCnt+MEM_OFFSET+1) ) = 0xff;
}

XMCRB &= ~(1<<XMM0);// 使用A15 ///////////////////////

mtheory 发表于 2008-8-9 20:22:12

好啊!!!!为什么会只能显示半边屏???

shdzbsl 发表于 2008-8-9 22:21:56

TO:【160楼】 mtheory

   忘了说明一下,半边屏是指我设的是640×240,但实际显示的效果就像是把整个屏压缩成了一半,都到左边去了。另外,显示的颜色也不对,但是很有规律。我用8位模式,写入一片区域内一个颜色,实际显示就变为几个像素为一个周期重复出现的其它颜色。
   这个问题一直搞不定,还望大家指点一下。先谢过了。

new.ease 发表于 2008-8-9 22:46:58

shdzbsl:
兄弟呀,还是搞不定,松手就断电。
发个代码上来吧,HEX也行呀。我试试是不是硬件有问题。
还有你说的半屏问题你试试 REG0x18=0x00 REG0x0D=0x15 REG0x02=0x24

shdzbsl 发表于 2008-8-9 23:21:50

TO:【162楼】 new.ease

    谢谢,我再试下。

    发个测试程序吧,因为还是测试阶段,没好好整理,看着有点乱。

点击此处下载 ourdev_373293.rar(文件大小:29K) (原文件名:PocketSuffer_temp.rar)

    程序中主要是作了几个功能测试,包括RAM,键盘,液晶(还没调好)。其中对开关机部分作了些改进,详见注释。
    按开机键开机后,可以选择数字键1-3选择功能测试,1:键盘(我晕,看代码吧) 2:RAM3:LCM(未完成,现在用的256色模式)

    1,2功能测试通过后会自动关机(晕,没其它显示手段了)。3测试中,不关机。另外 Esc 键作专用的关机键。

    关于液晶屏,有可能是我的硬件有问题,大家试试和我的现象是不是一样。

jamiedu 发表于 2008-8-9 23:23:43

shdzbsl可不可以整理一份电路图上来啊??谢谢。

qkj1575 发表于 2008-8-10 10:29:47

都快给你们买完了
厉害

new.ease 发表于 2008-8-10 15:19:29

shdzbsl:屏应该还没有问题的。

你试试我的测试代码。现在显示好像正常了一些。

主要改了 REG0x02屏的位数(原来这里指接口位数),应该是四位,也就是0x04

其它设置为16位色的。

希望大家多交流

void LCM_TEST(void)
{
        volatile unsigned char * pRegs = REGISTER_OFFSET;
        volatile unsigned char * pMem;
        volatile unsigned char * pLUT;
        volatile unsigned char * pTmp;
        volatile unsigned char * pCursor;
        long lpCnt;
        int idx;
        int rgb;
        long x, y;


        /*
        ** Initialize the chip.
        */
       
        DDRC = 0xff;
        PORTC = 0x00;
        XMCRB |= (1<<XMM0);// 禁用A15 ///////////////////////
       
        LCM_CS_ON();
        LCM_REG();
        /*
        ** Step 1: Enable the host interface.
        **
        ** Register 1B: Miscellaneous Disable - host interface enabled, half frame
        **            buffer enabled.
        */
        *(pRegs + 0x1B) = 0x00;            /* 0000 0000 */

        /*
        ** Step 2: Disable the FIFO
        */
        *(pRegs + 0x23) = 0x80;            /* 1000 0000 */

        /*
        ** Step 3: Set Memory Configuration
        **
        ** Register 1: Memory Configuration - 4 ms refresh, EDO
        */
        *(pRegs + 0x01) = 0x30;            /* 0011 0000 */

        /*
        ** Step 4: Set Performance Enhancement 0 register
        */
        *(pRegs + 0x22) = 0x24;            /* 0010 0100 */

        /*
        ** Step 5: Set the rest of the registers in order.
        */

        /*
        ** Register 2: Panel Type - 16-bit, format 1, color, dual, passive.
        */
        *(pRegs + 0x02) = 0x04;            /* 0010 0100 */

        /*
        ** Register 3: Mod Rate
        */
        *(pRegs + 0x03) = 0x00;            /* 0000 0000 */

        /*
        ** Register 4: Horizontal Display Width (HDP) - 640 pixels
        **             (640 / 8) - 1 = 79t = 4Fh
        */
        *(pRegs + 0x04) = 0x4f;            /* 0100 1111 */

        /*
        ** Register 5: Horizontal Non-Display Period (HNDP)
        **                                    PCLK
        **             Frame Rate = -----------------------------
        **                           (HDP + HNDP) * (VDP + VNDP)
        **
        **                                 16,500,000
        **                        = -----------------------------
        **                           (640 + HNDP) * (480 + VNDP)
        **
        ** HNDP and VNDP must be calculated such that the desired frame rate
        ** is achieved.
        */
        *(pRegs + 0x05) = 0x0B;            /* 0001 1111 */

        /*
        ** Register 6: HRTC/FPLINE Start Position - applicable to CRT/TFT only.
        */
        *(pRegs + 0x06) = 0x00;            /* 0000 0000 */

        /*
        ** Register 7: HRTC/FPLINE Pulse Width - applicable to CRT/TFT only.
        */
        *(pRegs + 0x07) = 0x00;            /* 0000 0000 */

        /*
        ** Registers 8-9: Vertical Display Height (VDP) - 480 lines.
        **                480/2 - 1 = 239t = 0xEF
        */
        *(pRegs + 0x08) = 0xEF;            /* 1110 1111 */
        *(pRegs + 0x09) = 0x00;            /* 0000 0000 */

        /*
        ** Register A: Vertical Non-Display Period (VNDP)
        **             This register must be programed with register 5 (HNDP)
        **             to arrive at the frame rate closest to the desired
        **             frame rate.
        */
        *(pRegs + 0x0A) = 0x1D;            /* 0000 0001 */

        /*
        ** Register B: VRTC/FPFRAME Start Position - applicable to CRT/TFT only.
        */
        *(pRegs + 0x0B) = 0x00;            /* 0000 0000 */

        /*
        ** Register C: VRTC/FPFRAME Pulse Width - applicable to CRT/TFT only.
        */
        *(pRegs + 0x0C) = 0x00;            /* 0000 0000 */

        /*
        ** Register D: Display Mode - 8 BPP, LCD disabled.
        */
        *(pRegs + 0x0D) = 0x14;      //0x14      /* 0000 1100 */

        /*
        ** Registers E-F: Screen 1 Line Compare - unless setting up for
        **                split screen operation use 0x3FF.
        */
        *(pRegs + 0x0E) = 0xFF;            /* 1111 1111 */
        *(pRegs + 0x0F) = 0x03;            /* 0000 0011 */

        /*
        ** Registers 10-12: Screen 1 Display Start Address - start at the
        **                  first byte in display memory.
        */
        *(pRegs + 0x10) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x11) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x12) = 0x00;            /* 0000 0000 */

        /*
        ** Register 13-15: Screen 2 Display Start Address - not applicable
        **               unless setting up for split screen operation.
        */
        *(pRegs + 0x13) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x14) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x15) = 0x00;      //0x00      /* 0000 0000 */

        /*
        ** Register 16-17: Memory Address Offset - this address represents the
        **               starting WORD. At 8BPP our 640 pixel width is 320
        **               WORDS
        */
        *(pRegs + 0x16) = 0x80;   //0x80            /* 0100 0000 */
        *(pRegs + 0x17) = 0x02;   //0x02         /* 0000 0001 */

        /*
        ** Register 18: Pixel Panning
        */
        *(pRegs + 0x18) = 0x00;            /* 0000 0000 */

        /*
        ** Register 19: Clock Configuration - In this case we must divide
        **            PCLK by 2 to arrive at the best frequency to set
        **            our desired panel frame rate.
        */
        *(pRegs + 0x19) = 0x01;    //0x02          /* 0000 0001 */

        /*
        ** Register 1A: Power Save Configuration - enable LCD power, CBR refresh,
        **            not suspended.
        */
        *(pRegs + 0x1A) = 0x00;            /* 0000 0000 */

        /*
        ** Register 1C-1D: MD Configuration Readback - these registers are
        **               read only, but it's OK to write a 0 to keep
        **               the register configuration logic simpler.
        */
        *(pRegs + 0x1C) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x1D) = 0x00;            /* 0000 0000 */

        /*
        ** Register 1E-1F: General I/O Pins Configuration
        */
        *(pRegs + 0x1E) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x1F) = 0x00;            /* 0000 0000 */

        /*
        ** Register 20-21: General I/O Pins Control
        */
        *(pRegs + 0x20) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x21) = 0x00;            /* 0000 0000 */

        /*
        ** Registers 24-26: LUT control.
        **                  For this example do a typical 8 BPP LUT setup.
        **
        ** Setup the pointer to the LUT data and reset the LUT index register.
        ** Then, loop writing each of the RGB LUT data elements.
        */
        pLUT = LUT8;
        *(pRegs + 0x24) = 0;

        for (idx = 0; idx < 256; idx++)
        {
                for (rgb = 0; rgb < 3; rgb++)
                {
                  *(pRegs + 0x26) = *pLUT;
                  pLUT++;
                }
        }

        /*
        ** Register 27: Ink/Cursor Control - disable ink/cursor
        */
        *(pRegs + 0x27) = 0x00;            /* 0000 0000 */

        /*
        ** Registers 28-29: Cursor X Position
        */
        *(pRegs + 0x28) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x29) = 0x00;            /* 0000 0000 */

        /*
        ** Registers 2A-2B: Cursor Y Position
        */
        *(pRegs + 0x2A) = 0x00;            /* 0000 0000 */
        *(pRegs + 0x2B) = 0x00;            /* 0000 0000 */

        /*
        ** Registers 2C-2D: Ink/Cursor Color 0 - blue
        */
        *(pRegs + 0x2C) = 0x1F;            /* 0001 1111 */
        *(pRegs + 0x2D) = 0x00;            /* 0000 0000 */

        /*
        ** Registers 2E-2F: Ink/Cursor Color 1 - green
        */
        *(pRegs + 0x2E) = 0xE0;            /* 1110 0000 */
        *(pRegs + 0x2F) = 0x07;            /* 0000 0111 */

        /*
        ** Register 30: Ink/Cursor Start Address Select
        */
        *(pRegs + 0x30) = 0x00;            /* 0000 0000 */

        /*
        ** Register 31: Alternate FRM Register
        */
        *(pRegs + 0x31) = 0x00;


        /*
        ** Register 23: Performance Enhancement - display FIFO enabled, optimum
        **            performance. The FIFO threshold is set to 0x00; for
        **            15/16 bpp modes, set the FIFO threshold
        **            to a higher value, such as 0x1B.
        */
        *(pRegs + 0x23) = 0x00;            /* 0000 0000 */

        /*
        ** Register D: Display Mode - 8 BPP, LCD enable.
        */
        *(pRegs + 0x0D) = 0x15;   //0x15         /* 0000 1101 */



        /*
        ** Clear memory by filling 2 MB with 0
        */
        LCM_MEM();


        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x00);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0xFF;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x01);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0x00;
                pMem++;
        }
       

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x02);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0x22;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x03);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0x44;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x04);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0x66;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x05);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0x88;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x06);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0xAA;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x07);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0xCC;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x08);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0xEE;
                pMem++;
        }

        pMem = DISP_MEM_OFFSET;
       LCM_SetUpperAddr(0x09);
        for (lpCnt = 0x0000; lpCnt < 0x7fff; lpCnt++)
        {
                *pMem=0xFF;
                pMem++;
        }
       
        /*
        ** Init the HW cursor. In this example the cursor memory will be located
        ** immediately after display memory. Why here? Because it's an easy
        ** location to calculate and will not interfere with the half frame buffer.
        ** Additionally, the HW cursor can be turned into an ink layer quite
        ** easily from this location.
        */

        LCM_REG();
        *(pRegs + 0x30) = CURSOR_START;

        LCM_MEM();
        pTmp = pCursor = pMem + (DISP_MEMORY_SIZE - (CURSOR_START * 8192L));

        /*
        ** Set the contents of the cursor memory such that the cursor
        ** is transparent. To do so, write a 10101010b pattern in each byte.
        ** The cursor is 2 bpp so a 64x64 cursor requires
        ** 64/4 * 64 = 1024 bytes of memory.
        */
        for (lpCnt = 0; lpCnt < 1024; lpCnt++)
        {
        *pTmp = 0xAA;
        pTmp++;
        }

        /*
        ** Set the first user definable cursor color to black and
        ** the second user definable cursor color to white.
        */

        LCM_REG();
        *(pRegs + 0x2C) = 0;
        *(pRegs + 0x2D) = 0;
        *(pRegs + 0x2E) = 0xFF;
        *(pRegs + 0x2F) = 0xFF;

        /*
        ** Draw a hollow rectangle around the cursor.
        */
        LCM_MEM();
        pTmp = pCursor;

        for (lpCnt = 0; lpCnt < 16; lpCnt++)
        {
        *pTmp = 0x55;
        pTmp++;
        }

        for (lpCnt = 0; lpCnt < 14; lpCnt++)
        {
        *pTmp = 0x6A;
        pTmp += 15;

        *pTmp = 0xA9;
        pTmp++;
        }

        for (lpCnt = 0; lpCnt < 16; lpCnt++)
        {
        *pTmp = 0x55;
        pTmp++;
        }

        /*
        ** Move the cursor to 100, 100.
        */

        /*
        ** First we wait for the next vertical non-display
        ** period before updating the position registers.
        */
        LCM_REG();
        while (*(pRegs + 0x0A) & 0x80);   /* wait while in VNDP */

        while (!(*(pRegs + 0x0A) & 0x80));/* wait while in VDP */

        /*
        ** Now update the position registers.
        */
        *(pRegs + 0x28) = 100;   /* Set Cursor X = 100 */
        *(pRegs + 0x29) = 0x00;

        *(pRegs + 0x2A) = 100;   /* Set Cursor Y = 100 */
        *(pRegs + 0x2B) = 0x00;

        /*
        ** Enable the hardware cursor.
        */
        *(pRegs + 0x27) = 0x40;
        LCM_CS_OFF();
        XMCRB &= ~(1<<XMM0);// 使用A15 ///////////////////////
}

jamiedu 发表于 2008-8-10 16:56:49

我买了一块,接上ISP后可以读写熔丝位和LOCK Bit,也可以擦除芯片,但是不能写FLASH,不知道是不是坏了。。。

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_373713.jpg
错误提示 (原文件名:error.jpg)

new.ease 发表于 2008-8-10 17:55:16

167楼,换个编程软件或者是编程器,试试。

下面的工作就该移植图形库了。

ldqmoon 发表于 2008-8-10 20:54:39

根据实际测的情况来看,屏的数据线只有4根, 接到了1355的高8位(D4~D7)上了,估计颜色方面不会很多

我这边下载线都还没搞定...

ivws 发表于 2008-8-11 09:15:27

强贴留名.............

new.ease 发表于 2008-8-11 10:07:23

169楼:
你的理解有误,4位数据线。只是接口问题。和颜色的多少没有关系的。
根据芯片和屏的资料来看应该是4096色的。

shdzbsl 发表于 2008-8-11 12:02:34

呵呵,总算能显示图像了,多谢【166楼】 new.ease 帮忙。

先上个图解解馋:

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_374338.jpg
(原文件名:pocketsurfer_LCM_01.jpg)

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_374339.jpg
(原文件名:pocketsurfer_LCM_02.jpg)

PS:本来是打算显示个网站大图的,但取的16位色,所以,即使是M128也没那么大空间,只好截个小图充数。

new.ease 发表于 2008-8-11 12:16:39

shdzbsl:
恭喜!
偶现在做图形库的移植,不过内存的映射问题还是头痛的问题。
想把,REG MEM分别映射到不同的线性地址上。这样无论是自己操作还是移植都方便的多了。

兄弟们可有这方面经验

shdzbsl 发表于 2008-8-11 12:55:08

我昨天调试液晶时发现,因为它的memory是按32K为一页,所以操作时主要是处理好页与页的切换问题和边界地址检测问题,呵呵,比普通液晶麻烦些。
    关于内存的映射,我试过作了个memory地址转换函数(输入地址,内部转换成高位和低位地址),实现2M的memory地址的访问。但这种访问方法太慢了,不适合作图片显示等大数据量访问时用。 我显示图像时,只是在开头加了地址的转换(X,Y --> memory),显示时检查是否越过边界(32K一页),想尽量提高一下速度。毕竟,这个屏这么大,单片机又不是很快的情况下,刷新速度还是要充分考虑的。

new.ease 发表于 2008-8-11 13:20:28

shdzbsl:
这是我整理的资源使用情况。不完整,兄弟可不可以帮忙整理一份完整的

我现在想如果。我位完整的知道端口的使用情况。我们就可以直接输出所有到端口。再也不用一位一位的操作那么低效
PB3                CY62256_CS#
PB5                SED1355_CS#
PB6                SED1355_MR#
PG0/WR                SED1355_WR#
PG1/RD                SED1355_RD#
PG2                74LS573A_CS#
PG3                74LS573B_CS#,CY62256_RESET ?????
PF3                SED1355_RESET#,POWER_CTL????
PD5                SED1355_WAIT#
PE2                74HC74_CLR,74HC595_CLR
PE3                74HC595_CS#
PE6/INT6                74HC74_Q#
PE7/INT7                POWER_BT

shdzbsl 发表于 2008-8-11 13:26:36

先上传一个测试HEX,代码还没整理好。
实现的功能是开机后显示蓝色背景和一幅小图片,可以用上下左右键移动。试着实现了它的对比度调节功能,也不知道是不是这么实现的。
点击此处下载 ourdev_374434.rar(文件大小:19K) (原文件名:PocketSuffer.rar)

dreampet 发表于 2008-8-11 21:24:40

我的两个也拿到了

一切正常,就是两个键盘都很不灵活,有些键要非常大力按才有效

揭下键盘后发现有些触点上面有不干胶,拿橡皮擦掉后一切正常~~~有同样问题的可以试试

yeyu1234 发表于 2008-8-11 22:58:37

这个东西很体现DIY精神,支持置酷~

litchiate 发表于 2008-8-12 00:30:24

我的两个也拿到了

一切正常,就是两个键盘都很不灵活,有些键要非常大力按才有效

揭下键盘后发现有些触点上面有不干胶,拿橡皮擦掉后一切正常~~~有同样问题的可以试试
——————————————————————————————————————————————-——————————

哦? 拆了看看,买回来试了下连得上手机,上不了网之后就扔着了。

shdzbsl 发表于 2008-8-12 02:29:56

顶一下。
   响应大家号召,我稍微整理了下PocketSurfer的原理图。因为时间有限,可能会有些错误,大家发现了提醒一下,以便更正。   
注:原理图并不完整,缺少电源的部分电路和蓝牙电路及SED1355F的DRAM部分。另外,芯片U9未确定型号,原理图中没有画出。
PS: 仓促整理了一下,大家凑合凑合吧。

先来张图片:
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_374973.jpg
(原文件名:PocketSurfer_V100_SCH.jpg)


这是Protel格式的原理图(AD6.7和99se):
点击此处下载 ourdev_374974.rar(文件大小:43K) (原文件名:PocketSurfer_V100_sch.rar)

以下是PDF格式的原理图:
点击此处下载 ourdev_374975.rar(文件大小:169K) (原文件名:PocketSurfer_V100_pdf.rar)

shdzbsl 发表于 2008-8-12 02:34:53

TO:【177楼】 dreampet 原野

呵呵,看来大家都有这个问题啊。估计是放时间长了,键盘不好用了。我暴力按下N次后,基本可以正常使用了。

PS:这个楼盖得挺快,快要200了。

!纪念一下,积分200 !

armok 发表于 2008-8-12 05:48:46

好的。响应大家的号召。COOL !

new.ease 发表于 2008-8-12 09:44:39

偶不能落后了。上传我写的程序,还没有写完整,不过现在已经可以显示E文了,可以调试机器用。

                seSetCursor(gDevID,1,0);
                seDrawText(gDevID,"ScreenSize nWidth:%dnHeight:%d",nWidth,nHeight);
                seSetCursor(gDevID,2,0);                               
                seDrawText(gDevID,"Color DEEP nBPP:%d",nBPP);
                seSetCursor(gDevID,3,0);                               
                seDrawText(gDevID,"BytesPerLine:%d",BytesPerLine);

可以这样子输出变量,调试起来方便多了。

虽然没有完成,也传上来给大家。我想这样才会有更多人参于进来。资料也没有整理。偶把所有我用到的资料一起打包上来了
PocketSuffer文件包ourdev_375099.rar(文件大小:12.16M) (原文件名:PocketSuffer.rar)

henry 发表于 2008-8-12 13:33:54

淘宝上已经没有了,呵呵,呜呜

yanziily 发表于 2008-8-12 13:52:08

完全不知道怎么充电 头疼额

yanziily 发表于 2008-8-12 13:55:46

要是谁能编写一个恢复模式就好了

34480016 发表于 2008-8-12 14:03:27

淘宝上面又有了,
卖家说只有几个了,
手脚快的朋友可能还能买到.
刚才我也拍了一个,
虽然没有搞过avr,
看到大家都这么有激_情,
也买一个回来研究.

http://auction1.taobao.com/auction/item_detail-db2-c25df0948f8df669fdb4ca33f7682664.jhtml

XUEPENGBIN 发表于 2008-8-12 15:10:11

呵呵,俺也陶到了一块。现在已经把它大卸八块了。正好有兄弟把部分电路图搞定了。俺可以修改修改了。谢谢各位大侠的无私奉献。小弟甚是感激!俺的宝贝中的蓝牙能发现别的蓝牙,就是连不上,在另一个蓝牙终端要输密码。按搞了好久都没输成功!@

hnywx 发表于 2008-8-12 15:10:58

买了一个,试了一下,可以连接手机,无法接通网络,有几个按键不灵,不懂AVR,先放着,等大家的研究成果,

XUEPENGBIN 发表于 2008-8-12 15:12:19

俺发现MEG128的JTAG线已经有引出线就在充电接口右边。可找了好久就没查出它练到哪里去了!!!

shdzbsl 发表于 2008-8-12 15:19:25

TO: 【183楼】 new.ease
   支持一下! 我也很有兴趣移植它的库。等忙过了这阵,还要好好交流讨论一下。

TO: 【185楼】 yanziily
   可以参考下【87楼】的说明。我实测电压为5~9V时充电电流在670mA左右。呵呵,要玩就要舍得拆啊。我买了一个用来实验,另一个当存货。

TO: 【186楼】 yanziily
   ???

TO: 【187楼】 34480016 晕来晕去
   我都被淘宝整晕了,他们卖的只剩一两个时,就再加上几个,搞不清楚他们到底还有多少货。可能他们就是这么作生意的,不过搞的买家心里没底,可恨。

shdzbsl 发表于 2008-8-12 15:52:37

TO: 【183楼】 new.ease
   问一下,它的那个库是不是要做好底层memory访问接口? 如果最底层的是读写memory一个字节的函数,那效率可能会比较低。毕竟这里它没用的ARM,也没用AVR32,它只是用了8位的M128。虽然扩充了地址线,但需要额外的取高位地址和锁存地址的步骤,速度大大降低了。当然,在显示英文字符等小数据量的内容时,这个影响是不明显的,应该也可以接受。只是,显示大幅的图片时还是要优化一下,刷新太慢了就比较难看了。
   前段时间调试的显示图片的程序,给大家参考,希望大家能尽量优化下图像显示的函数,刷新速度越快越好,呵呵。

PS: 这个函数就是我在176楼发的HEX里用的。只是,那个演示程序中为了移动图片,先把原图片位置刷成背景色,再在下一个位置显示,所以速度慢些了。

图像显示函数如下:(英语不好,呵呵)

void LCM_PrintPic(const prog_uchar *Pic,unsigned int Start_X,unsigned int Start_Y,unsigned int Long,unsigned int High)
{
unsigned int pic_x,pic_y,pic_high,pic_long;
unsigned long Addr,Addr_last;
unsigned int Addr_low;

Addr = DISP_MEM_OFFSET + (unsigned long)Start_Y*2*640 + (unsigned long)Start_X*2;

LCM_SetUpperAddr( (unsigned char)(Addr/0x00008000));
Addr_low =(unsigned int)( Addr & 0x00007fff );   
Addr_low += MEM_OFFSET;

BUS_CS_OFF();

DDRC = 0xff;
PORTC = 0x00;
XMCRB |= (1<<XMM0);// 禁用A15 ///////////////////////
LCM_M_R_Mem();
LCM_CS_ON();

LCM_newline_flag = 0;
Addr_last = Addr;

for(pic_y=0 ; pic_y<High ; pic_y++ )
        {
       for(pic_x=0 ; pic_x< 2*Long ; pic_x++)
             {
               if(LCM_newline_flag == 0)
               if( Addr_low + pic_x == 0)
                {
               LCM_SetUpperAddr( Addr/0x00008000 + 1);
                      Addr_low = MEM_OFFSET - pic_x;
                }
              (*(volatile unsigned char *)(Addr_low + pic_x) ) = pgm_read_byte(Pic);
              Pic++;
             }
            Addr_last = Addr + 2*Long;
            Addr += 2*640;

       LCM_newline_flag = 0;

       if((Addr/0x00008000) - (Addr_last/0x00008000))
             {
              LCM_SetUpperAddr(Addr/0x00008000);
               LCM_newline_flag = 1;
             }

         Addr_low =(unsigned int)( Addr & 0x00007fff );   
         Addr_low += MEM_OFFSET;
          }

LCM_CS_OFF();
XMCRB &= ~(1<<XMM0);// 使用A15 ///////////////////////
}

new.ease 发表于 2008-8-12 17:28:50

还好图形库,基本没有进行封装。
大多数函数只有个接口。实现还是要自己实现。所以具体怎么操作,要看自己了。
现在我用完的字符显示,就一个点一个点的写,效率不高。以后的改为缓冲。

你上面的函数里
XMCRB |= (1<<XMM0);// 禁用A15 ///////////////////////
好像可以不要。
MEM和REG的访问我改为了直接
#define LCM_REG()   LCM_MR_PORT = 0x9F;//B10011111
#define LCM_MEM()    LCM_MR_PORT =0xDF;//B11011111
#define LCM_CS_OFF()    LCM_CS_PORT =0xFF

/*-------------------------------------------------------------------------*/

/*
** seReadDisplayDword()
*/
BYTE seReadDisplayDword( BYTE seReserved1, DWORD offset, DWORD *pDword )
{

        //if (offset >= MemSize)
        //        return ERR_HAL_BAD_ARG;

        LCM_MEM();
        upadd=(BYTE)(offset>>15);
        if(upadd!=upaddold)
        {
                LCM_LOCK_HIADD(upadd);
                upaddold=upadd;
        }

        *pDword = *((DWORD *)LOWORD(offset|0x8000));
       
        LCM_CS_OFF();
        return ERR_OK;
}

这样效率高一点了

我觉得屏的速度跟不上是主要的,写点的速度应该够了。

yeyu1234 发表于 2008-8-12 17:32:11

越来越强大了 向DIY高手们致敬!!!

88453531 发表于 2008-8-12 17:40:59

买了两个 一个可以开机一个不能开机电池拆出来充电的,没有在机子里冲,晚上把工具都带来,实验下啊,要先看下不能开机的哪个。呵呵。

yanziily 发表于 2008-8-12 17:55:12

拆下来放哪儿充啊?

88453531 发表于 2008-8-12 18:24:59

我们公司的终端有充点功能 呵呵 你要是没有拿万能充也可以啊 那东西太费电了啊 要是背光调亮点电池直接就掉一格 现在还在冲呢 可怜我这里没有可以照相的 要不也发点图片出来啊 呵呵 现在东西准备好了准备焊接调试口啊。先看开不开机的那台啊。

yanziily 发表于 2008-8-12 19:00:58

拆了又装好复杂 还是拉几根先出来先接PSP的充电器吧 连接和充电都成问题啊 唉。。。。。

88453531 发表于 2008-8-12 19:20:56

我直接把接口弄出来了里面没有电池 还有正在改15阵接口用风枪拆出来了本想用高温导线引出来但间距太密现在找个块板边,上面有敷铜 准备自己刻一下后用漆包线引想问下那15跟先都要引出来吗 U17没有装 是不是你引也可以啊要不割铜皮很麻烦 希望高手帮看下 说说 还有JTAG用3.3V的哪个引脚还是VCC哪个啊

new.ease 发表于 2008-8-12 19:24:20

割铜皮. 汗,

试试JATG,能不能读出代码。如果不能,还不如用ISP

呵呵,攻占200楼

yanziily 发表于 2008-8-12 19:24:24

我当然是找人焊咯BS我吧 谁叫我家没工具呢

88453531 发表于 2008-8-12 19:25:08

到200楼了啊 顶一下啊
页: 1 [2] 3 4 5 6 7
查看完整版本: 刚才在TB上看到一个好东西——MEGA128L+SED1355F+MAX1677+蓝牙模块+液晶屏 供拆机