dqy32
驱动牛犊
驱动牛犊
  • 注册日期2004-03-10
  • 最后登录2009-02-16
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:2034回复:5

求救:68013固件装载

楼主#
更多 发布于:2004-05-10 14:07
    我用68013自己做的板子,只加上了基本电路,使用cypress开发包自带的驱动,插到usb口后可以被系统认出,设备管理中显示为:Cypress EZ-USB FX2(68613)-EEPROM missing,用cypress开发包中的control panal可以识别出,但是用download键下载固件后,显示如下:
使用文件:LEDCycle.hex

Toggle 8051 Reset
Anchor Download 3 bytes: addr=0
0000 02 14 00
Anchor Download 65 bytes: addr=1400
0000 75 81 5F 91 07 80 FC 90 80 00 E0 91 38 90 90 00
0010 E0 91 38 90 A0 00 E0 91 38 90 B0 00 E0 91 38 90
0020 81 00 E0 91 38 90 91 00 E0 91 38 90 A1 00 E0 91
0030 38 90 B1 00 E0 91 38 22 7A 04 D8 FE D9 FC DA FA
0040 22
Toggle 8051 Reset

按理说好像没有问题
这是源文件,Cypress自带:
; LEDCycle.A51 6-7-00   LTH
;
; Check for signs of life on FX2 IO ports
;--------------------------------------------------------------
$NOMOD51 ; disable predefined 8051 registers
$nolist
$INCLUDE (fx2regs.inc) ; *** for the Dallas (Synopsys) part
$list
;
NAME portio
;
ISEG AT 60H ; stack
stack: ds 20
;
DSEG at 20H ; bit-addressable
litebits: ds 1
;
CSEG AT 0 ; absolute Segment at Address 0
LJMP start ; Jump over the interrupt vectors
; -------------------------------------------------
org 1400h
; -------------------------------------------------
start: mov SP,#STACK-1 ; set stack
;
lth: call cycle_lites
sjmp lth
;
cycle_lites: mov dptr,#8000h
movx a,@dptr
call delay
mov dptr,#9000h
movx a,@dptr
call delay
mov dptr,#0A000h
movx a,@dptr
call delay
mov dptr,#0B000h
movx a,@dptr
call delay
mov dptr,#8100h
movx a,@dptr
call delay
mov dptr,#9100h
movx a,@dptr
call delay
mov dptr,#0A100h
movx a,@dptr
call delay
mov dptr,#0B100h
movx a,@dptr
call delay
ret
;
delay: mov r2,#4
dl1: djnz r0,dl1
djnz r1,dl1
djnz r2,dl1
ret
;
END
    好像是能实现led循环点亮,可是我用示波器观察不到pa,pb,pd口任何一个引脚上的电平变化,不知道哪里有错,郁闷呀!
于是编了一个测试程序,是在刚才ledcycle.a51的基础上修改的:
;--------------------------------------------------------------
; LEDCycle.A51 6-7-00   LTH
;
; Check for signs of life on FX2 IO ports
;--------------------------------------------------------------
$NOMOD51 ; disable predefined 8051 registers
$nolist
$INCLUDE (fx2regs.inc) ; *** for the Dallas (Synopsys) part
$list
;
NAME portio
;
ISEG AT 60H ; stack
stack: ds 20
;
DSEG at 20H ; bit-addressable
litebits: ds 1
;
CSEG AT 0 ; absolute Segment at Address 0
LJMP start ; Jump over the interrupt vectors
; -------------------------------------------------
org 1000h
; -------------------------------------------------
start:
lth: call cycle_lites
sjmp lth
;
cycle_lites: xrl a,#11111111b
mov        ioa,a
mov iob,a
mov ioc,a
mov iod,a
mov ioe,a
call delay
ret
;
delay: nop
ret
;
END
    这个够简单了吧,让io引脚输出方波,用kc模拟正常,但下载后还是看不到波形。不知道哪里出了问题,是寄存器用错了,还是什么没有设置好呢?
    希望高手们不吝赐教。作毕设呀,很着急,都郁闷了十几天了,食不甘味,夜不安倾,俺在这里多谢了。
arthurcao
驱动小牛
驱动小牛
  • 注册日期2003-10-12
  • 最后登录2012-07-08
  • 粉丝0
  • 关注0
  • 积分92分
  • 威望20点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-10 15:20
用C语言,在FW框架的基础上做一个试试。这可能你做的板子和开发板有不同的地方。
arthurcao喜欢开源。
kobebasket
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2005-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-10 15:22
哥们,你把固件下到哪里了,是RAM还是EEPROM里面?听你的口气是RAM吧?
因为最主要的原因是你的51程序就没有跑起来
kobebasket
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2005-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-10 15:28
TO AUTHORCAO:
其实用C还是汇编都无所谓,完成相应的功能即可,反正下进去的时候都是HEX文件
dqy32
驱动牛犊
驱动牛犊
  • 注册日期2004-03-10
  • 最后登录2009-02-16
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-11 11:00
多谢各位高手的指点,我有了一点进展:
装载例程里的Bulksrc后,成功自动枚举为EZ-USB FX2 SAMPLE DEVICE,这正是我要做的东东,可见固件还是装进去了。测试从ep4out输入数据,可以从ep8in口得到正确的输出。源程readme文件说明该程序的作用是ep4out->ep8int,做了一个循环。
是否再此程序基础上加以修改,就可以实现io口<-->通道缓存的双向存取。
再请教一个低级问题,我用的68013-56pvc的三个io口对应的寄存器是ioa,iob和iod吗? :D
pearlish
驱动牛犊
驱动牛犊
  • 注册日期2004-03-27
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-05-23 14:34
多谢各位高手的指点,我有了一点进展:
装载例程里的Bulksrc后,成功自动枚举为EZ-USB FX2 SAMPLE DEVICE,这正是我要做的东东,可见固件还是装进去了。测试从ep4out输入数据,可以从ep8in口得到正确的输出。源程readme文件说明该程序的作用是ep4out->ep8int,做了一个循环。
是否再此程序基础上加以修改,就可以实现io口<-->通道缓存的双向存取。
再请教一个低级问题,我用的68013-56pvc的三个io口对应的寄存器是ioa,iob和iod吗? :D


我刚用这个芯片,许多地方不懂.
如何测试从ep4out输入数据,从ep8in口得到数据?
谢谢!!!
游客

返回顶部