测试指南
- 调试开关。
Luban-Lite 中实现了一个 qspidev 的测试工具,可以用于测试 QSPI Device 的读写访问。 编译使能配置如下。
在 SDK 根目录下执行:
scons--menuconfig
配置界面:
Drivers options ---> Drivers examples ---> [*] Enable QSPI driver test command
- 在板子上运行 Luban-Lite。
- 找到 QSPI
设备
在串口控制台执行命令:
list_device
查看当前的系统 she 设备,可得到类似如下列表:aic /> list_device device type ref count -------- -------------------- ---------- gt911 Touch Device 1 wdt WDT Device 0 temp_aic Sensor Device 0 rootfs MTD Device 0 os MTD Device 0 spl MTD Device 0 spinand0 SPI Device 0 mtop Character Device 0 aicfb Graphic Device 0 hwcryto Security Device 0 record Pipe 0 dmic0 Sound Device 0 sound0 Sound Device 0 uart1 Character Device 0 uart0 Character Device 2 rtc RTC 0 qspi0 SPI Bus 0 i2c3 I2C Bus 1 pin Pin Device 0 gpai ADC Device 0
从中可看到,
spinand0
为SPI Device
。 - 执行命令获取帮助信息:
qspidev help
- 执行命令初始化 QSPI
设备:
qspidev init name mode freq
例如:qspidev init spinand0 3 50000000
- QSPI
收发测试仅发送命令和数据,例如使用:
qspidev sendhex lines cmd addr dummy_cnt data hex string
-
lines: 用于表示
命令
地址
和数据
分别使用多少线宽进行收发, 例如:111
表示都使用 1 线进行收发,144
表示命令使用 1 线,地址和数据使用 4 线(QIO 模式) -
cmd: 16 进制的命令数据,比如 6b
-
addr: 16 进制的地址数据,比如 000000,表示 24 位的地址 0。如果没有地址,使用
-
表示 -
dummy_cnt: Dummy cycle count,表示使用的 dummy clock cycle 个数。如果没有 dummy,使用
-
表示 -
data: 16 进制的数据,比如
41 42 43 44 45 a1 a2 a3 a4
示例:qspidev sendhex 111 ff
上面是发送 Reset 命令。
发送命令并读取数据,例如使用:qspidev recvhex lines cmd addr dummy_cnt data length
参数:
-
lines: 用于表示
命令
地址
和数据
分别使用多少线宽进行收发, 例如:111
表示都使用 1 线进行收发,144
表示命令使用 1 线,地址和数据使用 4 线(QIO 模式) -
cmd: 16 进制的命令数据,比如 6b
-
addr: 16 进制的地址数据,比如 000000,表示 24 位的地址 0。如果没有地址,使用
-
表示 -
dummy_cnt: Dummy cycle count,表示使用的 dummy clock cycle 个数。如果没有 dummy,使用
-
表示 -
data_length: 要接收的数据长度。数据接收后,直接打印到控制台。
示例:qspidev sendhex 111 13 000000 qspidev recvhex 111 03 000000 0 0x800
上述命令进行了一个 SPINAND 的 PAGE 数据读取。
-