2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块


模型链接: 链接

1 IIC 模块

1.1 模型功能

  实现向地址0x50的从机写入数据(100 ,1),然后检测当写入数据发生变化时,就开始从(从机地址为0x50)的空间读取刚刚写入的数据。

在这里插入图片描述

  可以看到上图中主要分为三大部分:1.全局变量的定义。2.写入数据。3.读取数据。

1.全局变量的定义使用的是Data Store Memory模块,与之对应的还有Data Store Write和Data Store Read模块用来读写开辟的空间,其Data Store Memory中设置如下:

在这里插入图片描述

2.写入数据子模块如下图,这里使用的是Enable Subsystem,与Trigger Subsystem的不同在于Enable Subsystem电平触发Trigger Subsystem边沿触发。这里就是将数据和地址进行拼接然后给Transmit模块进行发送。

在这里插入图片描述

在这里插入图片描述

3.读取数据模块是发送给设备地址,然后do…while循环中等待I2caRegs.I2CFFTX.all标志准备好(TXFFST中会显示接收到数据的长度),然后使能接收模块进行接收数据,之后将数据存储在全局变量A和B中

在这里插入图片描述

do…while模块中情形:

在这里插入图片描述

2 eCAN模块

eCAN模块分为接收模块和发送模块,接收模块参数如下(目前进入接收中断服务函数执行,还有点问题。):

在这里插入图片描述

eCAN接收模块自带一个函数触发执行的接口,在搭建模型中,我接入了一个LED翻转的子模块。即当接收到消息后,LED会进行翻转。

在这里插入图片描述

eCAN发送模块参数如下,因为CAN的数据帧最大是8个字节长度,所以一定要注意给他的数据最大是一个无符号64位的数据。

在这里插入图片描述

  这里构建了八字节发送和四字节发送两中数据发送的端口。这里要注意一下,需要修改Constant模块的输出类型。

在这里插入图片描述

之后需要在Configuration Parameters 中对eCAN_A进行相关的设置:

在这里插入图片描述

2.1 实验结果

  这里使用的是硬件使用的是USB转CAN,软件是CANTest上位机进行的测试,可以看到发送ID为0x01的数据,dsp接收后LED进行翻转。然后观测数据是存在大端/小端存储的现象的这一点需要注意。串口调试助手中也可以清晰的看到数据格式,起始标准+数据长度+ID+数据的格式。

在这里插入图片描述
在这里插入图片描述

3 SCI模块

在这里插入图片描述

中断函数是SCIA的中断服务号:9.1。内部如下

在这里插入图片描述

这个实现了SCI接收中断,将发送的数据进行返回。

SCI模块也有接收和发送两个模块:接收模块配置:

在这里插入图片描述

发送模块配置:

在这里插入图片描述

之后需要在Configuration Parameters 中对SCI_A进行相关的设置:

在这里插入图片描述

3.1 实验结果

在这里插入图片描述

可以看到发送的数据可以正常返回。

4 看门狗模块

  看门狗模块在实际程序中可以有效的防止程序跑飞。在Simulink中需要首先在Configuration Parameters中进行相关的设置,下图中的周期就是看门狗的溢出时间(即若在此时间内没有进行喂狗操作,则会复位整个系统)。

在这里插入图片描述

对应的在Simulink库文件中存在,Watchdog模块(用来喂狗)这里采用-1的意思是与仿真步长时间一样。在这里也可以设置喂狗时间,但是一定要注意这个喂狗时间必须小于上述在Target hardware resources中设置的时间,这样才能喂狗正常。

在这里插入图片描述

5 eCAP模块

  eCAP模式是输入捕获模块,可以用来进行测试信号周期等信息。另外也可以用来作为APWM模式输出PWM波。

在这里插入图片描述

如上图,在Configuration Parameters中可以设置eCAP模式和APWM模型的管脚。

5.1 APWM模式

在选项卡中进行相应的设置即可。

在这里插入图片描述

在这里插入图片描述

实验结果:

在这里插入图片描述

5.2 eCAP模式

选项卡进行如下的设置即可,此时模块拥有一个输出接口TS,若按图中所示设置,第一次捕获上升沿,第二次捕获下降沿,第三次捕获上升沿。即就可以算出方波信号的占空比。那么输出直接利用DeMux模块可以分别得到三个时刻的计数器数组,数组乘以TCLK即得到时间。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Quikk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值