小生最近用SH4作个DD,复位脚的接法,我用的是QG8原厂的DEMO把MCU拔了作为仿真器使用,但只能进入DEBUG模式一次,以后就怎么也进不去了<br />2:我用QG8装回去,可以把代码烧写到QG8里面,说明仿真器没有损坏<br />3:我看了GQ8 DEMO的原理图,看见它的RESET脚没有接任何器件,所以我也拆掉了SH4 RESET脚的5.6K 0.1uF,但仍然不能进入DEBUG<br />4:这个是我的初始化代码<br />void InitializeSystemClock(void)<br /> {<br /> <br /> /* SOPT1: COPT=0,STOPE=1,IICPS=0,BKGDPE=1,RSTPE=1 */<br /> SOPT1 = (unsigned char)0x23; <br /> /* SPMSC1: LVWF=0,LVWACK=0,LVWIE=0,LVDRE=1,LVDSE=1,LVDE=1,BGBE=0 */<br /> SPMSC1 = 0x1C; <br /> /* SPMSC2: LVDV=0,LVWV=0,PPDF=0,PPDACK=0,PPDC=0 */<br /> SPMSC2 = 0x00; <br /> ICSTRM = *(unsigned char*far)0xFFAF; /* Initialize ICSTRM register from a non volatile memory */<br /> ICSSC = *(unsigned char*far)0xFFAE; /* Initialize ICSSC register from a non volatile memory */ <br /> /* ICSC1: CLKS=0,RDIV=0,IREFS=1,IRCLKEN=0,IREFSTEN=0 8M fbus->4M*/<br /> ICSC1 = 0x04;//ICSC1 = 0x14; /* Initialization of the ICS control register 1 */<br /> /* ICSC2: BDIV=01,RANGE=0,HGO=0,LP=0,EREFS=0,ERCLKEN=0,EREFSTEN=0 */<br /> ICSC2 = 0x40;// /* Initialization of the ICS control register 2 */<br /> while(!ICSSC_IREFST) { /* Wait until the source of reference clock is internal clock */<br /> }<br /> <br /> /* ### Init_COP init code */<br /> SRS = 0xFF; /* Clear WatchDog counter */ <br /> }<br />//下面是端口的<br /> /*A口初始化*/<br /> PTADD = (unsigned char)0xFF;<br /> PTAPE = (unsigned char)0x00;//禁止A口上拉<br /> PTASE = (unsigned char)0x00;//不限制A口摆率<br /> PTADS = (unsigned char)0x0F;<br /> PTASC = (unsigned char)0x00;<br /> PTAPS = (unsigned char)0x00;<br /> PTAES = (unsigned char)0x00;<br /> PTAD = (unsigned char)0x00;<br /> <br /> /*B口初始化*/<br /> PTBDD = (unsigned char)0x06;<br /> PTBPE = (unsigned char)0x00;//禁止B口上拉<br /> PTBSE = (unsigned char)0x00;//不限制B口摆率<br /> PTBDS = (unsigned char)0x00;<br /> PTBSC = (unsigned char)0x00;<br /> PTBPS = (unsigned char)0x00;<br /> PTBES = (unsigned char)0x00;<br /> PTBD = (unsigned char)0x00;<br /> /*C口初始化*/<br /> PTCDD = (unsigned char)0xFB;//方向口控制<br /> PTCPE = (unsigned char)0x00;//禁止上拉<br /> PTCSE = (unsigned char)0x00;//不限制摆率<br /> PTCDS = (unsigned char)0x00;//禁止强驱动<br /> //GNGC = (unsigned char)0x00;?<br /> PTCD = (unsigned char)0x00;<br /><br /> |<br /> R5.6K <br /> | <br />RESET ----<br /> |<br /> 0.1uF<br /> |<br /> GND |
|