当前位置:网站首页 > 编程语言 > 正文

jflash命令(jflash命令行烧录S32K144)



一、开发准备

1、驱动包获取,官网下载或供应商获取

2、slave地址:AD connect to GND,0x5F;Connect to VCC 0x5E。

3、频率支持400k/1M(向下兼容,200K可用)

二、软件开发

1、芯片初始化

2、模式选择

支持多种振动波形播放模式:

        2.1 Ram播放模式       

        2.2 Stream播放

        2.3 GPIO触发播放模式

        2.4 F0自动跟踪播放模式

3、ram播放

         RAM播放模式通常用在相对简单,波形固定的应用场景。通过I 2C接口将预先准备的波形数据,按Waveform 波形数据的格式要求写入RAM Waveform区域。并构建Play List数据结构,写入Play List区域。然后通过I 2C接口 发送开始播放的命令。

RAM播放的具体步骤:

1) 向寄存器 RAM_CFG 写入 0x06,清除 Waveform 区域和 Play List 区域的数据,待 RAM_CFG 寄存器的值为 0x00,数据清除结束。

2) 使用已有波形数据构建 Waveform Table 和 Waveform Data 数据结构,通过 I 2C 接口下载到 RAM Waveform 区域,请参考“RAM 数据写入”步骤。

 3) 根据播放的需求构建 Play List 数据结构,通过 I 2C 接口下载到 RAM Play List 区域,请参考“RAM 数据写入” 步骤。

4) 向寄存器 PLAY_CFG 的 PLAY_MODE 写入 0x01,设定为 RAM 播放模式。

5) 向寄存器 PLAY_CTRL 的 GO 写入 0x01,开始 RAM 播放模式。

6) 监测 PLAY_CTRL 的 GO 位,如果 GO 位的值为 0,则播放结束。或者监测中断,如果检测到中断,并且 INTS_PLAY_DONE 位为 1,也表示播放结束。

3.1 初始化

        软件reset后进行初始化函数调用:

/*rt903x init*/
rt903x_soft_reset();
 rt903x_init();
 ram_play_demo();


3.2 振动驱动

对控制寄存器写入1开始RAM播放模式,进行振动。

rt903x_go(1);

三、问题解决

1、Chip_ID读取成功但是无法播放

查问题发现变量定义的大小有错误。

问题发现:使用逻辑分析仪抓取发出的波形,发现发送地址读写后跟随了一个字节的0,才发出寄存器地址。

问题解决:发现定义的寄存器地址、slaveAddress的大小有问题,发送长度那里使用了sizeof函数导致报文误触发问题。

2、测试函数一秒振动一次,振动几次后停止

问题发现:测试过程中振动停止

问题追踪:查验芯片的状态寄存器(0x26、0x27)发现芯片状态处于过压保护、降低增益值以后报出过流保护,与供应商交涉后说是硬件问题(后续待更新)

(注:由于MCU频率较低,本次使用方式ram播放,后续再使用其他方式再进行更新)

到此这篇jflash命令(jflash命令行烧录S32K144)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • bigboss源(bigboss源怎么添加)2026-02-25 19:54:04
  • 圈一圈的英语是什么(圈一圈的英语怎么写)2026-02-25 19:54:04
  • fsk调制方法(fsk调制解调实验结构示意图)2026-02-25 19:54:04
  • 游戏的分类有哪些内容(游戏的分类有哪些内容呢)2026-02-25 19:54:04
  • 若依文件上传组件如何使用(若依多文件上传)2026-02-25 19:54:04
  • flag是什么意思(fla是什么意思)2026-02-25 19:54:04
  • linux yum命令不能用(linux用不了yum命令)2026-02-25 19:54:04
  • 斜杠左斜右斜得区别(右斜杠左斜杠)2026-02-25 19:54:04
  • 阿司匹林和阿司匹林肠溶片的作用与功效(阿司匹林和阿司匹林肠溶片是一个药吗)2026-02-25 19:54:04
  • py文件(py文件打包成exe)2026-02-25 19:54:04
  • 全屏图片