【CH579M-R1】+W25Q16存储模块的读写
<p>在CH579M-R1的开发板上并没有配置W25Q16存储器,要想增添该存储功能,进行外挂连接即可。</p><p>在软件方面,则可以借鉴CH579 EVT开发板的资源,其引脚的连接关系参见图1所示。</p>
<p>在存储模块与开发板连接时,需在CS片选端加一个10K的上拉电阻。</p>
<p></p>
<p>图1 存储器接口电路</p>
<p> </p>
<p></p>
<p>图2 CH579 EVT开发板W25Q16接口电路</p>
<p> </p>
<p>在借用CH579 EVT例程的情况下,其运行效果如图3所示。</p>
<p></p>
<p>图3 读写运行效果</p>
<p> </p>
<p>其中“0xef14”是W25Q16的芯片ID编号,其它型号的芯片ID如下:</p>
<p>W25Q80: 0XEF13</p>
<p>W25Q16: 0XEF14</p>
<p>W25Q32: 0XEF15</p>
<p>W25Q64: 0XEF16</p>
<p>W25Q128: 0XEF17</p>
<p>其程序主体是:</p>
<p>EraseExternal4KFlash_SPI(0); (或EraseExternal4KFlash_SPI(0xff);)</p>
<p>BlukWriteExternalFlash_SPI(3, 512,buf);</p>
<p>BlukReadExternalFlash_SPI( 0, 512,buf );</p>
<p>按例程的用意是将从零开始递增的512个数按顺序写入W25Q16。</p>
<p>但从结果看并不是这样,只有其后半部分的数据是递增的,且也不是0~0xff。</p>
<p>而若将存储的首地址改为0或0xff,数据长度为256,则运行效果如图3所示</p>
<p></p>
<p>图4修改后的运行效果</p>
<p> </p>
<p>其程序主体是:</p>
<p>EraseExternal4KFlash_SPI(0); (或EraseExternal4KFlash_SPI(0xff);)</p>
<p>BlukWriteExternalFlash_SPI(3,256,buf);</p>
<p>BlukReadExternalFlash_SPI( 0,256,buf );</p>
<p>可见其存储顺序是完整的,且比前者更合乎要求。若存储首地址不变,存储数据仍为512个,则存储结果与图2的内容一致,不知这种现象的形成原因是什么?</p>
<p>若未接入W25Q16模块,则测试结果如图5所示。</p>
<p></p>
<p>图5 未连接W25Q16</p>
<p><a href="https://bbs.eeworld.com.cn/thread-1140005-1-1.html" target="_blank">沁恒CH579M-R1开发板测评</a></p>
<p>汇总贴:<a href="https://bbs.eeworld.com.cn/thread-1140005-1-1.html">https://bbs.eeworld.com.cn/thread-1140005-1-1.html</a></p>
页:
[1]