最近做了一个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编辑过]
一直没搞定。
大家帮帮忙,出点意见,谢了!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |