STR710读写39VF1601的程序,读不出,请指教

[复制链接]
2905|0
 楼主| fmc 发表于 2008-6-20 09:22 | 显示全部楼层 |阅读模式
程序执行EMI_Config(0,&nbsp;j);后EMI_BCON0=0X803D,&nbsp;Check_SST_39VF160X()中ReturnStatus&nbsp;=&nbsp;FALSE;,电路是CS0接FLASH,请问哪里不对??<br /><br /><br />#define&nbsp;FALSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br />#define&nbsp;TRUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1<br /><br />#define&nbsp;SECTOR_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2048&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Must&nbsp;be&nbsp;2048&nbsp;words&nbsp;for&nbsp;39VF160X<br />#define&nbsp;BLOCK_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32768&nbsp;&nbsp;&nbsp;//&nbsp;Must&nbsp;be&nbsp;32K&nbsp;words&nbsp;for&nbsp;39VF160X<br /><br />#define&nbsp;SST_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00BF&nbsp;&nbsp;//&nbsp;SST&nbsp;Manufacturer's&nbsp;ID&nbsp;code<br />#define&nbsp;SST_39VF1601&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x234B&nbsp;&nbsp;//&nbsp;SST39VF1601&nbsp;device&nbsp;code<br />#define&nbsp;SST_39VF1602&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x234A&nbsp;&nbsp;//&nbsp;SST39VF1602&nbsp;device&nbsp;code<br /><br />typedef&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BYTE&nbsp;is&nbsp;8-bit&nbsp;in&nbsp;length<br />typedef&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;WORD&nbsp;is&nbsp;16-bit&nbsp;in&nbsp;length<br />typedef&nbsp;unsigned&nbsp;long&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uint32;&nbsp;&nbsp;&nbsp;//&nbsp;Uint32&nbsp;is&nbsp;32-bit&nbsp;in&nbsp;length<br /><br />Uint32&nbsp;system_base&nbsp;=&nbsp;0x60000000;&nbsp;&nbsp;//&nbsp;4GByte&nbsp;System&nbsp;Memory&nbsp;Address.<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;sample&nbsp;code&nbsp;uses&nbsp;0xC0000000&nbsp;as&nbsp;the&nbsp;system_base&nbsp;address.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;user&nbsp;should&nbsp;modify&nbsp;this&nbsp;address&nbsp;accordingly.<br /><br />#define&nbsp;sysAddress(offset)&nbsp;((volatile&nbsp;WORD&nbsp;*)(system_base&nbsp;+&nbsp;offset))<br /><br /><br />int&nbsp;Check_SST_39VF160X(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;SST_id1;<br />&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;SST_id2;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;ReturnStatus;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;Issue&nbsp;the&nbsp;Software&nbsp;Product&nbsp;ID&nbsp;code&nbsp;to&nbsp;39VF160X<br />&nbsp;&nbsp;&nbsp;&nbsp;*sysAddress(0x5555)&nbsp;=&nbsp;0x00AA;&nbsp;&nbsp;//&nbsp;write&nbsp;data&nbsp;0x00AA&nbsp;to&nbsp;device&nbsp;addr&nbsp;0x5555<br />&nbsp;&nbsp;&nbsp;&nbsp;*sysAddress(0x2AAA)&nbsp;=&nbsp;0x0055;&nbsp;&nbsp;//&nbsp;write&nbsp;data&nbsp;0x0055&nbsp;to&nbsp;device&nbsp;addr&nbsp;0x2AAA<br />&nbsp;&nbsp;&nbsp;&nbsp;*sysAddress(0x5555)&nbsp;=&nbsp;0x0090;&nbsp;&nbsp;//&nbsp;write&nbsp;data&nbsp;0x0090&nbsp;to&nbsp;device&nbsp;addr&nbsp;0x5555<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_150_Nano_Seconds();&nbsp;&nbsp;&nbsp;//&nbsp;Tida&nbsp;Max&nbsp;150ns&nbsp;for&nbsp;39VF160X<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;the&nbsp;product&nbsp;ID&nbsp;from&nbsp;39VF160X<br />&nbsp;&nbsp;&nbsp;&nbsp;SST_id1&nbsp;&nbsp;=&nbsp;*sysAddress(0x0000);&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;first&nbsp;ID&nbsp;byte<br />&nbsp;&nbsp;&nbsp;&nbsp;SST_id2&nbsp;&nbsp;=&nbsp;*sysAddress(0x0001);&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;second&nbsp;ID&nbsp;byte<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;------------------------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Determine&nbsp;whether&nbsp;there&nbsp;is&nbsp;a&nbsp;SST&nbsp;39VF1601&nbsp;installed&nbsp;or&nbsp;not<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;use&nbsp;the&nbsp;following&nbsp;code:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((SST_id1&nbsp;==&nbsp;SST_ID)&nbsp;&&&nbsp;(SST_id2&nbsp;==&nbsp;SST_39VF1601))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReturnStatus&nbsp;=&nbsp;TRUE;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReturnStatus&nbsp;=&nbsp;FALSE;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;------------------------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Or&nbsp;determine&nbsp;whether&nbsp;there&nbsp;is&nbsp;a&nbsp;SST&nbsp;39VF1602&nbsp;installed&nbsp;or&nbsp;not<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;use&nbsp;the&nbsp;following&nbsp;code:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((SST_id1&nbsp;==&nbsp;SST_ID)&nbsp;&&&nbsp;(SST_id2&nbsp;==&nbsp;SST_39VF1602))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReturnStatus&nbsp;=&nbsp;TRUE;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReturnStatus&nbsp;=&nbsp;FALSE;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;------------------------------------------------------------<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Issue&nbsp;the&nbsp;Software&nbsp;Product&nbsp;ID&nbsp;Exit&nbsp;code,&nbsp;thus&nbsp;returning&nbsp;the<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;39VF160X&nbsp;to&nbsp;the&nbsp;normal&nbsp;operation.<br />&nbsp;&nbsp;&nbsp;&nbsp;*sysAddress(0x5555)&nbsp;=&nbsp;0x00AA;&nbsp;&nbsp;//&nbsp;write&nbsp;data&nbsp;0x00AA&nbsp;to&nbsp;device&nbsp;addr&nbsp;0x5555<br />&nbsp;&nbsp;&nbsp;&nbsp;*sysAddress(0x2AAA)&nbsp;=&nbsp;0x0055;&nbsp;&nbsp;//&nbsp;write&nbsp;data&nbsp;0x0055&nbsp;to&nbsp;device&nbsp;addr&nbsp;0x2AAA<br />&nbsp;&nbsp;&nbsp;&nbsp;*sysAddress(0x5555)&nbsp;=&nbsp;0x00F0;&nbsp;&nbsp;//&nbsp;write&nbsp;data&nbsp;0x00F0&nbsp;to&nbsp;device&nbsp;addr&nbsp;0x5555<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_150_Nano_Seconds();&nbsp;&nbsp;&nbsp;//&nbsp;Tida&nbsp;Max&nbsp;150ns&nbsp;for&nbsp;39VF160X<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(ReturnStatus);<br />}<br /><br /><br /><br />void&nbsp;__main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i&nbsp;=&nbsp;0,&nbsp;j;<br /><br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;j=&nbsp;EMI_WAITSTATE(15);<br />&nbsp;&nbsp;&nbsp;&nbsp;j=j|&nbsp;EMI_SIZE_16;<br />&nbsp;&nbsp;&nbsp;&nbsp;j=j|EMI_ENABLE;<br />&nbsp;&nbsp;&nbsp;&nbsp;EMI_Config(0,&nbsp;j);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check_SST_39VF160X();<br /><br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

fmc

10

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部