|
本帖最后由 iffi123 于 2020-9-12 09:20 编辑
最近摆弄SPI, 买了片华邦的16Mbyte芯片玩玩,so8脚封装
测试了扇区擦除,写,读,和芯片擦除,都ok, 读写测试了整个扇区(256byte)也没问题
手册里的命令很多,不过加密写保护之类目前用不上,所以只需要读03h, 写02h, 扇区擦除20h, 芯片擦除C7h, 还有写允许06h, 读状态寄存器1 05h, 就这几条指令就够了
这种nor flash, 写和擦除速度偏慢, 尤其擦除,试过芯片擦除, 掐表37s, 手册典型值40s,差不多,即使扇区擦除(4K)也要45ms(手册值), 非空空间需要先擦除再写
因为内部写需要0.7ms(typ), 限制了写入极限速度不会超过400kB/s(还没考虑软件处理时间), 即使SPI时钟快也提升也很小很小
不过读取速度很快,和spi时钟相关,芯片最大支持133M, 如果按小容量stm32的18M SPI来算, 读能到2MB/s,还是可以
另外nor支持按字节读取,看起来nor型比较适合频繁读偶尔写, stm32片上存放代码的flash应该就是这种类型,所以往stm32下载程序就比较慢
下一步试试下tf卡。
出于学习的目的,我还是坚持根据自己理解,100%自己写,不用别人现成的代码,修改到最终通过 ,以后需要还可以拿来直接用,用DMA处理SPI确实方便很多,比轮询好很多
无图无真相,顺便测了波形
双通道示波器只能分开测
CS和SCK
SCK和MOSI(单片机发出的命令,读03h)
SCK和MISO(收到的2bytes数据)
SCK是12M多
|
|