硬件:<br />2214 ULINK<br />时钟设置:<br />#define Fosc 11059200 //晶振频率,10MHz~25MHz,应当与实际一至<br />#define Fcclk (Fosc * 4) //系统频率,必须为Fosc的整数倍(1~32),且<=60MHZ<br />#define Fcco (Fcclk * 4) //CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz~320MHz<br />#define Fpclk (Fcclk / 4) * 1 //VPB时钟频率,只能为(Fcclk / 4)的1 ~ 4倍<br />内部flash调试,无片外ram<br />bank2接外部设备(cpld),16位总线,只有写数据<br />问题:<br /> LDR R0, =BCFG2<br /> LDR R1, =0x10004eff<br /> STR R1, [R0]<br />1。BCFG2设置成0x1000feff和0x1000fef0效果是一样的,一个写周期都是差不多750ns,示波器上看到的波形也几乎一样,按道理应该差16个空闲周期才对呀,为什么?见图1(0x1000feff)图2(0x1000fef0)<br />图1(1通道是nCS2,2通道是WE):<br /><img src="https://bbs.21ic.com/upfiles/img/20075/2007511155341743.jpg"><br />图2(1通道是nCS2,2通道是WE):<br /><img src="https://bbs.21ic.com/upfiles/img/20075/2007511155417455.jpg"><br />2。BCFG2设置成0x10004eff时,如果连续写8个数据(地址累加),会出现这样的现象:第一个写周期后会等待一段时间写第二个数据,但第二个数据后却没有等待时间就写第三个数据了,后面的都是一个等一个不等,这样间隔着,为什么?见图3(0x10004eff)<br />图3(1通道是nCS2,2通道是WE):<br /><img src="https://bbs.21ic.com/upfiles/img/20075/2007511155450626.jpg"><br />测试程序:<br />for(;;)<br />{<br /> uint16 out;<br /> uint16 *p;<br /> p =(uint16 *)0x82000000;<br /> out = 8;<br /><br /> for(;out>0;out--)<br /> {<br /> *p = out;<br /> p++;<br /> }<br /> OSTimeDly(TIME_DELAY_500ms);<br />}<br /> |
|