本帖最后由 forester 于 2015-1-29 10:42 编辑
前段时间从坛里买了一台R6871-DC,回来时发现无法进ECAL,别的功能正常检查了外围电路,没有发现有问题.开机也没有报错.
从wbxms处得知他有一台无法进ECAL,后来刷ROM解决了.
于是.买回6片W27C512 EEPROM,2.5元一片.
DIY一个编程器:
用ATMEGA16A做主控MCU,可支持12V-25V的烧写电压,可写FLASH\I2C EEPROM
用串口和电脑通信.
电路板背面.
用C#写好上位机软件,开始写入数据
把写好数据的二个W27C512 EEPROM 插到6871上
好了.可爱的ECAL亮起来了.
写了坛上下载下来的二个版本的程序:
11 22版本号: U D 00,
111 222版本号:U d 00 ,
我那无法进ECAL的版本号:U d00A0 00.
U d 00和我原装的ROM代码长度最长.
U D 00的代码长度短好多.
6871的ROM自检用的是和校验.有时和校验通过了.但ROM不一定是完整的.
下面是6871和校验汇偏代码:
ROMTest:
lea (ROM_00000).w,a0 ;装入开始累加的地址:ROM 0000
lea (ROM_1FFF0).l,a1 ;a1装入结束累加的地址
clr.l d0
ROMTestAdd:
add.w (a0)+,d0 ; 把a0处的数据累加到d0中,加完地址自增2
cmpa.l a1,a0 ; 进行地址比较,
blt.s ROMTestAdd ;如果a0小于a1(1FF0)就跳转到ROMTestAdd,继续累加.
cmp.w (a0),d0 ; 加起来的结果D0和(ROM_1FFF0)地址内容进行字比较
bne.s loc_3DD4 ; 不相等。跳转到错误显示子程序
rts
loc_3DD4:
lea (Error_LEDData).l,a0
jsr LEDN_DIS_Err ; 向显示RAM写5个数据:Error
lea (Lattice_RO).l,a0
jsr Lattice_Load_Data ; 写入二个LED点阵数据:RO
jsr Delay100MS ; 延时100毫秒
|