杰发科技AC7840——SENT数据解析及软件Sent发送的实现

0. 测试环境

AC7840官方Demo板;

图莫斯0503

DSlogic U2Basic

使用引脚 输出脚:PB1 时钟:PB2,其他引脚可以不初始化,不接线

1. 数据解析

以下是SENT数据的格式(1tick以3us为例):

  1. 最小脉冲周期为12个时钟节拍=36us
  2. 每个脉冲,低电平持续时间最少为4个时钟节拍=12us
  3. 数据脉冲最低脉冲周期为12个时钟节拍/36us(对应半字节值0)
  4. 数据脉冲最低脉冲周期为27个时钟节拍/81us(对应半字节值15)
  5. Sync 同步脉冲,固定的56Ticks
  6. Status/Com 状态及通讯字段,12~27Ticks,即1个Nibble(4bit)
  7. Data 数据段,12~162Ticks,即1~6个Nibble
  8. CRC 校验字段,12~27Ticks,即1个Nibble
  9. Pause 暂停脉冲 12-768TICKs,早期的SENT协议无此字段或者一个周定长度TCKS,SENT2010之后,部分通讨此功能可以动态条件TICKS的个数,实现整个SENT协议是同一个固定长度TICKS

逻辑分析仪测试发送数据0符合上述数据

发送数据1如下所示

发送数据2如下所示

发送数据3如下所示

发送数据15如下所示

综上所述,主要区别在数据帧的高电平长度。

以下是发送0123456的数据格式,可以看到,数据位的长度为(21+3*N)

同步脉冲:格式固定为15uS+152uS=167uS的数据

2. SPI数据结构

测试在110K波特率的情况下,SPI发送一个位的时间为1uS。

以此为基准生成Sent的数据帧

SPI生成Sent数据

可以看到上面和我们用图莫斯发出来的波形一模一样。

最后一个FF是用来拉高电平,否则第一个从高到低的数据出不来。

可以看到,其中从F0开始是数据位,到第28个数据FE是数据位,后面是每个脉冲必须的4个tick的低电平,即12us

以下是0-F的校验码

发送2个字节

cpp 复制代码
    while (1)
    {
        g_spiTxBuff1[0] = 0;
        g_spiTxBuff1[1] = 0x3;
        for (int i = 0; i < 18; i++)
        {
            g_spiTxBuff1[i + 2] = 0xff;
        }

        g_spiTxBuff1[20] = 0;
        g_spiTxBuff1[21] = 0x1;
        g_spiTxBuff1[22] = 0xff;
        g_spiTxBuff1[23] = 0xff;
        g_spiTxBuff1[24] = 0xf0;
        g_spiTxBuff1[25] = 0;
        g_spiTxBuff1[26] = 0x1f; // 00011111后5位参与数据位高电平
        g_spiTxBuff1[27] = 0xff; // 参与数据位高电平
        g_spiTxBuff1[28] = 0xfe; // 参与数据位高电平
        g_spiTxBuff1[29] = 0x00;
        g_spiTxBuff1[30] = 0x03;
        g_spiTxBuff1[31] = 0xff;
        g_spiTxBuff1[32] = 0xff;
        g_spiTxBuff1[33] = 0xf8;
        g_spiTxBuff1[34] = 0x00;
        g_spiTxBuff1[35] = 0x0f;
        g_spiTxBuff1[36] = 0xff;

        SPI_DRV_MasterTransfer(SPI_INSTANCE, g_spiTxBuff1, g_spiRxBuff1, 37); /*! SPI通信 */
        OSIF_TimeDelay(100);
    }

能识别到,就是校验码还需要再优化下

相关推荐
李永奉1 小时前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦通话语音算法后,设置触摸音在唤醒语音助手和通话时触摸音没作用问题
单片机·嵌入式硬件·mcu·物联网·电脑·bug
硅基手札1 天前
SPI技术系列 12 · SPI 设备驱动实战
linux·驱动开发·单片机·嵌入式硬件·mcu·性能优化·系统架构
国科安芯1 天前
开放指令集的空间之路:RISC-V微控制器在商业航天中的生态价值与自主性评述
嵌入式硬件·mcu·risc-v·低轨卫星·商业航天·抗辐射
意法半导体STM321 天前
【官方原创】LAT6041 STM32MP1x USB OTG FIFO设置
stm32·单片机·嵌入式硬件·mcu·fifo·stm32mp1x
国科安芯1 天前
四重证据,一条逻辑链:商业航天级微控制器MCU抗辐射验证方法学综述——以国科安芯AS32S601为例
人工智能·单片机·嵌入式硬件·mcu·安全·抗辐射
笨笨饿2 天前
144_Codex变慢的解决办法
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·proteus
硅基手札3 天前
SPI技术系列 08 · SPI 控制器寄存器与 IP 架构
驱动开发·stm32·单片机·嵌入式硬件·mcu·架构·计算机外设
Brilliantwxx4 天前
【STM32】 RTC 实时时钟详解:从概念到预分频器
stm32·单片机·嵌入式硬件·mcu·bash
霖霖7145 天前
【ESP32笔记】I2S的音频录制与播放
笔记·单片机·mcu·音视频
硅基手札6 天前
【Linux 内核专栏 17】进程间通信 IPC(上)— 管道·信号·System V IPC·mmap·文件锁
linux·运维·服务器·stm32·单片机·mcu