SPI-NAND读写有问题。是否能支持?

Viewed 46

问题描述


用K230,外接SPI-NAND,使用4线的quad spi接口,对winbond进行读写操作
我写入的文件大约在45MB左右,当写入的时候,linux系统经常卡死,很少能有完整写入的情况
后来通过加log进行跟踪,发现是死在了:driver/spi/spi-dw-core.c里的static int dw_spi_write_then_read(struct dw_spi *dws, struct spi_device *spi);这个函数。
在发送完数据后(len != 0),回读收到的数据时,经常是收不到数据(entries == 0),导致系统一直在continue,无法跳出while循环。

复现步骤


K230对quad spi-nand反复进行大文件读写

软件版本


SDK commit id: 923f3b8b7646afa270346825baff44ecd3f63d91

其他信息


image.png

软件版本


SDK commit id: 923f3b8b7646afa270346825baff44ecd3f63d91

其他信息


image.png

2 Answers

你好,可以降低以下spi的频率测试一下。

你好。我看kernel的dts,默认是100M,我已经试过80M,30M,10M,都会复现问题。所以觉得,根本原因不是频率跑太快的问题

你好,可以给spi nand用到的spi引脚加一下上拉,10K就行

你好。我们硬件上的确上拉了(上拉电阻4.7K),而且我刚刚用万用表量了一下,也的的确确是拉上去了。我们的SPI-NAND,是1.8V的

纯linux sdk 目前不支持 spi nand,仅支持tf卡和emmc。

你好。贵公司能否支持一下?然后同步到咱们开源的github上?谢谢

请使用双系统sdk,双系统sdk支持多线nand,https://github.com/kendryte/k230_sdk