阅读:2036回复:5
求救:68013固件装载
我用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模拟正常,但下载后还是看不到波形。不知道哪里出了问题,是寄存器用错了,还是什么没有设置好呢? 希望高手们不吝赐教。作毕设呀,很着急,都郁闷了十几天了,食不甘味,夜不安倾,俺在这里多谢了。 |
|
沙发#
发布于:2004-05-23 14:34
多谢各位高手的指点,我有了一点进展: 我刚用这个芯片,许多地方不懂. 如何测试从ep4out输入数据,从ep8in口得到数据? 谢谢!!! |
|
板凳#
发布于:2004-05-11 11:00
多谢各位高手的指点,我有了一点进展:
装载例程里的Bulksrc后,成功自动枚举为EZ-USB FX2 SAMPLE DEVICE,这正是我要做的东东,可见固件还是装进去了。测试从ep4out输入数据,可以从ep8in口得到正确的输出。源程readme文件说明该程序的作用是ep4out->ep8int,做了一个循环。 是否再此程序基础上加以修改,就可以实现io口<-->通道缓存的双向存取。 再请教一个低级问题,我用的68013-56pvc的三个io口对应的寄存器是ioa,iob和iod吗? :D |
|
地板#
发布于:2004-05-10 15:28
TO AUTHORCAO:
其实用C还是汇编都无所谓,完成相应的功能即可,反正下进去的时候都是HEX文件 |
|
地下室#
发布于:2004-05-10 15:22
哥们,你把固件下到哪里了,是RAM还是EEPROM里面?听你的口气是RAM吧?
因为最主要的原因是你的51程序就没有跑起来 |
|
5楼#
发布于:2004-05-10 15:20
用C语言,在FW框架的基础上做一个试试。这可能你做的板子和开发板有不同的地方。
|
|
|