kevin_jiang 发表于 2010-4-29 13:52:02

EC 的3D Sensor

小弟刚开始学习EC,所以有一些不懂得问题需要请教各位大侠,希望各位能够不吝赐教。

小弟我现在在做一个3D sensor(重力加速度,保护硬盘的)的测试程序,3D和Thermal一样是挂在IT8512E下面,通过SMB1跟EC相连接。
小弟我现在需要从EC里面读取3D sensor数据,但现在我发现我只能读EC 256字节的数据单元(即00h~ffh)里面的数据,而EC 64KB的外部RAM里面的数据却一直读不出来,所以小弟请教各位大侠有什么好的方法能把EC 的internal RAM 和external RAM都给读出来的方法。

还有小弟按照
讀 EC 語法如下
>1. Sent read EC command(80H) to Port66
>2. Sent EC RAM address high byte to Port62
>3. Sent EC RAM address low byte to Port62
>4. Read Port62 Data
方法读以后发现高地址一直送不上去,还望各位大侠赐教,最好能附上一段程序,呵呵、、、

我现在运行这些程序是开机通过U盘启动,然后运行DOS后进入turbor2.0运行C程序的,请各位大侠赐教

蓝色永恒 发表于 2010-4-29 19:54:10

回复 1# kevin_jiang 的帖子

试试这个过程
                     out66h,92h
                                          out 62h,#high address
                                           out 62h,#lowaddress
                                           in   al,62h
      可能是你的Cmd 用的不对吧? 读取 external RAM 不是用 80h cmd,我感觉我这里用92h可以读到,没试过啊!
你可以追一下80 cmd 的流程,你这样子发应该是读不到的吧?
            不管怎样,你要读External Ram 应该调到EC code里的Read_External_Ram() 这样的函数才行吧?
仅供参考,呵呵!

qdk0901 发表于 2010-5-14 20:19:03

楼主需要重新认识EC Space

zhangnengjun 发表于 2010-5-18 23:47:40

回复EC 的3D Sensor

这个方法貌似读EC space的方法,不过ec space一般都只需要256byte就可以了吧。所以不需要 high,low。发一个地址过去就可以了。你可以用debug32在dos下一步一步测试一下。
“EC 64KB的外部RAM里面的数据却一直读不出来,所以小弟请教各位大侠有什么好的方法能把EC 的internal RAM 和external RAM都给读出来的方法。”不知道你是不是用上面的方法去读,如果是,你需要先在ec程序里面将external RAM的数据先放到ec space里面,然后才能读到。当然如果你通过supper io的方式去访问ec也可以读到external RAM的数据,不过8512好像不支持吧,775和591倒是可以.

yingmm88 发表于 2010-5-30 09:32:08

可以看看EC 的|share memory 通过share memory 把ram的内容映射到内存区就可以读到了。
页: [1]
查看完整版本: EC 的3D Sensor