最近做了一个9Saw60的小系统,连接OSBDM时出现怪问题: 1) OSBDM用的是清华的BDM for S08,已经按照说明设置好了BDM线; 2) 焊接的几块aw60的板子,偶尔可以正常连接BDM,多数时间连接不上,出现类似下列信息: Loading Target ... NO CONNECTION. CHECK SPEED. TARGET SECURED? NO TARGET CONNECTED? No Link To Target
3) 开始没有焊接外部晶振电路,因为觉得AW60复位后ICG缺省为SCM模式,发现这样是可以连接BDM的。连不上bdm之后,再焊接好外部晶振电路,同样连不上。 4) 奇怪的是连不上的板子我在上电之后测量BKDG/MS管脚,都是低电平,用示波器观察,发现BKDG/MS管脚上电时大概不到2V电压,2-3秒之后就降到0V了,加了10K的上拉电阻,还是同样情况。 5) 有两块板子很特别,用热风枪对着芯片吹2-3秒,还暖和时一定可以正常连接OSBDM,然后按了reset按键之后就无法连接OSBDM了,然后再热风吹,又可以连接一次。 6) 用个新的芯片,只焊接电源和BDM管脚,BKDG也上拉,都连接不上OSBDM,发现和4)同样的问题。 7) 可以连接OSBDM的芯片用下面的测试程序测试G,D,C等I/O端口,发现C0口亮灭几次之后就灭了,发现C5口亮灭几次之后就一直亮,其它管脚还是正常亮灭,怪!!出现这样情况之后,MCU又无法连接上OSBDM,用风枪吹或用烙铁烫烫管脚又可以连上。 8)焊拆了将近10个AW60,OSBDM总是时好时断。搞了一个星期没有结果,头大了......请大家帮助分析一下会是什么原因啊???太感谢了!!! ;附测试程序:设置某个I/O端口为输出,驱动LED闪烁 ; Include headfile INCLUDE 'mc9s08aw60.inc'
TESTIOD1: EQU PTGD TESTIODD1: EQU PTGDD
; Z_ram section ; ORG Z_RAMStart Num: DS.B 1 Count: DC.B 0 ; ; variable/data section ; ORG RAMStart ; Insert your data definition here ExampleVar: DS.B 1 ; ; code section ; ORG ROMStart main: SEI ; disable interrupts LDHX #RAMEnd+1 ; initialize the stack pointer TXS
CLRA CLRH CLRX JSR Dis_watchdog
LDA #$00 STA TESTIOD1
LDA #$FF STA TESTIODD1 ; PORT IS USED AS OUTPUT
mainLoop: LDA #$00 STA TESTIOD1 NOP jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms NOP
LDA #$FF STA TESTIOD1 jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms jsr Delay_25ms NOP JMP mainLoop Re_cycle: MOV #196,Num ;4个总线周期 DBNZ Num,* ;5个总线周期 RTS ;4个总线周期
Delay_25ms: MOV #200,Count ;4个总线周期 Re_Call: BSR Re_cycle ;4个总线周期 BRN $ ;3个总线周期 DBNZ Count,Re_Call ;5个总线周期 RTS ;4个总线周期 Dis_watchdog: PSHA LDA SOPT AND #$7F STA SOPT ; disable the watchdog PULA RTS ;************************************************************** ;* spurious - Spurious Interrupt Service Routine. * ;* (unwanted interrupt) * ;************************************************************** spurious: ; placed here so that security value NOP ; does not change all the time. RTI
;************************************************************** ;* Interrupt Vectors * ;************************************************************** ORG $FFBF DC.B $42
;************************************************************** ;* Interrupt Vectors * ;************************************************************** ORG $FFFA DC.W spurious ; DC.W spurious ; SWI
ORG $FFFE DC.W main ; Reset
[此贴子已经被作者于2009-2-19 19:10:53编辑过] |