使用说明
设备识别
正常情况下,插入设备后会在上位机顶部识别到设备名、设备参数等信息。只有识别到后,软件才能正常配合调试器使用。
设备参数配置好后会存储在设备内部,下次插入依旧是此参数,因此每次插入时需特别注意VCC电压是否匹配。
如何读写数据
读写操作在上位机底部区域,点击读/写按钮前,需先配置好此次读写的SPI参数,包括:
- 时钟模式/首位顺序
- 前置指令阶段(CMD指令、ADDR地址、ALT复用字节、DUMMY空周期)
- SPI/QSPI选择
- 数据和长度(如果是读,则只需填写长度)
时钟模式/首位顺序
四种时钟模式(Mode0、Mode1、Mode2、Mode3)
两种首位顺序(MSB、LSB)
指令阶段
大部分SPI器件需要先发送指令CMD,部分器件需要先发送CMD、ADDR、ALT、DUMMY其中任意阶段(如SPI FALSH)。
JSPI提供了灵活的配置方式,可任选。当文本框为空时则不发送,当文本框有数据时则发送对应的阶段。
文本框根据输入的长度来判断每个阶段需要发送几个字节(可填写1~4字节),如CMD输入:AA1234 会发送 0xAA 0x12 0x34 3个字节的指令。
典型的单字节CMD 单线SPI读写时序:
典型的全阶段 四线SPI读写时序:
SPI/QSPI选择
提供4种方式,满足不同SPI器件需求
- 全单线SPI:所有阶段都用标准单线SPI
- 全四线QPI:所有阶段都用四线SPI,也就是QPI
- 仅数据四线:CMD、ADDR、ALT、DUMMY为标准单线SPI,DATA为四线SPI
- 仅指令单线:CMD为标准单线SPI,其他阶段(ADDR、ALT、DUMMY、DATA)为四线SPI
SPI写同时读(全双工)
- 如果需要发送数据的同时接收数据,请在SPI/QSPI下拉框里面选择“SPI读写双工”选项
- 全双工将不考虑CMD、ADDR、ALT、DUMMY等环节,视为纯SPI数据交换
- 全双工不支持QSPI
如何批量读写
分组管理
不同的SPI器件可以分组保存,软件退出时自动保存,并且可以导入导出进行分享。
三种批量列表执行方式
- 初始化:可一键初始化所有指令,用于器件快速初始化
- 周期触发:按顺序循环执行列表指令
- 周期触发:通过INT引脚检测中断输入,并执行列表指令(上升沿、下降沿、双边沿、高电平、低电平)
CRC与读等待
在扩展页面列表操作种,可以使能CRC功能和读取等待功能。
CRC
设置CRC后,将在所填写的读写长度基础上额外自动添加校验的长度。
读取时:日志框显示是否校验成功
写入时:日志框显示写入的校验字节
支持的校验如下:
读等待
读取等待是SPI写指令和读数据之间,添加一段等待时间(适用于一些需要时间准备数据的传感器等...)。
生成实时曲线
实时曲线是JSPI的一个极为便捷一个功能,如果是SPI从机是一个传感器,可以将读取到的数据解析为对应的数据格式,并且生成实时曲线。
如下是一个陀螺仪LSM6DSOX震动曲线的示例:
怎样生成这样的实时曲线?
需要在周期触发或者中断触发列表中实现,如下图所示,添加了一条6字节长的的读取指令,分别是ACCX,ACCY,ACCZ的数据,每个数据是Int16类型,占用两个字节。
然后点击列表中“读曲线”那一列的编辑按钮(上图1所示),编辑解析格式。
最后选中上图2所示的选框,即可打开曲线窗口,读取到的数据就能绘制实时曲线。
编辑曲线解析格式
点击编辑格式后会弹出上面窗口,按照以下规则编辑:
- 添加通道:指令读取的长度必须和所有通道数的总字节数一致(如果读取的数据每个通道包含n个点数据,那可以是n倍)
- 配置好数据类型:软件会据此判断每个数据在读取数组中的位置
- 配置高字节在前还是低字节在前
- 如果需要,可以编辑计算公式,示例中ACC读取的原始值是AD值,需要计算转换为mg的单位
- 配置是否不显示:如果有数据中有的数据不重要,可以隐藏
- 配置FIFO排列方式(仅仅在读取长度是通道字节数n倍时有效)
SPI模拟从机
按照下图所示的顺序点击进入从机模式
- 菜单栏点击模拟从机按钮,弹出从机控制窗口
- 配置好spi的时钟极性和位顺序
- 添加预加载的从机数据,即需要返回给主机的数据(可以任意时候更改进行加载,也可选择自动循环加载)
- 打开右下角的从机开关
完成上述操作后,即可进入从机模式,日志框将显示接收的数据和返回的数据,下图是将两个调试器对接在一起,一个做主一个做从的读写示例
作为从机,需要注意以下事项
- 从机无需设置速率,只要主机频率在30M以下(含30M)即可
- 从机模式仅支持标准单线SPI,不支持QSPI
- 主机单次连续传输最大长度1024字节,超过1024会丢数据
- 仅仅在CS片选引脚为低的时候传输的数据有效
固件升级
JTool-SPI模块支持固件升级,服务器上传最新固件后,会提示下载并升级,点击帮助->关于菜单,先下载最新固件,随后点击进入升级按钮,模块会模拟出一个U盘,将下载的固件bin文件拖入U盘内即可升级完成。